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
23 ifeq ($(AMR_NB_FIXED
),yes
)
25 AMREXTRALIBS
+= amr
/*.o
29 OBJS
+= amr.o amr_float
/sp_dec.o amr_float
/sp_enc.o amr_float
/interf_dec.o amr_float
/interf_enc.o
30 CLEANAMR
=cleanamrfloat
35 OBJS
+= amr.o amrwb_float
/dec_acelp.o amrwb_float
/dec_dtx.o amrwb_float
/dec_gain.o \
36 amrwb_float
/dec_if.o amrwb_float
/dec_lpc.o amrwb_float
/dec_main.o \
37 amrwb_float
/dec_rom.o amrwb_float
/dec_util.o amrwb_float
/enc_acelp.o \
38 amrwb_float
/enc_dtx.o amrwb_float
/enc_gain.o amrwb_float
/enc_if.o \
39 amrwb_float
/enc_lpc.o amrwb_float
/enc_main.o amrwb_float
/enc_rom.o \
40 amrwb_float
/enc_util.o amrwb_float
/if_rom.o
42 CLEANAMRWB
=cleanamrwbfloat
45 # codecs which are patented in some non free countries like the us
46 ifeq ($(CONFIG_RISKY
),yes
)
47 OBJS
+= h263.o msmpeg4.o h263dec.o svq1.o rv10.o wmadec.o indeo3.o
50 ifeq ($(HAVE_XVMC_ACCEL
),yes
)
54 # currently using liba52 for ac3 decoding
55 ifeq ($(CONFIG_AC3
),yes
)
58 # using builtin liba52 or runtime linked liba52.so.0
59 ifneq ($(CONFIG_A52BIN
),yes
)
60 OBJS
+= liba52
/bit_allocate.o liba52
/bitstream.o liba52
/downmix.o \
61 liba52
/imdct.o liba52
/parse.o liba52
/crc.o liba52
/resample.o
65 ifeq ($(CONFIG_FAAD
),yes
)
67 ifeq ($(CONFIG_FAADBIN
),yes
)
74 ifeq ($(CONFIG_PP
),yes
)
75 ifeq ($(SHARED_PP
),yes
)
76 EXTRALIBS
+= -lpostproc
78 # LIBS += libpostproc/libpostproc.a ... should be fixed
79 OBJS
+= libpostproc
/postprocess.o
83 ifeq ($(CONFIG_MP3LAME
),yes
)
84 OBJS
+= mp3lameaudio.o
85 EXTRALIBS
+= -lmp3lame
88 ifeq ($(CONFIG_VORBIS
),yes
)
90 EXTRALIBS
+= -lvorbis
-lvorbisenc
93 ifeq ($(TARGET_GPROF
),yes
)
98 # i386 mmx specific stuff
99 ifeq ($(TARGET_MMX
),yes
)
100 OBJS
+= i386
/fdct_mmx.o i386
/cputest.o \
101 i386
/dsputil_mmx.o i386
/mpegvideo_mmx.o \
102 i386
/idct_mmx.o i386
/motion_est_mmx.o \
103 i386
/simple_idct_mmx.o i386
/fft_sse.o
104 ifdef TARGET_BUILTIN_VECTOR
105 i386
/fft_sse.o
: CFLAGS
+= -msse
109 # armv4l specific stuff
110 ifeq ($(TARGET_ARCH_ARMV4L
),yes
)
111 ASM_OBJS
+= armv4l
/jrevdct_arm.o armv4l
/simple_idct_arm.o
112 OBJS
+= armv4l
/dsputil_arm.o armv4l
/mpegvideo_arm.o
115 # sun mediaLib specific stuff
116 # currently only works when libavcodec is used in mplayer
117 ifeq ($(HAVE_MLIB
),yes
)
118 OBJS
+= mlib
/dsputil_mlib.o
119 CFLAGS
+= $(MLIB_INC
)
122 # alpha specific stuff
123 ifeq ($(TARGET_ARCH_ALPHA
),yes
)
124 OBJS
+= alpha
/dsputil_alpha.o alpha
/mpegvideo_alpha.o \
125 alpha
/simple_idct_alpha.o alpha
/motion_est_alpha.o
126 ASM_OBJS
+= alpha
/dsputil_alpha_asm.o alpha
/motion_est_mvi_asm.o
127 CFLAGS
+= -fforce-addr
-freduce-all-givs
130 ifeq ($(TARGET_ARCH_POWERPC
),yes
)
131 OBJS
+= ppc
/dsputil_ppc.o ppc
/mpegvideo_ppc.o
134 ifeq ($(TARGET_MMI
),yes
)
135 OBJS
+= ps2
/dsputil_mmi.o ps2
/idct_mmi.o ps2
/mpegvideo_mmi.o
138 ifeq ($(TARGET_ALTIVEC
),yes
)
139 OBJS
+= ppc
/dsputil_altivec.o ppc
/mpegvideo_altivec.o ppc
/idct_altivec.o \
140 ppc
/fft_altivec.o ppc
/gmc_altivec.o
143 ifeq ($(TARGET_ARCH_SH4
),yes
)
144 OBJS
+= sh4
/idct_sh4.o sh4
/dsputil_sh4.o sh4
/dsputil_align.o
148 SRCS
:= $(OBJS
:.o
=.c
) $(ASM_OBJS
:.o
=.S
)
149 OBJS
:= $(OBJS
) $(ASM_OBJS
)
151 LIB
= $(LIBPREF
)avcodec
$(LIBSUF
)
152 ifeq ($(BUILD_SHARED
),yes
)
153 SLIB
= $(SLIBPREF
)avcodec
$(SLIBSUF
)
155 TESTS
= imgresample-test dct-test motion-test fft-test
160 $(MAKE
) -C amr spclib fipoplib
162 tests
: apiexample cpuid_test
$(TESTS
)
164 $(LIB
): $(OBJS
) $(AMRLIBS
)
166 $(AR
) rc
$@
$(OBJS
) $(AMREXTRALIBS
)
170 ifeq ($(CONFIG_WIN32
),yes
)
171 $(CC
) $(SHFLAGS
) -Wl
,--output-def
,$(@
:.dll
=.def
) -o
$@
$(OBJS
) $(EXTRALIBS
) $(AMREXTRALIBS
)
172 -lib
/machine
:i386
/def
:$(@
:.dll
=.def
)
174 $(CC
) $(SHFLAGS
) -o
$@
$(OBJS
) $(EXTRALIBS
) $(AMREXTRALIBS
)
177 dsputil.o
: dsputil.c dsputil.h
179 libpostproc
/libpostproc.a
:
180 $(MAKE
) -C libpostproc
183 $(CC
) $(CFLAGS
) -c
-o
$@
$<
186 $(CC
) $(CFLAGS
) -c
-o
$@
$<
189 $(CC
) -MM
$(CFLAGS
) $^
1>.depend
194 rm -f
*.o
*.d
*~ .depend
$(LIB
) $(SLIB
) *.so i386
/*.o i386
/*~ \
195 armv4l
/*.o armv4l
/*~ \
201 liba52
/*.o liba52
/*~ \
203 $(MAKE
) -C libpostproc
clean
206 rm -f Makefile.bak .depend
215 $(MAKE
) -C amrwb_float
-f makefile.gcc
clean
217 # api example program
218 apiexample
: apiexample.c
$(LIB
)
219 $(CC
) $(CFLAGS
) -o
$@
$< $(LIB
) $(EXTRALIBS
) -lm
222 cpuid_test
: i386
/cputest.c
223 $(CC
) $(CFLAGS
) -D__TEST__
-o
$@
$<
227 imgresample-test
: imgresample.c
228 $(CC
) $(CFLAGS
) -DTEST
-o
$@
$^
-lm
230 dct-test
: dct-test.o fdctref.o
$(LIB
)
233 motion-test
: motion_test.o
$(LIB
)
236 fft-test
: fft-test.o
$(LIB
)
239 ifeq ($(BUILD_SHARED
),yes
)
240 install: all install-headers
241 ifeq ($(CONFIG_WIN32
),yes
)
242 install -s
-m
755 $(SLIB
) "$(prefix)"
244 install -d
$(prefix)/lib
245 install -s
-m
755 $(SLIB
) $(prefix)/lib
/libavcodec-
$(VERSION
).so
246 ln
-sf libavcodec-
$(VERSION
).so
$(prefix)/lib
/libavcodec.so
253 installlib
: all install-headers
254 install -m
644 $(LIB
) $(prefix)/lib
257 mkdir
-p
"$(prefix)/include/ffmpeg"
258 install -m
644 $(SRC_PATH
)/libavcodec
/avcodec.h
$(SRC_PATH
)/libavcodec
/common.h \
259 "$(prefix)/include/ffmpeg"
262 # include dependency files if they exist
264 ifneq ($(wildcard .depend
),)