include ../config.mak

CFLAGS= $(OPTFLAGS) -Wall -g -DHAVE_AV_CONFIG_H
LDFLAGS= -g
CCLD=gcc
LIBTOOL=./libtool
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS)  -o $@

OBJS= common.lo utils.lo mpegvideo.lo h263.lo jrevdct.lo jfdctfst.lo \
      mpegaudio.lo ac3enc.lo mjpeg.lo resample.lo dsputil.lo \
      motion_est.lo imgconvert.lo imgresample.lo msmpeg4.lo \
      mpeg12.lo h263dec.lo rv10.lo
ASM_OBJS=

# currently using libac3 for ac3 decoding
ifeq ($(CONFIG_AC3),yes)
OBJS+= ac3dec.lo \
       libac3/bit_allocate.lo libac3/bitstream.lo libac3/downmix.lo \
       libac3/imdct.lo  libac3/parse.lo
endif

# currently using mpglib for mpeg audio decoding
ifeq ($(CONFIG_MPGLIB),yes)
OBJS+= mpegaudiodec.lo \
       mpglib/layer1.lo mpglib/layer2.lo mpglib/layer3.lo \
       mpglib/dct64_i386.lo mpglib/decode_i386.lo  mpglib/tabinit.lo
endif

# i386 mmx specific stuff
ifeq ($(TARGET_MMX),yes)
ASM_OBJS += i386/fdct_mmx.lo i386/sad_mmx.lo
OBJS += i386/fdctdata.lo i386/cputest.lo \
	i386/dsputil_mmx.lo i386/mpegvideo_mmx.lo \
        i386/idct_mmx.lo
endif

# armv4l specific stuff
ifeq ($(TARGET_ARCH_ARMV4L),yes)
ASM_OBJS += armv4l/jrevdct_arm.lo
OBJS += armv4l/dsputil_arm.lo
endif

SRCS = $(OBJS:.lo=.c) $(ASM_OBJS:.lo=.s)

LIB= libavcodec.la
TESTS= imgresample-test dct-test

all: $(LIB)
tests: apiexample cpuid_test $(TESTS)

$(LIB): $(OBJS) $(ASM_OBJS)
	rm -f $@
	$(LINK)  $(OBJS) $(ASM_OBJS)
	
dsputil.o: dsputil.c dsputil.h

%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $< 

%.o: %.S
	$(CC) $(CFLAGS) -c -o $@ $<

%.o: %.s
	nasm -f elf -o $@ $<

%.lo: %.c
	$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c -o $@ $< 	
	
%.lo: %.S
	$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c -o $@ $< 	
	
%.lo: %.s
	$(LIBTOOL) --mode=compile nasm -f elf -o $@ $< 		

# depend only used by mplayer now
dep:	depend

depend:
	$(CC) -MM $(CFLAGS) $(SRCS) 1>.depend

clean: 
	rm -f *.o *.lo *~ *.a i386/*.o i386/*~ \
	   armv4l/*.o armv4l/*~ \
           libac3/*.o libac3/*~ \
           mpglib/*.o mpglib/*~ \
           apiexample $(TESTS)

distclean: clean
	rm -f Makefile.bak .depend

# api example program
apiexample: apiexample.c $(LIB)
	$(CC) $(CFLAGS) -o $@ $< $(LIB) -lm

# cpuid test
cpuid_test: i386/cputest.c
	$(CC) $(CFLAGS) -D__TEST__ -o $@ $<

# testing progs

imgresample-test: imgresample.c
	$(CC) $(CFLAGS) -DTEST -o $@ $^ 

dct-test: dct-test.o jfdctfst.o i386/fdct_mmx.o i386/fdctdata.o \
          fdctref.o jrevdct.o i386/idct_mmx.o
	$(CC) -o $@ $^

#
# include dependency files if they exist
#
ifneq ($(wildcard .depend),)
include .depend
endif

install:

uinstall:


