3 # (c) 2000-2003 Fabrice Bellard
7 VPATH
=$(SRC_PATH
)/libavcodec
9 # NOTE: -I.. is needed to include config.h
10 CFLAGS
= -Wall
$(OPTFLAGS
) -DHAVE_AV_CONFIG_H
-I..
-D_FILE_OFFSET_BITS
=64 -D_LARGEFILE_SOURCE
-D_GNU_SOURCE
12 OBJS
= common.o utils.o mem.o allcodecs.o \
13 mpegvideo.o jrevdct.o jfdctfst.o jfdctint.o\
14 mpegaudio.o ac3enc.o mjpeg.o resample.o dsputil.o \
15 motion_est.o imgconvert.o imgresample.o \
16 mpeg12.o mpegaudiodec.o pcm.o simple_idct.o \
17 ratecontrol.o adpcm.o eval.o dv.o error_resilience.o \
18 fft.o mdct.o mace.o huffyuv.o cyuv.o opts.o raw.o h264.o golomb.o \
19 vp3.o asv1.o
4xm.o cabac.o ffv1.o ra144.o ra288.o vcr1.o cljr.o \
20 roqvideo.o dpcm.o interplayvideo.o xan.o rpza.o cinepak.o msrle.o \
24 ifeq ($(AMR_NB_FIXED
),yes
)
26 AMREXTRALIBS
+= amr
/*.o
30 OBJS
+= amr.o amr_float
/sp_dec.o amr_float
/sp_enc.o amr_float
/interf_dec.o amr_float
/interf_enc.o
31 CLEANAMR
=cleanamrfloat
36 OBJS
+= amr.o amrwb_float
/dec_acelp.o amrwb_float
/dec_dtx.o amrwb_float
/dec_gain.o \
37 amrwb_float
/dec_if.o amrwb_float
/dec_lpc.o amrwb_float
/dec_main.o \
38 amrwb_float
/dec_rom.o amrwb_float
/dec_util.o amrwb_float
/enc_acelp.o \
39 amrwb_float
/enc_dtx.o amrwb_float
/enc_gain.o amrwb_float
/enc_if.o \
40 amrwb_float
/enc_lpc.o amrwb_float
/enc_main.o amrwb_float
/enc_rom.o \
41 amrwb_float
/enc_util.o amrwb_float
/if_rom.o
43 CLEANAMRWB
=cleanamrwbfloat
46 # codecs which are patented in some non free countries like the us
47 ifeq ($(CONFIG_RISKY
),yes
)
48 OBJS
+= h263.o msmpeg4.o h263dec.o svq1.o rv10.o wmadec.o indeo3.o
51 ifeq ($(HAVE_XVMC_ACCEL
),yes
)
55 # currently using liba52 for ac3 decoding
56 ifeq ($(CONFIG_AC3
),yes
)
59 # using builtin liba52 or runtime linked liba52.so.0
60 ifneq ($(CONFIG_A52BIN
),yes
)
61 OBJS
+= liba52
/bit_allocate.o liba52
/bitstream.o liba52
/downmix.o \
62 liba52
/imdct.o liba52
/parse.o liba52
/crc.o liba52
/resample.o
66 ifeq ($(CONFIG_FAAD
),yes
)
68 ifeq ($(CONFIG_FAADBIN
),yes
)
75 ifeq ($(CONFIG_PP
),yes
)
76 ifeq ($(SHARED_PP
),yes
)
77 EXTRALIBS
+= -lpostproc
79 # LIBS += libpostproc/libpostproc.a ... should be fixed
80 OBJS
+= libpostproc
/postprocess.o
84 ifeq ($(CONFIG_MP3LAME
),yes
)
85 OBJS
+= mp3lameaudio.o
86 EXTRALIBS
+= -lmp3lame
89 ifeq ($(CONFIG_VORBIS
),yes
)
91 EXTRALIBS
+= -lvorbis
-lvorbisenc
94 ifeq ($(TARGET_GPROF
),yes
)
99 # i386 mmx specific stuff
100 ifeq ($(TARGET_MMX
),yes
)
101 OBJS
+= i386
/fdct_mmx.o i386
/cputest.o \
102 i386
/dsputil_mmx.o i386
/mpegvideo_mmx.o \
103 i386
/idct_mmx.o i386
/motion_est_mmx.o \
104 i386
/simple_idct_mmx.o i386
/fft_sse.o
105 ifdef TARGET_BUILTIN_VECTOR
106 i386
/fft_sse.o
: CFLAGS
+= -msse
110 # armv4l specific stuff
111 ifeq ($(TARGET_ARCH_ARMV4L
),yes
)
112 ASM_OBJS
+= armv4l
/jrevdct_arm.o armv4l
/simple_idct_arm.o
113 OBJS
+= armv4l
/dsputil_arm.o armv4l
/mpegvideo_arm.o
116 # sun mediaLib specific stuff
117 # currently only works when libavcodec is used in mplayer
118 ifeq ($(HAVE_MLIB
),yes
)
119 OBJS
+= mlib
/dsputil_mlib.o
120 CFLAGS
+= $(MLIB_INC
)
123 # alpha specific stuff
124 ifeq ($(TARGET_ARCH_ALPHA
),yes
)
125 OBJS
+= alpha
/dsputil_alpha.o alpha
/mpegvideo_alpha.o \
126 alpha
/simple_idct_alpha.o alpha
/motion_est_alpha.o
127 ASM_OBJS
+= alpha
/dsputil_alpha_asm.o alpha
/motion_est_mvi_asm.o
128 CFLAGS
+= -fforce-addr
-freduce-all-givs
131 ifeq ($(TARGET_ARCH_POWERPC
),yes
)
132 OBJS
+= ppc
/dsputil_ppc.o ppc
/mpegvideo_ppc.o
135 ifeq ($(TARGET_MMI
),yes
)
136 OBJS
+= ps2
/dsputil_mmi.o ps2
/idct_mmi.o ps2
/mpegvideo_mmi.o
139 ifeq ($(TARGET_ALTIVEC
),yes
)
140 OBJS
+= ppc
/dsputil_altivec.o ppc
/mpegvideo_altivec.o ppc
/idct_altivec.o \
141 ppc
/fft_altivec.o ppc
/gmc_altivec.o
144 ifeq ($(TARGET_ARCH_SH4
),yes
)
145 OBJS
+= sh4
/idct_sh4.o sh4
/dsputil_sh4.o sh4
/dsputil_align.o
149 SRCS
:= $(OBJS
:.o
=.c
) $(ASM_OBJS
:.o
=.S
)
150 OBJS
:= $(OBJS
) $(ASM_OBJS
)
152 LIB
= $(LIBPREF
)avcodec
$(LIBSUF
)
153 ifeq ($(BUILD_SHARED
),yes
)
154 SLIB
= $(SLIBPREF
)avcodec
$(SLIBSUF
)
156 TESTS
= imgresample-test dct-test motion-test fft-test
161 $(MAKE
) -C amr spclib fipoplib
163 tests
: apiexample cpuid_test
$(TESTS
)
165 $(LIB
): $(OBJS
) $(AMRLIBS
)
167 $(AR
) rc
$@
$(OBJS
) $(AMREXTRALIBS
)
171 ifeq ($(CONFIG_WIN32
),yes
)
172 $(CC
) $(SHFLAGS
) -Wl
,--output-def
,$(@
:.dll
=.def
) -o
$@
$(OBJS
) $(EXTRALIBS
) $(AMREXTRALIBS
)
173 -lib
/machine
:i386
/def
:$(@
:.dll
=.def
)
175 $(CC
) $(SHFLAGS
) -o
$@
$(OBJS
) $(EXTRALIBS
) $(AMREXTRALIBS
)
178 dsputil.o
: dsputil.c dsputil.h
180 libpostproc
/libpostproc.a
:
181 $(MAKE
) -C libpostproc
184 $(CC
) $(CFLAGS
) -c
-o
$@
$<
187 $(CC
) $(CFLAGS
) -c
-o
$@
$<
190 $(CC
) -MM
$(CFLAGS
) $^
1>.depend
195 rm -f
*.o
*.d
*~ .depend
$(LIB
) $(SLIB
) *.so i386
/*.o i386
/*~ \
196 armv4l
/*.o armv4l
/*~ \
202 liba52
/*.o liba52
/*~ \
204 $(MAKE
) -C libpostproc
clean
207 rm -f Makefile.bak .depend
216 $(MAKE
) -C amrwb_float
-f makefile.gcc
clean
218 # api example program
219 apiexample
: apiexample.c
$(LIB
)
220 $(CC
) $(CFLAGS
) -o
$@
$< $(LIB
) $(EXTRALIBS
) -lm
223 cpuid_test
: i386
/cputest.c
224 $(CC
) $(CFLAGS
) -D__TEST__
-o
$@
$<
228 imgresample-test
: imgresample.c
229 $(CC
) $(CFLAGS
) -DTEST
-o
$@
$^
-lm
231 dct-test
: dct-test.o fdctref.o
$(LIB
)
234 motion-test
: motion_test.o
$(LIB
)
237 fft-test
: fft-test.o
$(LIB
)
240 ifeq ($(BUILD_SHARED
),yes
)
241 install: all install-headers
242 ifeq ($(CONFIG_WIN32
),yes
)
243 install -s
-m
755 $(SLIB
) "$(prefix)"
245 install -d
$(prefix)/lib
246 install -s
-m
755 $(SLIB
) $(prefix)/lib
/libavcodec-
$(VERSION
).so
247 ln
-sf libavcodec-
$(VERSION
).so
$(prefix)/lib
/libavcodec.so
254 installlib
: all install-headers
255 install -m
644 $(LIB
) $(prefix)/lib
258 mkdir
-p
"$(prefix)/include/ffmpeg"
259 install -m
644 $(SRC_PATH
)/libavcodec
/avcodec.h
$(SRC_PATH
)/libavcodec
/common.h \
260 "$(prefix)/include/ffmpeg"
263 # include dependency files if they exist
265 ifneq ($(wildcard .depend
),)