include ../global_config
CC = gcc
#CFLAGS += -g -I../libmpeg3 -I../quicktime
CFLAGS += -I../libmpeg3 -I../quicktime
CFLAGS += -DVERSION=\"$(shell make -s -C .. print-version)\"

# END OF USER CONFIGURATION

ifneq ($(strip $(DYNAMIC_LOADING)),)
 OBJ += codecmanager.o
# handled in ../configure by gtk-config
# CFLAGS += -lgmodule -lglib -I/usr/lib/glib/include
endif

ifneq ($(strip $(DONT_USE_NUV)),)
else
 ifneq ($(strip $(DYNAMIC_LOADING)),)
  PLUGINS+= codecs/rtjpeg_input.so 
 else
  OBJ+= rtjpeg_input.o \
	rtjpeg_plugin.o \
	../rtjpeg/RTjpeg.o \
	../rtjpeg/minilzo.o 
 endif
endif

ifneq ($(strip $(DONT_USE_AVI)),)
else
 ifneq ($(strip $(DYNAMIC_LOADING)),)
  PLUGINS+= codecs/avi_input.so
 else
  OBJ+= aviplugin.o \
	avi_input.o 
 endif
endif

OBJ += mpeg2enc.o \
	readpic.o \
	areaDeinterlace.o \
	timestamp.o \
	conv_color.o \
	yuvscaler.o \
	aspectcode.o

ifneq ($(strip $(VIDEO_EXPORT_ONLY)),)
  ALL = exportvideo
  CFLAGS += -DVIDEO_EXPORT_ONLY
 else
  ALL = encode
  OBJ += $(MMXOBJ)
  OBJ += cpu_accel.o \
	conform.o \
	putseq.o \
	putpic.o \
	puthdr.o \
	putmpg.o \
	putvlc.o \
	putbits.o \
	motion.o \
	predict.o \
	transfrm.o \
	fdctdata.o \
	fdctref.o \
	idct.o \
	idctdata.o \
	quantize.o \
	ratectl.o \
	stats.o \
	writepic.o
endif


all: $(PLUGINS) $(ALL)

.PHONY: aviplugin.c avi_input.c readpic.c mpeg2enc.c codecmanager.c

aviplugin.o: aviplugin.C aviplugin.h
	$(CXX) $(CFLAGS) aviplugin.C -c 

aviplugin.lo: aviplugin.C aviplugin.h  
	$(CXX) $(CFLAGS) aviplugin.C -c -fPIC -DDYNAMIC_LOADING -DPIC -o aviplugin.lo

avi_input.lo: avi_input.c 
	$(CC) $(CFLAGS) avi_input.c -c -fPIC -DDYNAMIC_LOADING -DPIC -o avi_input.lo

readpic.o: readpic.c 

mpeg2enc.o: mpeg2enc.c

pc: mpeg2enc.exe

clean:
	rm -f *.o *% core encode *.lo ../rtjpeg/*.lo codecs/*.so testgl exportvideo

mpeg2enc.exe: mpeg2encode
	coff2exe mpeg2enc

encode: $(OBJ) ../global_config
	$(CXX) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) ../libmpeg3/libmpeg3.a ../quicktime/libquicktime.a -lpthread -lpng -lz -lm -L/usr/local/lib $(LIBAVIPLAYORNOT)

exportvideo: $(OBJ) ../global_config
	if [ \"x$(VIDEO_EXPORT_ONLY)\" = \"x\" ]; then VIDEO_EXPORT_ONLY=1 make exportvideo; else $(CXX) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) ../libmpeg3/libmpeg3.a ../quicktime/libquicktime.a -lpthread -lpng -lz -lm -L/usr/local/lib $(LIBAVIPLAYORNOT); fi

.s.o:
	nasm -f elf $*.s

%.lo: %.c ../global_config
	$(CC) $(CFLAGS) -fPIC -DDYNAMIC_LOADING -DPIC -c $< -o $@

%.lo: %.C ../global_config
	$(CXX) $(CFLAGS) -fPIC -DDYNAMIC_LOADING -DPIC -c $< -o $@ 

codecs/rtjpeg_input.so: rtjpeg_plugin.lo ../rtjpeg/RTjpeg.lo ../rtjpeg/minilzo.lo rtjpeg_input.lo ../global_config
	$(CC) -shared -fPIC -o codecs/rtjpeg_input.so  \
	rtjpeg_input.lo \
	rtjpeg_plugin.lo \
	../rtjpeg/RTjpeg.lo \
	../rtjpeg/minilzo.lo 

codecs/avi_input.so: aviplugin.lo avi_input.lo ../global_config
	$(CXX) $(LDFLAGS) -shared -fPIC -o codecs/avi_input.so \
	aviplugin.lo \
	avi_input.lo 

testgl: codecmanager.c
	$(CXX) $(CFLAGS) $(LDFLAGS) -o testgl codecmanager.c -DTESTDL  


