3 # (c) 2000, 2001, 2002 Fabrice Bellard
7 VPATH
=$(SRC_PATH
)/libavcodec
9 # NOTE: -I.. is needed to include config.h
10 CFLAGS
= $(OPTFLAGS
) -Wall
-g
-DHAVE_AV_CONFIG_H
-I..
-D_FILE_OFFSET_BITS
=64 -D_LARGEFILE_SOURCE
-D_GNU_SOURCE
13 OBJS
= common.o utils.o mem.o allcodecs.o \
14 mpegvideo.o h263.o jrevdct.o jfdctfst.o jfdctint.o\
15 mpegaudio.o ac3enc.o mjpeg.o resample.o dsputil.o \
16 motion_est.o imgconvert.o imgresample.o msmpeg4.o \
17 mpeg12.o h263dec.o svq1.o rv10.o mpegaudiodec.o pcm.o simple_idct.o \
18 ratecontrol.o adpcm.o eval.o dv.o error_resilience.o \
19 wmadec.o fft.o mdct.o mace.o huffyuv.o
22 # currently using liba52 for ac3 decoding
23 ifeq ($(CONFIG_AC3
),yes
)
26 # using builtin liba52 or runtime linked liba52.so.0
27 ifneq ($(CONFIG_A52BIN
),yes
)
28 OBJS
+= liba52
/bit_allocate.o liba52
/bitstream.o liba52
/downmix.o \
29 liba52
/imdct.o liba52
/parse.o
33 ifeq ($(CONFIG_MP3LAME
),yes
)
34 OBJS
+= mp3lameaudio.o
35 EXTRALIBS
+= -lmp3lame
38 ifeq ($(CONFIG_VORBIS
),yes
)
40 EXTRALIBS
+= -lvorbis
-lvorbisenc
43 ifeq ($(TARGET_GPROF
),yes
)
48 # i386 mmx specific stuff
49 ifeq ($(TARGET_MMX
),yes
)
50 OBJS
+= i386
/fdct_mmx.o i386
/cputest.o \
51 i386
/dsputil_mmx.o i386
/mpegvideo_mmx.o \
52 i386
/idct_mmx.o i386
/motion_est_mmx.o \
53 i386
/simple_idct_mmx.o i386
/fft_sse.o
56 # armv4l specific stuff
57 ifeq ($(TARGET_ARCH_ARMV4L
),yes
)
58 ASM_OBJS
+= armv4l
/jrevdct_arm.o
59 OBJS
+= armv4l
/dsputil_arm.o armv4l
/mpegvideo_arm.o
62 # sun mediaLib specific stuff
63 # currently only works when libavcodec is used in mplayer
64 ifeq ($(HAVE_MLIB
),yes
)
65 OBJS
+= mlib
/dsputil_mlib.o
69 # alpha specific stuff
70 ifeq ($(TARGET_ARCH_ALPHA
),yes
)
71 OBJS
+= alpha
/dsputil_alpha.o alpha
/mpegvideo_alpha.o \
72 alpha
/simple_idct_alpha.o alpha
/motion_est_alpha.o
73 ASM_OBJS
+= alpha
/dsputil_alpha_asm.o alpha
/motion_est_mvi_asm.o
74 CFLAGS
+= -fforce-addr
-freduce-all-givs
77 ifeq ($(TARGET_ARCH_POWERPC
),yes
)
78 OBJS
+= ppc
/dsputil_ppc.o ppc
/mpegvideo_ppc.o
81 ifeq ($(TARGET_MMI
),yes
)
82 OBJS
+= ps2
/dsputil_mmi.o ps2
/idct_mmi.o ps2
/mpegvideo_mmi.o
85 ifeq ($(TARGET_ALTIVEC
),yes
)
87 OBJS
+= ppc
/dsputil_altivec.o ppc
/mpegvideo_altivec.o ppc
/idct_altivec.o \
88 ppc
/fft_altivec.o ppc
/gmc_altivec.o
91 SRCS
:= $(OBJS
:.o
=.c
) $(ASM_OBJS
:.o
=.S
)
92 OBJS
:= $(OBJS
) $(ASM_OBJS
)
94 LIB
= $(LIBPREF
)avcodec
$(LIBSUF
)
95 ifeq ($(BUILD_SHARED
),yes
)
96 SLIB
= $(SLIBPREF
)avcodec
$(SLIBSUF
)
98 TESTS
= imgresample-test dct-test motion-test fft-test
102 tests
: apiexample cpuid_test
$(TESTS
)
107 ifneq ($(CONFIG_OS2
),yes
)
112 $(CC
) $(SHFLAGS
) -o
$@
$(OBJS
) $(EXTRALIBS
)
114 dsputil.o
: dsputil.c dsputil.h
117 $(CC
) $(CFLAGS
) -c
-o
$@
$<
120 $(CC
) $(CFLAGS
) -c
-o
$@
$<
122 # motion_est_alpha uses the MVI extension, which is not available with
123 # -mcpu=ev4 (default) or ev5/ev56. Thus, force -mcpu=pca56 in those
125 ifeq ($(TARGET_ARCH_ALPHA
),yes
)
126 alpha
/motion_est_alpha.o
: alpha
/motion_est_alpha.c
127 cpu
=`echo "$(CFLAGS)" | sed -n 's,.*-mcpu=\([a-zA-Z0-9]*\).*,\1,p'`; \
128 case x
"$$cpu" in x|xev
[45]*) newcpu
=pca56
;; *) newcpu
=$$cpu;; esac
; \
129 echo
$(CC
) $(CFLAGS
) -mcpu
=$$newcpu -c
-o
$@
$<;\
130 $(CC
) $(CFLAGS
) -mcpu
=$$newcpu -c
-o
$@
$<
133 # depend only used by mplayer now
137 $(CC
) -MM
$(CFLAGS
) $(SRCS
) 1>.depend
140 rm -f
*.o
*~ .depend
$(LIB
) $(SLIB
) *.so i386
/*.o i386
/*~ \
141 armv4l
/*.o armv4l
/*~ \
146 liba52
/*.o liba52
/*~ \
150 rm -f Makefile.bak .depend
152 # api example program
153 apiexample
: apiexample.c
$(LIB
)
154 $(CC
) $(CFLAGS
) -o
$@
$< $(LIB
) $(EXTRALIBS
) -lm
157 cpuid_test
: i386
/cputest.c
158 $(CC
) $(CFLAGS
) -D__TEST__
-o
$@
$<
162 imgresample-test
: imgresample.c
163 $(CC
) $(CFLAGS
) -DTEST
-o
$@
$^
-lm
165 dct-test
: dct-test.o fdctref.o
$(LIB
)
168 motion-test
: motion_test.o
$(LIB
)
171 fft-test
: fft-test.o
$(LIB
)
175 ifeq ($(BUILD_SHARED
),yes
)
176 install -d
$(prefix)/lib
177 install -s
-m
755 $(SLIB
) $(prefix)/lib
/libavcodec-
$(VERSION
).so
178 ln
-sf libavcodec-
$(VERSION
).so
$(prefix)/lib
/libavcodec.so
180 mkdir
-p
$(prefix)/include/ffmpeg
181 install -m
644 $(VPATH
)/avcodec.h
$(prefix)/include/ffmpeg
/avcodec.h
182 install -m
644 $(VPATH
)/common.h
$(prefix)/include/ffmpeg
/common.h
186 install -m
644 $(LIB
) $(prefix)/lib
187 mkdir
-p
$(prefix)/include/ffmpeg
188 install -m
644 $(SRC_PATH
)/libavcodec
/avcodec.h
$(SRC_PATH
)/libavcodec
/common.h \
189 $(prefix)/include/ffmpeg
192 # include dependency files if they exist
194 ifneq ($(wildcard .depend
),)