added VPATH support for multiple dir compilation
[ffmpeg.git] / libavcodec / Makefile
index f0a5d98..a38994e 100644 (file)
@@ -1,26 +1,48 @@
+#
+# libavcodec Makefile
+# (c) 2000, 2001, 2002 Gerard Lantau
+#
 include ../config.mak
 
-CFLAGS= $(OPTFLAGS) -Wall -g -DHAVE_AV_CONFIG_H
+VPATH=$(SRC_PATH)/libavcodec
+
+CFLAGS= $(OPTFLAGS) -Wall -g -DHAVE_AV_CONFIG_H -I.. -I$(SRC_PATH)
 LDFLAGS= -g
 
 OBJS= common.o utils.o mpegvideo.o h263.o jrevdct.o jfdctfst.o \
       mpegaudio.o ac3enc.o mjpeg.o resample.o dsputil.o \
       motion_est.o imgconvert.o imgresample.o msmpeg4.o \
-      mpeg12.o h263dec.o rv10.o mpegaudiodec.o pcm.o
+      mpeg12.o h263dec.o rv10.o mpegaudiodec.o pcm.o simple_idct.o \
+      ratecontrol.o
 ASM_OBJS=
 
-# currently using libac3 for ac3 decoding
+# currently using liba52 for ac3 decoding
 ifeq ($(CONFIG_AC3),yes)
-OBJS+= ac3dec.o \
-       libac3/bit_allocate.o libac3/bitstream.o libac3/downmix.o \
-       libac3/imdct.o  libac3/parse.o
+OBJS+= a52dec.o
+endif
+
+# using builtin liba52 or runtime linked liba52.so.0
+ifeq ($(CONFIG_A52BIN),no)
+OBJS+= liba52/bit_allocate.o liba52/bitstream.o liba52/downmix.o \
+       liba52/imdct.o  liba52/parse.o
+endif
+
+ifeq ($(CONFIG_MP3LAME),yes)
+OBJS += mp3lameaudio.o
+EXTRALIBS += -lmp3lame
+endif
+
+ifeq ($(TARGET_GPROF),yes)
+CFLAGS+=-p
+LDFLAGS+=-p
 endif
 
 # i386 mmx specific stuff
 ifeq ($(TARGET_MMX),yes)
 OBJS += i386/fdct_mmx.o i386/cputest.o \
        i386/dsputil_mmx.o i386/mpegvideo_mmx.o \
-        i386/idct_mmx.o i386/motion_est_mmx.o
+       i386/idct_mmx.o i386/motion_est_mmx.o \
+       i386/simple_idct_mmx.o
 endif
 
 # armv4l specific stuff
@@ -36,6 +58,12 @@ OBJS += mlib/dsputil_mlib.o
 CFLAGS += $(MLIB_INC)
 endif
 
+# alpha specific stuff
+ifeq ($(TARGET_ARCH_ALPHA),yes)
+OBJS += alpha/dsputil_alpha.o alpha/mpegvideo_alpha.o
+CFLAGS += -Wa,-mpca56
+endif
+
 SRCS = $(OBJS:.o=.c) $(ASM_OBJS:.o=.s)
 
 LIB= libavcodec.a
@@ -49,11 +77,11 @@ tests: apiexample cpuid_test $(TESTS)
 
 $(LIB): $(OBJS) $(ASM_OBJS)
        rm -f $@
-       $(AR) rcs $@ $(OBJS) $(ASM_OBJS)
+       $(AR) rc $@ $(OBJS) $(ASM_OBJS)
 
 $(SLIB): $(OBJS) $(ASM_OBJS)
        rm -f $@
-       $(CC) -shared -o $@ $(OBJS) $(ASM_OBJS)
+       $(CC) -shared -o $@ $(OBJS) $(ASM_OBJS) $(EXTRALIBS)
        ln -sf $@ libffmpeg.so
 dsputil.o: dsputil.c dsputil.h
 
@@ -70,11 +98,12 @@ depend:
        $(CC) -MM $(CFLAGS) $(SRCS) 1>.depend
 
 clean: 
-       rm -f *.o *~ $(LIB) $(SLIB) *.so i386/*.o i386/*~ \
+       rm -f *.o *~ .depend $(LIB) $(SLIB) *.so i386/*.o i386/*~ \
           armv4l/*.o armv4l/*~ \
           mlib/*.o mlib/*~ \
-           libac3/*.o libac3/*~ \
-           apiexample $(TESTS)
+          alpha/*.o alpha/*~ \
+          liba52/*.o liba52/*~ \
+          apiexample $(TESTS)
 
 distclean: clean
        rm -f Makefile.bak .depend
@@ -107,6 +136,7 @@ ifeq ($(BUILD_SHARED),yes)
        ldconfig
        mkdir -p $(prefix)/include/libffmpeg
        install -m 644 avcodec.h $(prefix)/include/libffmpeg/avcodec.h
+       install -m 644 common.h $(prefix)/include/libffmpeg/common.h
 endif
 #
 # include dependency files if they exist