IDCT=idct-mjpeg-mmx
#
# Don't touch from here on...
#
PROC=$(shell uname -m)
SYSTEM=$(shell uname)

ifeq "$(SYSTEM)" "Linux"
ifeq "$(PROC)" ""
		CPLAT=-ffast-math
else
		CPLAT=-march=$(PROC) -mtune=$(PROC) -ffast-math
endif
	CINC=-I"$(JAVA_HOME)/include" -I"$(JAVA_HOME)/include/linux" -I./mmx
	CFLAGS=-Wall -O2 -D_REENTRANT -DGNU_SOURCE $(CPLAT) $(CINC)
	LDFLAGS=
	LIBS=-lm
	LIB=lib
	SO=so
else
ifeq "$(PROC)" ""
		CPLAT=-ffast-math
else
		CPLAT=-march=$(PROC) -ffast-math
endif
	CINC=-I"$(JAVA_HOME)/include" -I"$(JAVA_HOME)/include/win32" -I./mmx
	CFLAGS=-Wall -O2 -D_JNI_IMPLEMENTATION_ $(CPLAT) $(CINC)
	LDFLAGS=-Wl,--kill-at
	LIBS=-lm
	LIB=
	SO=dll
endif

ifeq "$(IDCT)" "idct-mjpeg-mmx"
	CINC+= -I./mmx
endif

all:	$(LIB)idctfast.$(SO) Makefile

net_sourceforge_dvb_projectx_video_IDCTFast.h:
	javah -classpath $(PROJECTX_HOME)/ProjectX.jar net.sourceforge.dvb.projectx.video.IDCTFast

net_sourceforge_dvb_projectx_video_IDCTFast.o: \
		net_sourceforge_dvb_projectx_video_IDCTFast.c \
		net_sourceforge_dvb_projectx_video_IDCTFast.h
	gcc $(CFLAGS) -c $<

$(IDCT).o:	$(IDCT).c
	gcc $(CFLAGS) -c $<

$(LIB)idctfast.$(SO):	net_sourceforge_dvb_projectx_video_IDCTFast.o $(IDCT).o
	gcc -shared $(LDFLAGS) -o $@ \
		net_sourceforge_dvb_projectx_video_IDCTFast.o $(IDCT).o $(LIBS)

clean:
	@rm -vf *~ *.o \
		$(LIB)idctfast.$(SO) \
		net_sourceforge_dvb_projectx_video_IDCTFast.h

rebuild:	clean all

