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

ifeq "$(SYSTEM)" "Linux"
	CPLAT=-ffast-math -fPIC
	CINC=-I"$(JAVA_HOME)/include" -I"$(JAVA_HOME)/include/linux"
	CFLAGS=-Wall -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 -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
	$(CC) $(CFLAGS) -c $<

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

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

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

rebuild:	clean all

