Commit | Line | Data |
---|---|---|
4cc281d9 FB |
1 | # |
2 | # libavcodec Makefile | |
6d6d7970 | 3 | # (c) 2000-2005 Fabrice Bellard |
4cc281d9 | 4 | # |
980fc7b8 FB |
5 | include ../config.mak |
6 | ||
ff4ec49e | 7 | # NOTE: -I.. is needed to include config.h |
f130fd46 DB |
8 | CFLAGS=$(OPTFLAGS) -DHAVE_AV_CONFIG_H -I.. -I$(SRC_PATH)/libavutil \ |
9 | -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE $(AMR_CFLAGS) | |
de6d9b64 | 10 | |
caa336b4 | 11 | OBJS= bitstream.o utils.o mem.o allcodecs.o \ |
1d0d55da | 12 | mpegvideo.o jrevdct.o jfdctfst.o jfdctint.o\ |
0ac3dcb8 | 13 | mjpeg.o resample.o resample2.o dsputil.o \ |
1d0d55da | 14 | motion_est.o imgconvert.o imgresample.o \ |
4f1bb8a9 | 15 | mpeg12.o mpegaudiodec.o pcm.o simple_idct.o \ |
8b975b7c MN |
16 | ratecontrol.o adpcm.o eval.o error_resilience.o \ |
17 | fft.o mdct.o raw.o golomb.o cabac.o\ | |
c11c2bc2 | 18 | dpcm.o adx.o faandct.o parser.o g726.o \ |
689abe56 | 19 | vp3dsp.o h264idct.o rangecoder.o pnm.o h263.o msmpeg4.o h263dec.o \ |
748c2fca MN |
20 | opt.o \ |
21 | bitstream_filter.o \ | |
22 | ||
240c1657 | 23 | |
d59518d4 | 24 | HEADERS = avcodec.h |
8b2121e3 | 25 | |
bac3be38 MR |
26 | OBJS-$(CONFIG_AASC_DECODER) += aasc.o |
27 | OBJS-$(CONFIG_AC3_ENCODER) += ac3enc.o | |
28 | OBJS-$(CONFIG_ALAC_DECODER) += alac.o | |
29 | OBJS-$(CONFIG_ASV1_DECODER) += asv1.o | |
30 | OBJS-$(CONFIG_ASV1_ENCODER) += asv1.o | |
31 | OBJS-$(CONFIG_ASV2_DECODER) += asv1.o | |
32 | OBJS-$(CONFIG_ASV2_ENCODER) += asv1.o | |
33 | OBJS-$(CONFIG_AVS_DECODER) += avs.o | |
34 | OBJS-$(CONFIG_CAVS_DECODER) += cavs.o cavsdsp.o | |
35 | OBJS-$(CONFIG_CINEPAK_DECODER) += cinepak.o | |
36 | OBJS-$(CONFIG_COOK_DECODER) += cook.o | |
37 | OBJS-$(CONFIG_CLJR_DECODER) += cljr.o | |
38 | OBJS-$(CONFIG_CLJR_ENCODER) += cljr.o | |
39 | OBJS-$(CONFIG_CYUV_DECODER) += cyuv.o | |
40 | OBJS-$(CONFIG_DVBSUB_DECODER) += dvbsubdec.o | |
41 | OBJS-$(CONFIG_DVBSUB_ENCODER) += dvbsub.o | |
42 | OBJS-$(CONFIG_DVDSUB_DECODER) += dvdsub.o | |
43 | OBJS-$(CONFIG_DVDSUB_ENCODER) += dvdsubenc.o | |
44 | OBJS-$(CONFIG_DVVIDEO_DECODER) += dv.o | |
45 | OBJS-$(CONFIG_DVVIDEO_ENCODER) += dv.o | |
46 | OBJS-$(CONFIG_EIGHTBPS_DECODER) += 8bps.o | |
47 | OBJS-$(CONFIG_FFV1_DECODER) += ffv1.o | |
48 | OBJS-$(CONFIG_FFV1_ENCODER) += ffv1.o | |
49 | OBJS-$(CONFIG_FLAC_DECODER) += flac.o | |
50 | OBJS-$(CONFIG_FLAC_ENCODER) += flacenc.o | |
51 | OBJS-$(CONFIG_FLIC_DECODER) += flicvideo.o | |
52 | OBJS-$(CONFIG_FOURXM_DECODER) += 4xm.o | |
53 | OBJS-$(CONFIG_FRAPS_DECODER) += fraps.o | |
54 | OBJS-$(CONFIG_H261_DECODER) += h261.o | |
55 | OBJS-$(CONFIG_H261_ENCODER) += h261.o | |
56 | OBJS-$(CONFIG_H264_DECODER) += h264.o | |
57 | OBJS-$(CONFIG_SVQ3_DECODER) += h264.o | |
58 | OBJS-$(CONFIG_HUFFYUV_DECODER) += huffyuv.o | |
59 | OBJS-$(CONFIG_HUFFYUV_ENCODER) += huffyuv.o | |
60 | OBJS-$(CONFIG_FFVHUFF_DECODER) += huffyuv.o | |
61 | OBJS-$(CONFIG_FFVHUFF_ENCODER) += huffyuv.o | |
62 | OBJS-$(CONFIG_IDCIN_DECODER) += idcinvideo.o | |
63 | OBJS-$(CONFIG_INDEO2_DECODER) += indeo2.o | |
64 | OBJS-$(CONFIG_INDEO3_DECODER) += indeo3.o | |
65 | OBJS-$(CONFIG_INTERPLAY_VIDEO_DECODER) += interplayvideo.o | |
66 | OBJS-$(CONFIG_KMVC_DECODER) += kmvc.o | |
67 | OBJS-$(CONFIG_MSZH_DECODER) += lcl.o | |
68 | OBJS-$(CONFIG_ZLIB_DECODER) += lcl.o | |
69 | OBJS-$(CONFIG_ZLIB_ENCODER) += lcl.o | |
70 | OBJS-$(CONFIG_LOCO_DECODER) += loco.o | |
71 | OBJS-$(CONFIG_MACE3_DECODER) += mace.o | |
72 | OBJS-$(CONFIG_MACE6_DECODER) += mace.o | |
73 | OBJS-$(CONFIG_MP2_ENCODER) += mpegaudio.o | |
74 | OBJS-$(CONFIG_MSRLE_DECODER) += msrle.o | |
75 | OBJS-$(CONFIG_MSVIDEO1_DECODER) += msvideo1.o | |
76 | OBJS-$(CONFIG_PNG_DECODER) += png.o | |
77 | OBJS-$(CONFIG_PNG_ENCODER) += png.o | |
78 | OBJS-$(CONFIG_QDM2_DECODER) += qdm2.o | |
79 | OBJS-$(CONFIG_QDRAW_DECODER) += qdrw.o | |
80 | OBJS-$(CONFIG_QPEG_DECODER) += qpeg.o | |
81 | OBJS-$(CONFIG_QTRLE_DECODER) += qtrle.o | |
82 | OBJS-$(CONFIG_RA_144_DECODER) += ra144.o | |
83 | OBJS-$(CONFIG_RA_288_DECODER) += ra288.o | |
84 | OBJS-$(CONFIG_ROQ_DECODER) += roqvideo.o | |
85 | OBJS-$(CONFIG_RPZA_DECODER) += rpza.o | |
86 | OBJS-$(CONFIG_RV10_DECODER) += rv10.o | |
87 | OBJS-$(CONFIG_RV10_ENCODER) += rv10.o | |
88 | OBJS-$(CONFIG_RV20_DECODER) += rv10.o | |
89 | OBJS-$(CONFIG_RV20_ENCODER) += rv10.o | |
90 | OBJS-$(CONFIG_SHORTEN_DECODER) += shorten.o | |
91 | OBJS-$(CONFIG_SMACKER_DECODER) += smacker.o | |
92 | OBJS-$(CONFIG_SMACKAUD_DECODER) += smacker.o | |
93 | OBJS-$(CONFIG_SMC_DECODER) += smc.o | |
94 | OBJS-$(CONFIG_SNOW_DECODER) += snow.o | |
95 | OBJS-$(CONFIG_SNOW_ENCODER) += snow.o | |
96 | OBJS-$(CONFIG_SONIC_DECODER) += sonic.o | |
97 | OBJS-$(CONFIG_SONIC_ENCODER) += sonic.o | |
98 | OBJS-$(CONFIG_SONIC_LS_DECODER) += sonic.o | |
99 | OBJS-$(CONFIG_SVQ1_DECODER) += svq1.o | |
100 | OBJS-$(CONFIG_SVQ1_ENCODER) += svq1.o | |
101 | OBJS-$(CONFIG_TRUEMOTION1_DECODER) += truemotion1.o | |
102 | OBJS-$(CONFIG_TRUEMOTION2_DECODER) += truemotion2.o | |
103 | OBJS-$(CONFIG_TRUESPEECH_DECODER) += truespeech.o | |
104 | OBJS-$(CONFIG_TTA_DECODER) += tta.o | |
105 | OBJS-$(CONFIG_TSCC_DECODER) += tscc.o | |
106 | OBJS-$(CONFIG_CSCD_DECODER) += cscd.o lzo.o | |
107 | OBJS-$(CONFIG_NUV_DECODER) += nuv.o rtjpeg.o lzo.o | |
108 | OBJS-$(CONFIG_ULTI_DECODER) += ulti.o | |
109 | OBJS-$(CONFIG_VC1_DECODER) += vc1.o | |
110 | OBJS-$(CONFIG_WMV3_DECODER) += vc1.o | |
111 | OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o | |
112 | OBJS-$(CONFIG_VCR1_ENCODER) += vcr1.o | |
113 | OBJS-$(CONFIG_VMDVIDEO_DECODER) += vmdav.o | |
114 | OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdav.o | |
115 | OBJS-$(CONFIG_VORBIS_DECODER) += vorbis.o | |
116 | OBJS-$(CONFIG_VP3_DECODER) += vp3.o | |
117 | OBJS-$(CONFIG_THEORA_DECODER) += vp3.o | |
118 | OBJS-$(CONFIG_VQA_DECODER) += vqavideo.o | |
119 | OBJS-$(CONFIG_WMAV1_DECODER) += wmadec.o | |
120 | OBJS-$(CONFIG_WMAV2_DECODER) += wmadec.o | |
121 | OBJS-$(CONFIG_WNV1_DECODER) += wnv1.o | |
122 | OBJS-$(CONFIG_WS_SND1_DECODER) += ws-snd1.o | |
123 | OBJS-$(CONFIG_XAN_WC3_DECODER) += xan.o | |
124 | OBJS-$(CONFIG_XAN_WC4_DECODER) += xan.o | |
125 | OBJS-$(CONFIG_XL_DECODER) += xl.o | |
126 | OBJS-$(CONFIG_BMP_DECODER) += bmp.o | |
127 | OBJS-$(CONFIG_MMVIDEO_DECODER) += mmvideo.o | |
128 | OBJS-$(CONFIG_ZMBV_DECODER) += zmbv.o | |
129 | OBJS-$(CONFIG_FLASHSV_DECODER) += flashsv.o | |
130 | ||
131 | OBJS-$(CONFIG_FAAD) += faad.o | |
132 | OBJS-$(CONFIG_FAAC) += faac.o | |
133 | OBJS-$(CONFIG_XVID) += xvidff.o xvid_rc.o | |
134 | OBJS-$(CONFIG_X264) += x264.o | |
135 | OBJS-$(CONFIG_MP3LAME) += mp3lameaudio.o | |
136 | OBJS-$(CONFIG_LIBVORBIS) += oggvorbis.o | |
137 | OBJS-$(CONFIG_LIBTHEORA) += oggtheora.o | |
138 | OBJS-$(CONFIG_LIBGSM) += libgsm.o | |
4f1bb8a9 | 139 | |
57514323 | 140 | # currently using liba52 for ac3 decoding |
bac3be38 | 141 | OBJS-$(CONFIG_AC3) += a52dec.o |
57514323 ZK |
142 | |
143 | # using builtin liba52 or runtime linked liba52.so.0 | |
bac3be38 MR |
144 | OBJS-$(CONFIG_AC3)$(CONFIG_A52BIN) += liba52/bit_allocate.o \ |
145 | liba52/bitstream.o \ | |
146 | liba52/downmix.o \ | |
147 | liba52/imdct.o \ | |
148 | liba52/parse.o \ | |
149 | liba52/crc.o \ | |
150 | liba52/resample.o | |
c11c2bc2 | 151 | |
23c99253 | 152 | # currently using libdts for dts decoding |
bac3be38 MR |
153 | OBJS-$(CONFIG_DTS) += dtsdec.o |
154 | CFLAGS-$(CONFIG_DTS) += $(DTS_INC) | |
23c99253 | 155 | |
bac3be38 MR |
156 | OBJS-$(AMR) += amr.o |
157 | OBJS-$(AMR_NB) += amr_float/sp_dec.o \ | |
158 | amr_float/sp_enc.o \ | |
159 | amr_float/interf_dec.o \ | |
160 | amr_float/interf_enc.o | |
280bd7b7 | 161 | |
bac3be38 MR |
162 | ifeq ($(AMR_NB_FIXED),yes) |
163 | EXTRAOBJS += amr/*.o | |
164 | EXTRADEPS=amrlibs | |
5c5dea3f | 165 | endif |
81e0d0b4 | 166 | |
bac3be38 MR |
167 | OBJS-$(AMR_WB) += amrwb_float/dec_acelp.o \ |
168 | amrwb_float/dec_dtx.o \ | |
169 | amrwb_float/dec_gain.o \ | |
170 | amrwb_float/dec_if.o \ | |
171 | amrwb_float/dec_lpc.o \ | |
172 | amrwb_float/dec_main.o \ | |
173 | amrwb_float/dec_rom.o \ | |
174 | amrwb_float/dec_util.o \ | |
175 | amrwb_float/enc_acelp.o \ | |
176 | amrwb_float/enc_dtx.o \ | |
177 | amrwb_float/enc_gain.o \ | |
178 | amrwb_float/enc_if.o \ | |
179 | amrwb_float/enc_lpc.o \ | |
180 | amrwb_float/enc_main.o \ | |
181 | amrwb_float/enc_rom.o \ | |
182 | amrwb_float/enc_util.o \ | |
183 | amrwb_float/if_rom.o | |
184 | ||
185 | OBJS-$(HAVE_PTHREADS) += pthread.o | |
186 | OBJS-$(HAVE_W32THREADS) += w32thread.o | |
187 | OBJS-$(HAVE_OS2THREADS) += os2thread.o | |
188 | OBJS-$(HAVE_BEOSTHREADS) += beosthread.o | |
189 | ||
190 | OBJS-$(HAVE_XVMC_ACCEL) += xvmcvideo.o | |
bb4c2140 | 191 | |
de6d9b64 | 192 | # i386 mmx specific stuff |
980fc7b8 | 193 | ifeq ($(TARGET_MMX),yes) |
4300403e | 194 | OBJS += i386/fdct_mmx.o i386/cputest.o \ |
de1ee36a | 195 | i386/dsputil_mmx.o i386/mpegvideo_mmx.o \ |
57514323 | 196 | i386/idct_mmx.o i386/motion_est_mmx.o \ |
38acbc3c | 197 | i386/simple_idct_mmx.o i386/fft_sse.o i386/vp3dsp_mmx.o \ |
4567b4bd | 198 | i386/vp3dsp_sse2.o i386/fft_3dn.o i386/fft_3dn2.o i386/snowdsp_mmx.o |
84740d59 MN |
199 | ifeq ($(CONFIG_GPL),yes) |
200 | OBJS += i386/idct_mmx_xvid.o | |
201 | endif | |
87318d69 | 202 | ifeq ($(TARGET_BUILTIN_VECTOR),yes) |
a968e365 | 203 | i386/fft_sse.o: CFLAGS+= -msse |
148beec7 | 204 | depend: CFLAGS+= -msse |
a968e365 | 205 | endif |
87318d69 | 206 | ifeq ($(TARGET_BUILTIN_3DNOW),yes) |
82eb4b0f | 207 | i386/fft_3dn.o: CFLAGS+= -m3dnow |
c2f69579 GP |
208 | ifeq ($(TARGET_ARCH_X86),yes) |
209 | i386/fft_3dn2.o: CFLAGS+= -march=athlon | |
210 | endif | |
211 | ifeq ($(TARGET_ARCH_X86_64),yes) | |
212 | i386/fft_3dn2.o: CFLAGS+= -march=k8 | |
213 | endif | |
82eb4b0f | 214 | endif |
de6d9b64 FB |
215 | endif |
216 | ||
3d03c0a2 | 217 | # armv4l specific stuff |
bac3be38 MR |
218 | ASM_OBJS-$(TARGET_ARCH_ARMV4L) += armv4l/jrevdct_arm.o \ |
219 | armv4l/simple_idct_arm.o \ | |
220 | armv4l/dsputil_arm_s.o | |
221 | OBJS-$(TARGET_ARCH_ARMV4L) += armv4l/dsputil_arm.o \ | |
222 | armv4l/mpegvideo_arm.o | |
223 | OBJS-$(TARGET_IWMMXT) += armv4l/dsputil_iwmmxt.o \ | |
224 | armv4l/mpegvideo_iwmmxt.o | |
225 | ||
226 | # sun sparc | |
227 | OBJS-$(TARGET_ARCH_SPARC) += sparc/dsputil_vis.o | |
228 | sparc/dsputil_vis.o: CFLAGS += -mcpu=ultrasparc -mtune=ultrasparc | |
3d03c0a2 | 229 | |
c34270f5 | 230 | # sun mediaLib specific stuff |
bac3be38 MR |
231 | OBJS-$(HAVE_MLIB) += mlib/dsputil_mlib.o |
232 | CFLAGS-$(HAVE_MLIB) += $(MLIB_INC) | |
6ad1fa5a | 233 | |
1e98dffb | 234 | # alpha specific stuff |
bac3be38 MR |
235 | OBJS-$(TARGET_ARCH_ALPHA) += alpha/dsputil_alpha.o \ |
236 | alpha/mpegvideo_alpha.o \ | |
237 | alpha/simple_idct_alpha.o \ | |
238 | alpha/motion_est_alpha.o | |
239 | ASM_OBJS-$(TARGET_ARCH_ALPHA) += alpha/dsputil_alpha_asm.o \ | |
240 | alpha/motion_est_mvi_asm.o | |
241 | ||
242 | OBJS-$(TARGET_ARCH_POWERPC) += ppc/dsputil_ppc.o ppc/mpegvideo_ppc.o | |
243 | OBJS-$(TARGET_MMI) += ps2/dsputil_mmi.o \ | |
244 | ps2/idct_mmi.o \ | |
245 | ps2/mpegvideo_mmi.o | |
246 | OBJS-$(TARGET_ARCH_SH4) += sh4/idct_sh4.o \ | |
247 | sh4/dsputil_sh4.o \ | |
248 | sh4/dsputil_align.o | |
249 | OBJS-$(TARGET_ALTIVEC) += ppc/dsputil_altivec.o \ | |
250 | ppc/mpegvideo_altivec.o \ | |
251 | ppc/idct_altivec.o \ | |
252 | ppc/fft_altivec.o \ | |
253 | ppc/gmc_altivec.o \ | |
254 | ppc/fdct_altivec.o \ | |
255 | ppc/dsputil_h264_altivec.o \ | |
256 | ppc/dsputil_snow_altivec.o | |
257 | ||
258 | CFLAGS += $(CFLAGS-yes) | |
259 | OBJS += $(OBJS-yes) | |
260 | ASM_OBJS += $(ASM_OBJS-yes) | |
ab6c65f6 | 261 | |
bac3be38 | 262 | EXTRALIBS := -L../libavutil -lavutil$(BUILDSUF) $(EXTRALIBS) |
980fc7b8 | 263 | |
4bdd05e7 | 264 | NAME=avcodec |
c11c2bc2 | 265 | LIBAVUTIL= $(SRC_PATH)/libavutil/$(LIBPREF)avutil$(LIBSUF) |
0fd94442 | 266 | ifeq ($(BUILD_SHARED),yes) |
f3b60109 DB |
267 | LIBVERSION=$(LAVCVERSION) |
268 | LIBMAJOR=$(LAVCMAJOR) | |
0fd94442 | 269 | endif |
6d2abd6b | 270 | TESTS= imgresample-test dct-test motion-test fft-test |
de6d9b64 | 271 | |
8b2121e3 MR |
272 | include $(SRC_PATH)/common.mak |
273 | ||
bc634f6f ZK |
274 | amrlibs: |
275 | $(MAKE) -C amr spclib fipoplib | |
276 | ||
c10e9f70 | 277 | tests: apiexample cpuid_test $(TESTS) |
de6d9b64 | 278 | |
de6d9b64 FB |
279 | dsputil.o: dsputil.c dsputil.h |
280 | ||
c7f1a2f5 | 281 | clean:: |
8b2121e3 | 282 | rm -f \ |
98013cc1 | 283 | i386/*.o i386/*~ \ |
3d03c0a2 | 284 | armv4l/*.o armv4l/*~ \ |
c34270f5 | 285 | mlib/*.o mlib/*~ \ |
1e98dffb | 286 | alpha/*.o alpha/*~ \ |
59925ef2 | 287 | ppc/*.o ppc/*~ \ |
d46aba26 | 288 | ps2/*.o ps2/*~ \ |
0c6bd2ea | 289 | sh4/*.o sh4/*~ \ |
bb476ff3 | 290 | sparc/*.o sparc/*~ \ |
57514323 | 291 | liba52/*.o liba52/*~ \ |
c7f1a2f5 | 292 | amr_float/*.o \ |
57514323 | 293 | apiexample $(TESTS) |
215e46e6 DB |
294 | -$(MAKE) -C amr clean |
295 | -$(MAKE) -C amrwb_float -f makefile.gcc clean | |
d663a1fd | 296 | |
de6d9b64 FB |
297 | # api example program |
298 | apiexample: apiexample.c $(LIB) | |
dc9cc5ed | 299 | $(CC) $(CFLAGS) -o $@ $< $(LIB) $(LIBAVUTIL) $(EXTRALIBS) |
de6d9b64 | 300 | |
c10e9f70 NK |
301 | # cpuid test |
302 | cpuid_test: i386/cputest.c | |
303 | $(CC) $(CFLAGS) -D__TEST__ -o $@ $< | |
304 | ||
de6d9b64 FB |
305 | # testing progs |
306 | ||
307 | imgresample-test: imgresample.c | |
6acce86b | 308 | $(CC) $(CFLAGS) -DTEST -o $@ $^ -lm |
de6d9b64 | 309 | |
9ebc63a9 | 310 | dct-test: dct-test.o fdctref.o $(LIB) |
434df899 | 311 | $(CC) -o $@ $^ -lm $(LIBAVUTIL) |
d771bcae | 312 | |
4300403e | 313 | motion-test: motion_test.o $(LIB) |
6acce86b | 314 | $(CC) -o $@ $^ -lm |
4300403e | 315 | |
923ceff8 | 316 | fft-test: fft-test.o $(LIB) |
c11c2bc2 | 317 | $(CC) -o $@ $^ $(LIBAVUTIL) -lm |