You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

318 lines
13KB

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