3 # (c) 2000, 2001, 2002 Fabrice Bellard
7 VPATH
=$(SRC_PATH
)/libavcodec
9 # NOTE: -I.. is needed to include config.h
10 CFLAGS
= $(OPTFLAGS
) -Wall
-g
-DHAVE_AV_CONFIG_H
-I..
-D_FILE_OFFSET_BITS
=64 -D_LARGEFILE_SOURCE
-D_GNU_SOURCE
13 OBJS
= common.o utils.o mem.o allcodecs.o \
14 mpegvideo.o h263.o jrevdct.o jfdctfst.o jfdctint.o\
15 mpegaudio.o ac3enc.o mjpeg.o resample.o dsputil.o \
16 motion_est.o imgconvert.o imgresample.o msmpeg4.o \
17 mpeg12.o h263dec.o svq1.o rv10.o mpegaudiodec.o pcm.o simple_idct.o \
18 ratecontrol.o adpcm.o eval.o dv.o error_resilience.o \
19 wmadec.o fft.o mdct.o mace.o huffyuv.o
22 # currently using liba52 for ac3 decoding
23 ifeq ($(CONFIG_AC3
),yes
)
26 # using builtin liba52 or runtime linked liba52.so.0
27 ifneq ($(CONFIG_A52BIN
),yes
)
28 OBJS
+= liba52
/bit_allocate.o liba52
/bitstream.o liba52
/downmix.o \
29 liba52
/imdct.o liba52
/parse.o
33 ifeq ($(CONFIG_MP3LAME
),yes
)
34 OBJS
+= mp3lameaudio.o
35 EXTRALIBS
+= -lmp3lame
38 ifeq ($(CONFIG_VORBIS
),yes
)
40 EXTRALIBS
+= -lvorbis
-lvorbisenc
43 ifeq ($(TARGET_GPROF
),yes
)
48 # i386 mmx specific stuff
49 ifeq ($(TARGET_MMX
),yes
)
50 OBJS
+= i386
/fdct_mmx.o i386
/cputest.o \
51 i386
/dsputil_mmx.o i386
/mpegvideo_mmx.o \
52 i386
/idct_mmx.o i386
/motion_est_mmx.o \
53 i386
/simple_idct_mmx.o
56 # armv4l specific stuff
57 ifeq ($(TARGET_ARCH_ARMV4L
),yes
)
58 ASM_OBJS
+= armv4l
/jrevdct_arm.o
59 OBJS
+= armv4l
/dsputil_arm.o armv4l
/mpegvideo_arm.o
62 # sun mediaLib specific stuff
63 # currently only works when libavcodec is used in mplayer
64 ifeq ($(HAVE_MLIB
),yes
)
65 OBJS
+= mlib
/dsputil_mlib.o
69 # alpha specific stuff
70 ifeq ($(TARGET_ARCH_ALPHA
),yes
)
71 OBJS
+= alpha
/dsputil_alpha.o alpha
/mpegvideo_alpha.o \
72 alpha
/simple_idct_alpha.o alpha
/motion_est_alpha.o
73 ASM_OBJS
+= alpha
/dsputil_alpha_asm.o alpha
/motion_est_mvi_asm.o
74 CFLAGS
+= -fforce-addr
-freduce-all-givs
77 ifeq ($(TARGET_ARCH_POWERPC
),yes
)
78 OBJS
+= ppc
/dsputil_ppc.o ppc
/mpegvideo_ppc.o
81 ifeq ($(TARGET_MMI
),yes
)
82 OBJS
+= ps2
/dsputil_mmi.o ps2
/idct_mmi.o ps2
/mpegvideo_mmi.o
85 ifeq ($(TARGET_ALTIVEC
),yes
)
87 OBJS
+= ppc
/dsputil_altivec.o ppc
/mpegvideo_altivec.o ppc
/idct_altivec.o
90 SRCS
:= $(OBJS
:.o
=.c
) $(ASM_OBJS
:.o
=.S
)
91 OBJS
:= $(OBJS
) $(ASM_OBJS
)
94 ifeq ($(BUILD_SHARED
),yes
)
97 TESTS
= imgresample-test dct-test motion-test fft-test
101 tests
: apiexample cpuid_test
$(TESTS
)
109 $(CC
) $(SHFLAGS
) -o
$@
$(OBJS
) $(EXTRALIBS
)
111 dsputil.o
: dsputil.c dsputil.h
115 $(CC
) $(CFLAGS
) -msse
-c
-o
$@
$<
117 # specific 3dnow code
118 %_3dnow.o
: %_3dnow.c
119 $(CC
) $(CFLAGS
) -m3dnow
-c
-o
$@
$<
122 $(CC
) $(CFLAGS
) -c
-o
$@
$<
125 $(CC
) $(CFLAGS
) -c
-o
$@
$<
127 # motion_est_alpha uses the MVI extension, which is not available with
128 # -mcpu=ev4 (default) or ev5/ev56. Thus, force -mcpu=pca56 in those
130 ifeq ($(TARGET_ARCH_ALPHA
),yes
)
131 alpha
/motion_est_alpha.o
: alpha
/motion_est_alpha.c
132 cpu
=`echo "$(CFLAGS)" | sed -n 's,.*-mcpu=\([a-zA-Z0-9]*\).*,\1,p'`; \
133 case x
"$$cpu" in x|xev
[45]*) newcpu
=pca56
;; *) newcpu
=$$cpu;; esac
; \
134 echo
$(CC
) $(CFLAGS
) -mcpu
=$$newcpu -c
-o
$@
$<;\
135 $(CC
) $(CFLAGS
) -mcpu
=$$newcpu -c
-o
$@
$<
138 # depend only used by mplayer now
142 $(CC
) -MM
$(CFLAGS
) $(SRCS
) 1>.depend
145 rm -f
*.o
*~ .depend
$(LIB
) $(SLIB
) *.so i386
/*.o i386
/*~ \
146 armv4l
/*.o armv4l
/*~ \
151 liba52
/*.o liba52
/*~ \
155 rm -f Makefile.bak .depend
157 # api example program
158 apiexample
: apiexample.c
$(LIB
)
159 $(CC
) $(CFLAGS
) -o
$@
$< $(LIB
) $(EXTRALIBS
) -lm
162 cpuid_test
: i386
/cputest.c
163 $(CC
) $(CFLAGS
) -D__TEST__
-o
$@
$<
167 imgresample-test
: imgresample.c
168 $(CC
) $(CFLAGS
) -DTEST
-o
$@
$^
-lm
170 dct-test
: dct-test.o jfdctfst.o jfdctint.o i386
/fdct_mmx.o\
171 fdctref.o jrevdct.o i386
/idct_mmx.o simple_idct.o i386
/simple_idct_mmx.o
174 motion-test
: motion_test.o
$(LIB
)
177 fft-test
: fft-test.o fft.o mdct.o
181 ifeq ($(BUILD_SHARED
),yes
)
182 install -d
$(prefix)/lib
183 install -s
-m
755 $(SLIB
) $(prefix)/lib
/libavcodec-
$(VERSION
).so
184 ln
-sf libavcodec-
$(VERSION
).so
$(prefix)/lib
/libavcodec.so
186 mkdir
-p
$(prefix)/include/ffmpeg
187 install -m
644 $(VPATH
)/avcodec.h
$(prefix)/include/ffmpeg
/avcodec.h
188 install -m
644 $(VPATH
)/common.h
$(prefix)/include/ffmpeg
/common.h
192 install -m
644 $(LIB
) $(prefix)/lib
193 mkdir
-p
$(prefix)/include/ffmpeg
194 install -m
644 $(SRC_PATH
)/libavcodec
/avcodec.h
$(SRC_PATH
)/libavcodec
/common.h \
195 $(prefix)/include/ffmpeg
198 # include dependency files if they exist
200 ifneq ($(wildcard .depend
),)