Vorbis decoder by (Balatoni Denes | dbalatoni programozo hu)
[libav.git] / libavcodec / Makefile
CommitLineData
4cc281d9
FB
1#
2# libavcodec Makefile
6d6d7970 3# (c) 2000-2005 Fabrice Bellard
4cc281d9 4#
980fc7b8
FB
5include ../config.mak
6
4cc281d9
FB
7VPATH=$(SRC_PATH)/libavcodec
8
ff4ec49e 9# NOTE: -I.. is needed to include config.h
2a515c08 10CFLAGS=$(OPTFLAGS) -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE $(AMR_CFLAGS)
de6d9b64 11
caa336b4 12OBJS= bitstream.o utils.o mem.o allcodecs.o \
1d0d55da 13 mpegvideo.o jrevdct.o jfdctfst.o jfdctint.o\
7b1fa7db 14 mpegaudio.o ac3enc.o mjpeg.o resample.o resample2.o dsputil.o \
1d0d55da 15 motion_est.o imgconvert.o imgresample.o \
4f1bb8a9 16 mpeg12.o mpegaudiodec.o pcm.o simple_idct.o \
8b975b7c
MN
17 ratecontrol.o adpcm.o eval.o error_resilience.o \
18 fft.o mdct.o raw.o golomb.o cabac.o\
19 dpcm.o adx.o rational.o faandct.o parser.o g726.o \
20 vp3dsp.o integer.o h264idct.o rangecoder.o pnm.o h263.o msmpeg4.o h263dec.o
21
22ifeq ($(CONFIG_AASC_DECODER),yes)
23 OBJS+= aasc.o
24endif
25ifeq ($(CONFIG_ALAC_DECODER),yes)
26 OBJS+= alac.o
27endif
28ifneq ($(CONFIG_ASV1_DECODER)$(CONFIG_ASV1_ENCODER)$(CONFIG_ASV2_DECODER)$(CONFIG_ASV2_ENCODER),)
29 OBJS+= asv1.o
30endif
31ifeq ($(CONFIG_CINEPAK_DECODER),yes)
32 OBJS+= cinepak.o
33endif
34ifneq ($(CONFIG_CLJR_DECODER)$(CONFIG_CLJR_ENCODER),)
35 OBJS+= cljr.o
36endif
37ifeq ($(CONFIG_CYUV_DECODER),yes)
38 OBJS+= cyuv.o
39endif
40ifneq ($(CONFIG_DVVIDEO_DECODER)$(CONFIG_DVVIDEO_ENCODER),)
41 OBJS+= dv.o
42endif
43ifeq ($(CONFIG_EIGHTBPS_DECODER),yes)
44 OBJS+= 8bps.o
45endif
46ifneq ($(CONFIG_FFV1_DECODER)$(CONFIG_FFV1_ENCODER),)
47 OBJS+= ffv1.o
48endif
49ifeq ($(CONFIG_FLAC_DECODER),yes)
50 OBJS+= flac.o
51endif
52ifeq ($(CONFIG_FLIC_DECODER),yes)
53 OBJS+= flicvideo.o
54endif
55ifeq ($(CONFIG_FOURXM_DECODER),yes)
56 OBJS+= 4xm.o
57endif
58ifneq ($(CONFIG_H261_DECODER)$(CONFIG_H261_ENCODER),)
59 OBJS+= h261.o
60endif
61ifneq ($(CONFIG_H264_DECODER)$(CONFIG_SVQ3_DECODER),)
62 OBJS+= h264.o
63endif
64ifneq ($(CONFIG_HUFFYUV_DECODER)$(CONFIG_HUFFYUV_ENCODER)$(CONFIG_FFVHUFF_DECODER)$(CONFIG_FFVHUFF_ENCODER),)
65 OBJS+= huffyuv.o
66endif
67ifeq ($(CONFIG_IDCIN_DECODER),yes)
68 OBJS+= idcinvideo.o
69endif
70ifeq ($(CONFIG_INDEO2_DECODER),yes)
71 OBJS+= indeo2.o
72endif
73ifeq ($(CONFIG_INDEO3_DECODER),yes)
74 OBJS+= indeo3.o
75endif
76ifeq ($(CONFIG_INTERPLAY_VIDEO_DECODER),yes)
77 OBJS+= interplayvideo.o
78endif
79ifneq ($(CONFIG_MSZH_DECODER)$(CONFIG_ZLIB_DECODER)$(CONFIG_ZLIB_ENCODER),)
80 OBJS+= lcl.o
81endif
82ifeq ($(CONFIG_LOCO_DECODER),yes)
83 OBJS+= loco.o
84endif
85ifneq ($(CONFIG_MACE3_DECODER)$(CONFIG_MACE6_DECODER),)
86 OBJS+= mace.o
87endif
88ifeq ($(CONFIG_MSRLE_DECODER),yes)
89 OBJS+= msrle.o
90endif
91ifeq ($(CONFIG_MSVIDEO1_DECODER),yes)
92 OBJS+= msvideo1.o
93endif
94ifneq ($(CONFIG_PNG_DECODER)$(CONFIG_PNG_ENCODER),)
95 OBJS+= png.o
96endif
97ifeq ($(CONFIG_QDRAW_DECODER),yes)
98 OBJS+= qdrw.o
99endif
100ifeq ($(CONFIG_QPEG_DECODER),yes)
101 OBJS+= qpeg.o
102endif
103ifeq ($(CONFIG_QTRLE_DECODER),yes)
104 OBJS+= qtrle.o
105endif
106ifeq ($(CONFIG_RA_144_DECODER),yes)
107 OBJS+= ra144.o
108endif
109ifeq ($(CONFIG_RA_288_DECODER),yes)
110 OBJS+= ra288.o
111endif
112ifeq ($(CONFIG_ROQ_DECODER),yes)
113 OBJS+= roqvideo.o
114endif
115ifeq ($(CONFIG_RPZA_DECODER),yes)
116 OBJS+= rpza.o
117endif
118ifneq ($(CONFIG_RV10_DECODER)$(CONFIG_RV20_DECODER)$(CONFIG_RV10_ENCODER)$(CONFIG_RV20_ENCODER),)
119 OBJS+= rv10.o
120endif
121ifeq ($(CONFIG_SHORTEN_DECODER),yes)
122 OBJS+= shorten.o
123endif
124ifeq ($(CONFIG_SMC_DECODER),yes)
125 OBJS+= smc.o
126endif
0de1318a 127ifneq ($(CONFIG_SNOW_DECODER)$(CONFIG_SNOW_ENCODER),)
8b975b7c
MN
128 OBJS+= snow.o
129endif
130ifneq ($(CONFIG_SONIC_DECODER)$(CONFIG_SONIC_ENCODER)$(CONFIG_SONIC_LS_ENCODER),)
131 OBJS+= sonic.o
132endif
133ifneq ($(CONFIG_SVQ1_DECODER)$(CONFIG_SVQ1_ENCODER),)
134 OBJS+= svq1.o
135endif
136ifeq ($(CONFIG_TRUEMOTION1_DECODER),yes)
137 OBJS+= truemotion1.o
138endif
139ifeq ($(CONFIG_TSCC_DECODER),yes)
140 OBJS+= tscc.o
141endif
142ifeq ($(CONFIG_ULTI_DECODER),yes)
143 OBJS+= ulti.o
144endif
145ifneq ($(CONFIG_VC9_DECODER)$(CONFIG_WMV3_DECODER),)
146 OBJS+= vc9.o
147endif
148ifneq ($(CONFIG_VCR1_DECODER)$(CONFIG_VCR1_ENCODER),)
149 OBJS+= vcr1.o
150endif
151ifneq ($(CONFIG_VMDVIDEO_DECODER)$(CONFIG_VMDAUDIO_DECODER),)
152 OBJS+= vmdav.o
153endif
0bde73d9
MN
154ifeq ($(CONFIG_VORBIS_DECODER),yes)
155 OBJS+= vorbis.o
156endif
8b975b7c
MN
157ifneq ($(CONFIG_VP3_DECODER)$(CONFIG_THEORA_DECODER),)
158 OBJS+= vp3.o
159endif
160ifeq ($(CONFIG_VQA_DECODER),yes)
161 OBJS+= vqavideo.o
162endif
163ifneq ($(CONFIG_WMAV1_DECODER)$(CONFIG_WMAV2_DECODER),)
164 OBJS+= wmadec.o
165endif
166ifeq ($(CONFIG_WNV1_DECODER),yes)
167 OBJS+= wnv1.o
168endif
169ifeq ($(CONFIG_WS_SND1_DECODER),yes)
170 OBJS+= ws-snd1.o
171endif
172ifneq ($(CONFIG_XAN_WC3_DECODER)$(CONFIG_XAN_WC4_DECODER),)
173 OBJS+= xan.o
174endif
175ifeq ($(CONFIG_XL_DECODER),yes)
176 OBJS+= xl.o
177endif
178
179
4d4bb927 180AMROBJS=
891f64b3 181ifeq ($(AMR_NB),yes)
bc634f6f 182ifeq ($(AMR_NB_FIXED),yes)
4d4bb927 183AMROBJS= amr.o
bc634f6f
ZK
184AMREXTRALIBS+= amr/*.o
185AMRLIBS=amrlibs
186CLEANAMR=cleanamr
187else
4d4bb927
RT
188AMROBJS= amr.o
189OBJS+= amr_float/sp_dec.o amr_float/sp_enc.o amr_float/interf_dec.o amr_float/interf_enc.o
bc634f6f
ZK
190CLEANAMR=cleanamrfloat
191endif
891f64b3 192endif
193
9c3d33d6
MN
194ifeq ($(HAVE_PTHREADS),yes)
195OBJS+= pthread.o
196endif
197
16806499
MN
198ifeq ($(HAVE_W32THREADS),yes)
199OBJS+= w32thread.o
200endif
201
2450cff2
FR
202ifeq ($(HAVE_BEOSTHREADS),yes)
203OBJS+= beosthread.o
204endif
205
d663a1fd 206ifeq ($(AMR_WB),yes)
4d4bb927
RT
207AMROBJS= amr.o
208OBJS+= amrwb_float/dec_acelp.o amrwb_float/dec_dtx.o amrwb_float/dec_gain.o \
d663a1fd
MN
209 amrwb_float/dec_if.o amrwb_float/dec_lpc.o amrwb_float/dec_main.o \
210 amrwb_float/dec_rom.o amrwb_float/dec_util.o amrwb_float/enc_acelp.o \
211 amrwb_float/enc_dtx.o amrwb_float/enc_gain.o amrwb_float/enc_if.o \
212 amrwb_float/enc_lpc.o amrwb_float/enc_main.o amrwb_float/enc_rom.o \
213 amrwb_float/enc_util.o amrwb_float/if_rom.o
214endif
4d4bb927 215OBJS+= $(AMROBJS)
d663a1fd 216CLEANAMRWB=cleanamrwbfloat
980fc7b8 217ASM_OBJS=
de6d9b64 218
4f1bb8a9
IK
219ifeq ($(HAVE_XVMC_ACCEL),yes)
220OBJS+= xvmcvideo.o
221endif
222
57514323 223# currently using liba52 for ac3 decoding
d771bcae 224ifeq ($(CONFIG_AC3),yes)
57514323 225OBJS+= a52dec.o
57514323
ZK
226
227# using builtin liba52 or runtime linked liba52.so.0
ff4ec49e 228ifneq ($(CONFIG_A52BIN),yes)
57514323 229OBJS+= liba52/bit_allocate.o liba52/bitstream.o liba52/downmix.o \
521221cf 230 liba52/imdct.o liba52/parse.o liba52/crc.o liba52/resample.o
d771bcae 231endif
ff4ec49e 232endif
de6d9b64 233
23c99253
MN
234# currently using libdts for dts decoding
235ifeq ($(CONFIG_DTS),yes)
236OBJS+= dtsdec.o
c5c97a8d
MN
237CFLAGS += $(DTS_INC)
238EXTRALIBS += -ldts
23c99253
MN
239endif
240
280bd7b7
ZK
241ifeq ($(CONFIG_FAAD),yes)
242OBJS+= faad.o
445ad18d
ZK
243ifeq ($(CONFIG_FAADBIN),yes)
244# no libs needed
245else
246EXTRALIBS += -lfaad
247endif
280bd7b7
ZK
248endif
249
29d48296
MN
250ifeq ($(CONFIG_FAAC),yes)
251OBJS+= faac.o
252EXTRALIBS += -lfaac
253endif
254
1ddadfa9
AT
255ifeq ($(CONFIG_XVID),yes)
256OBJS+= xvidff.o
257EXTRALIBS += -lxvidcore
258endif
259
6662ec29
MN
260ifeq ($(CONFIG_X264),yes)
261OBJS+= x264.o
7c653cc9 262EXTRALIBS += -lx264
6662ec29
MN
263endif
264
bba9b16c
MN
265ifeq ($(CONFIG_PP),yes)
266ifeq ($(SHARED_PP),yes)
eb94aca9 267EXTRALIBS += -L$(VPATH)/libpostproc -lpostproc$(BUILDSUF)
bba9b16c
MN
268else
269# LIBS += libpostproc/libpostproc.a ... should be fixed
270OBJS += libpostproc/postprocess.o
271endif
272endif
273
5798368b
J
274ifeq ($(CONFIG_MP3LAME),yes)
275OBJS += mp3lameaudio.o
2a2a98c0 276EXTRALIBS += -lmp3lame
5798368b
J
277endif
278
5c5dea3f 279ifeq ($(CONFIG_LIBOGG),yes)
5c5dea3f 280ifeq ($(CONFIG_LIBVORBIS),yes)
81e0d0b4 281OBJS += oggvorbis.o
078a8dd6 282EXTRALIBS += -lvorbisenc -lvorbis
81e0d0b4 283endif
5c5dea3f
NB
284ifeq ($(CONFIG_LIBTHEORA), yes)
285OBJS += oggtheora.o
286EXTRALIBS += -ltheora
287endif
078a8dd6 288EXTRALIBS += -logg
5c5dea3f 289endif
81e0d0b4 290
43f1708f
J
291ifeq ($(TARGET_GPROF),yes)
292CFLAGS+=-p
293LDFLAGS+=-p
294endif
295
de6d9b64 296# i386 mmx specific stuff
980fc7b8 297ifeq ($(TARGET_MMX),yes)
4300403e 298OBJS += i386/fdct_mmx.o i386/cputest.o \
de1ee36a 299 i386/dsputil_mmx.o i386/mpegvideo_mmx.o \
57514323 300 i386/idct_mmx.o i386/motion_est_mmx.o \
38acbc3c
MM
301 i386/simple_idct_mmx.o i386/fft_sse.o i386/vp3dsp_mmx.o \
302 i386/vp3dsp_sse2.o
a968e365
FB
303ifdef TARGET_BUILTIN_VECTOR
304i386/fft_sse.o: CFLAGS+= -msse
148beec7 305depend: CFLAGS+= -msse
a968e365 306endif
de6d9b64
FB
307endif
308
3d03c0a2
FB
309# armv4l specific stuff
310ifeq ($(TARGET_ARCH_ARMV4L),yes)
bd7d1ea7 311ASM_OBJS += armv4l/jrevdct_arm.o armv4l/simple_idct_arm.o
676e200c 312OBJS += armv4l/dsputil_arm.o armv4l/mpegvideo_arm.o
3d03c0a2
FB
313endif
314
c34270f5
FB
315# sun mediaLib specific stuff
316# currently only works when libavcodec is used in mplayer
317ifeq ($(HAVE_MLIB),yes)
318OBJS += mlib/dsputil_mlib.o
319CFLAGS += $(MLIB_INC)
320endif
321
1e98dffb
NK
322# alpha specific stuff
323ifeq ($(TARGET_ARCH_ALPHA),yes)
8b313a47
FH
324OBJS += alpha/dsputil_alpha.o alpha/mpegvideo_alpha.o \
325 alpha/simple_idct_alpha.o alpha/motion_est_alpha.o
f9bb4bdf 326ASM_OBJS += alpha/dsputil_alpha_asm.o alpha/motion_est_mvi_asm.o
647b610c 327CFLAGS += -fforce-addr
1e98dffb
NK
328endif
329
59925ef2 330ifeq ($(TARGET_ARCH_POWERPC),yes)
05c4072b 331OBJS += ppc/dsputil_ppc.o ppc/mpegvideo_ppc.o
ab6c65f6
BF
332endif
333
d46aba26 334ifeq ($(TARGET_MMI),yes)
5917d17c 335OBJS += ps2/dsputil_mmi.o ps2/idct_mmi.o ps2/mpegvideo_mmi.o
d46aba26
LS
336endif
337
ab6c65f6 338ifeq ($(TARGET_ALTIVEC),yes)
8d268a7d 339OBJS += ppc/dsputil_altivec.o ppc/mpegvideo_altivec.o ppc/idct_altivec.o \
a6a12a8a
RD
340 ppc/fft_altivec.o ppc/gmc_altivec.o ppc/fdct_altivec.o \
341 ppc/dsputil_h264_altivec.o
59925ef2
BF
342endif
343
0c6bd2ea
B
344ifeq ($(TARGET_ARCH_SH4),yes)
345OBJS+= sh4/idct_sh4.o sh4/dsputil_sh4.o sh4/dsputil_align.o
346endif
347
bb476ff3 348ifeq ($(TARGET_ARCH_SPARC),yes)
44f54ceb 349OBJS+=sparc/dsputil_vis.o
bb476ff3
JM
350sparc/%.o: sparc/%.c
351 $(CC) -mcpu=ultrasparc -mtune=ultrasparc $(CFLAGS) -c -o $@ $<
352endif
353ifeq ($(TARGET_ARCH_SPARC64),yes)
44f54ceb
MN
354CFLAGS+= -mcpu=ultrasparc -mtune=ultrasparc
355endif
356
bb7d4939 357SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S)
ff4ec49e 358OBJS := $(OBJS) $(ASM_OBJS)
980fc7b8 359
f3ec2d46 360LIB= $(LIBPREF)avcodec$(LIBSUF)
0fd94442 361ifeq ($(BUILD_SHARED),yes)
f3ec2d46 362SLIB= $(SLIBPREF)avcodec$(SLIBSUF)
0fd94442 363endif
6d2abd6b 364TESTS= imgresample-test dct-test motion-test fft-test
de6d9b64 365
0fd94442 366all: $(LIB) $(SLIB)
ff4ec49e 367
bc634f6f
ZK
368amrlibs:
369 $(MAKE) -C amr spclib fipoplib
370
c10e9f70 371tests: apiexample cpuid_test $(TESTS)
de6d9b64 372
bc634f6f 373$(LIB): $(OBJS) $(AMRLIBS)
de6d9b64 374 rm -f $@
bc634f6f 375 $(AR) rc $@ $(OBJS) $(AMREXTRALIBS)
be7109c1 376 $(RANLIB) $@
ff4ec49e 377
811b32ed 378$(SLIB): $(OBJS)
91378af4 379ifeq ($(CONFIG_PP),yes)
8b8e1c55 380 $(MAKE) -C libpostproc
91378af4 381endif
cf7412b5
FB
382ifeq ($(CONFIG_WIN32),yes)
383 $(CC) $(SHFLAGS) -Wl,--output-def,$(@:.dll=.def) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS)
384 -lib /machine:i386 /def:$(@:.dll=.def)
385else
1b8b121f 386 $(CC) $(SHFLAGS) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS) $(LDFLAGS)
cf7412b5 387endif
de6d9b64
FB
388
389dsputil.o: dsputil.c dsputil.h
390
bba9b16c
MN
391libpostproc/libpostproc.a:
392 $(MAKE) -C libpostproc
393
de6d9b64
FB
394%.o: %.c
395 $(CC) $(CFLAGS) -c -o $@ $<
396
3d03c0a2
FB
397%.o: %.S
398 $(CC) $(CFLAGS) -c -o $@ $<
399
811b32ed 400depend: $(SRCS)
a968e365 401 $(CC) -MM $(CFLAGS) $^ 1>.depend
e51d4def 402
980fc7b8
FB
403dep: depend
404
bc634f6f 405clean: $(CLEANAMR)
77b71ddc 406 rm -f *.o *.d *~ .depend $(LIB) $(SLIB) *.so i386/*.o i386/*~ \
3d03c0a2 407 armv4l/*.o armv4l/*~ \
c34270f5 408 mlib/*.o mlib/*~ \
1e98dffb 409 alpha/*.o alpha/*~ \
59925ef2 410 ppc/*.o ppc/*~ \
d46aba26 411 ps2/*.o ps2/*~ \
0c6bd2ea 412 sh4/*.o sh4/*~ \
bb476ff3 413 sparc/*.o sparc/*~ \
57514323
ZK
414 liba52/*.o liba52/*~ \
415 apiexample $(TESTS)
64094f37 416 $(MAKE) -C libpostproc clean
de6d9b64 417
800d7ceb 418distclean: clean
980fc7b8
FB
419 rm -f Makefile.bak .depend
420
bc634f6f
ZK
421cleanamr:
422 $(MAKE) -C amr clean
423
424cleanamrfloat:
425 rm -f amr_float/*.o
426
d663a1fd
MN
427cleanamrwbfloat:
428 $(MAKE) -C amrwb_float -f makefile.gcc clean
429
de6d9b64
FB
430# api example program
431apiexample: apiexample.c $(LIB)
cfda33cb 432 $(CC) $(CFLAGS) -o $@ $< $(LIB) $(EXTRALIBS) -lm
de6d9b64 433
c10e9f70
NK
434# cpuid test
435cpuid_test: i386/cputest.c
436 $(CC) $(CFLAGS) -D__TEST__ -o $@ $<
437
de6d9b64
FB
438# testing progs
439
440imgresample-test: imgresample.c
6acce86b 441 $(CC) $(CFLAGS) -DTEST -o $@ $^ -lm
de6d9b64 442
9ebc63a9 443dct-test: dct-test.o fdctref.o $(LIB)
90cee0c3 444 $(CC) -o $@ $^ -lm
d771bcae 445
4300403e 446motion-test: motion_test.o $(LIB)
6acce86b 447 $(CC) -o $@ $^ -lm
4300403e 448
923ceff8 449fft-test: fft-test.o $(LIB)
6d2abd6b
FB
450 $(CC) -o $@ $^ -lm
451
0fd94442 452ifeq ($(BUILD_SHARED),yes)
cb728d79
FB
453install: all install-headers
454ifeq ($(CONFIG_WIN32),yes)
65d1bea2 455 install $(INSTALLSTRIP) -m 755 $(SLIB) "$(prefix)"
cb728d79 456else
cc973ecb
LB
457 install -d $(libdir)
458 install $(INSTALLSTRIP) -m 755 $(SLIB) $(libdir)/libavcodec-$(VERSION).so
459 ln -sf libavcodec-$(VERSION).so $(libdir)/libavcodec.so
c1325d18 460 ldconfig || true
cb728d79 461endif
91378af4 462ifeq ($(CONFIG_PP),yes)
8b8e1c55 463 $(MAKE) -C libpostproc $@
91378af4 464endif
cb728d79
FB
465else
466install:
0fd94442 467endif
773cefc6 468
cb728d79 469installlib: all install-headers
cc973ecb 470 install -m 644 $(LIB) "$(libdir)"
cb728d79
FB
471
472install-headers:
473 mkdir -p "$(prefix)/include/ffmpeg"
07bd15c3
FR
474 install -m 644 $(SRC_PATH)/libavcodec/avcodec.h \
475 $(SRC_PATH)/libavcodec/common.h \
476 $(SRC_PATH)/libavcodec/rational.h \
cb728d79 477 "$(prefix)/include/ffmpeg"
773cefc6 478
d771bcae
FB
479#
480# include dependency files if they exist
481#
482ifneq ($(wildcard .depend),)
483include .depend
484endif