include ../global_config
CC = gcc
CFLAGS += -g -I../libmpeg3 -I../quicktime
#CFLAGS += -I../libmpeg3 -I../quicktime

# END OF USER CONFIGURATION

ifneq ($(strip $(DYNAMIC_LOADING)),)
 OBJ += codecmanager.o
 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 \
	conv_color.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 
  LIBAVIPLAYORNOT=-laviplay
 endif
endif

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

ifneq ($(strip $(VIDEO_EXPORT_ONLY)),)
  ALL = exportvideo
 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 \
	conv_color.o \
	stats.o \
	writepic.o
endif


all: $(PLUGINS) $(ALL)

aviplugin.o: aviplugin.C aviplugin.h ../global_config
	$(CXX) $(CFLAGS) -I/usr/local/include/avifile aviplugin.C -c 

aviplugin.lo: aviplugin.C aviplugin.h  ../global_config
	$(CXX) $(CFLAGS) -I/usr/local/include/avifile aviplugin.C -c -fPIC -DDYNAMIC_LOADING -DPIC -o aviplugin.lo

avi_input.lo: avi_input.c ../global_config
	$(CC) $(CFLAGS) -I/usr/local/include/avifile avi_input.c -c -fPIC -DDYNAMIC_LOADING -DPIC -o avi_input.lo

readpic.o mpeg2enc.o: ../global_config


readpic.o: readpic.c rtjpeg_input.c ../global_config

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) -o $@ $(OBJ) ../libmpeg3/libmpeg3.a ../quicktime/libquicktime.a -lpthread -lpng -lz -lm -lglib -ldl -L/usr/local/lib $(LIBAVIPLAYORNOT)

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

.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) -shared -fPIC -laviplay -o codecs/avi_input.so \
	aviplugin.lo \
	avi_input.lo 

testgl: codecmanager.c
	$(CC) $(CFLAGS) -o testgl codecmanager.c -DTESTDL -lgmodule -lglib -I/usr/lib/glib/include 


