ffmpeg / libavcodec / Makefile @ 14cabd40
History | View | Annotate | Download (6.48 KB)
1 |
# |
---|---|
2 |
# libavcodec Makefile |
3 |
# (c) 2000-2003 Fabrice Bellard |
4 |
# |
5 |
include ../config.mak |
6 |
|
7 |
VPATH=$(SRC_PATH)/libavcodec |
8 |
|
9 |
# NOTE: -I.. is needed to include config.h |
10 |
CFLAGS=$(OPTFLAGS) -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE |
11 |
|
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 rpza.o cinepak.o msrle.o \ |
21 |
msvideo1.o vqavideo.o idcinvideo.o adx.o rational.o faandct.o |
22 |
|
23 |
ifeq ($(AMR_NB),yes) |
24 |
ifeq ($(AMR_NB_FIXED),yes) |
25 |
OBJS+= amr.o |
26 |
AMREXTRALIBS+= amr/*.o |
27 |
AMRLIBS=amrlibs |
28 |
CLEANAMR=cleanamr |
29 |
else |
30 |
OBJS+= amr.o amr_float/sp_dec.o amr_float/sp_enc.o amr_float/interf_dec.o amr_float/interf_enc.o |
31 |
CLEANAMR=cleanamrfloat |
32 |
endif |
33 |
endif |
34 |
|
35 |
ifeq ($(AMR_WB),yes) |
36 |
OBJS+= amr.o amrwb_float/dec_acelp.o amrwb_float/dec_dtx.o amrwb_float/dec_gain.o \ |
37 |
amrwb_float/dec_if.o amrwb_float/dec_lpc.o amrwb_float/dec_main.o \ |
38 |
amrwb_float/dec_rom.o amrwb_float/dec_util.o amrwb_float/enc_acelp.o \ |
39 |
amrwb_float/enc_dtx.o amrwb_float/enc_gain.o amrwb_float/enc_if.o \ |
40 |
amrwb_float/enc_lpc.o amrwb_float/enc_main.o amrwb_float/enc_rom.o \ |
41 |
amrwb_float/enc_util.o amrwb_float/if_rom.o |
42 |
endif |
43 |
CLEANAMRWB=cleanamrwbfloat |
44 |
ASM_OBJS= |
45 |
|
46 |
# codecs which are patented in some non free countries like the us |
47 |
ifeq ($(CONFIG_RISKY),yes) |
48 |
OBJS+= h263.o msmpeg4.o h263dec.o svq1.o rv10.o wmadec.o indeo3.o |
49 |
endif |
50 |
|
51 |
ifeq ($(HAVE_XVMC_ACCEL),yes) |
52 |
OBJS+= xvmcvideo.o |
53 |
endif |
54 |
|
55 |
# currently using liba52 for ac3 decoding |
56 |
ifeq ($(CONFIG_AC3),yes) |
57 |
OBJS+= a52dec.o |
58 |
|
59 |
# using builtin liba52 or runtime linked liba52.so.0 |
60 |
ifneq ($(CONFIG_A52BIN),yes) |
61 |
OBJS+= liba52/bit_allocate.o liba52/bitstream.o liba52/downmix.o \ |
62 |
liba52/imdct.o liba52/parse.o liba52/crc.o liba52/resample.o |
63 |
endif |
64 |
endif |
65 |
|
66 |
ifeq ($(CONFIG_FAAD),yes) |
67 |
OBJS+= faad.o |
68 |
ifeq ($(CONFIG_FAADBIN),yes) |
69 |
# no libs needed |
70 |
else |
71 |
EXTRALIBS += -lfaad |
72 |
endif |
73 |
endif |
74 |
|
75 |
ifeq ($(CONFIG_FAAC),yes) |
76 |
OBJS+= faac.o |
77 |
EXTRALIBS += -lfaac |
78 |
endif |
79 |
|
80 |
ifeq ($(CONFIG_PP),yes) |
81 |
ifeq ($(SHARED_PP),yes) |
82 |
EXTRALIBS += -lpostproc |
83 |
else |
84 |
# LIBS += libpostproc/libpostproc.a ... should be fixed |
85 |
OBJS += libpostproc/postprocess.o |
86 |
endif |
87 |
endif |
88 |
|
89 |
ifeq ($(CONFIG_MP3LAME),yes) |
90 |
OBJS += mp3lameaudio.o |
91 |
EXTRALIBS += -lmp3lame |
92 |
endif |
93 |
|
94 |
ifeq ($(CONFIG_VORBIS),yes) |
95 |
OBJS += oggvorbis.o |
96 |
EXTRALIBS += -lvorbis -lvorbisenc |
97 |
endif |
98 |
|
99 |
ifeq ($(TARGET_GPROF),yes) |
100 |
CFLAGS+=-p |
101 |
LDFLAGS+=-p |
102 |
endif |
103 |
|
104 |
# i386 mmx specific stuff |
105 |
ifeq ($(TARGET_MMX),yes) |
106 |
OBJS += i386/fdct_mmx.o i386/cputest.o \ |
107 |
i386/dsputil_mmx.o i386/mpegvideo_mmx.o \ |
108 |
i386/idct_mmx.o i386/motion_est_mmx.o \ |
109 |
i386/simple_idct_mmx.o i386/fft_sse.o |
110 |
ifdef TARGET_BUILTIN_VECTOR |
111 |
i386/fft_sse.o: CFLAGS+= -msse |
112 |
endif |
113 |
endif |
114 |
|
115 |
# armv4l specific stuff |
116 |
ifeq ($(TARGET_ARCH_ARMV4L),yes) |
117 |
ASM_OBJS += armv4l/jrevdct_arm.o armv4l/simple_idct_arm.o |
118 |
OBJS += armv4l/dsputil_arm.o armv4l/mpegvideo_arm.o |
119 |
endif |
120 |
|
121 |
# sun mediaLib specific stuff |
122 |
# currently only works when libavcodec is used in mplayer |
123 |
ifeq ($(HAVE_MLIB),yes) |
124 |
OBJS += mlib/dsputil_mlib.o |
125 |
CFLAGS += $(MLIB_INC) |
126 |
endif |
127 |
|
128 |
# alpha specific stuff |
129 |
ifeq ($(TARGET_ARCH_ALPHA),yes) |
130 |
OBJS += alpha/dsputil_alpha.o alpha/mpegvideo_alpha.o \ |
131 |
alpha/simple_idct_alpha.o alpha/motion_est_alpha.o |
132 |
ASM_OBJS += alpha/dsputil_alpha_asm.o alpha/motion_est_mvi_asm.o |
133 |
CFLAGS += -fforce-addr -freduce-all-givs |
134 |
endif |
135 |
|
136 |
ifeq ($(TARGET_ARCH_POWERPC),yes) |
137 |
OBJS += ppc/dsputil_ppc.o ppc/mpegvideo_ppc.o |
138 |
endif |
139 |
|
140 |
ifeq ($(TARGET_MMI),yes) |
141 |
OBJS += ps2/dsputil_mmi.o ps2/idct_mmi.o ps2/mpegvideo_mmi.o |
142 |
endif |
143 |
|
144 |
ifeq ($(TARGET_ALTIVEC),yes) |
145 |
OBJS += ppc/dsputil_altivec.o ppc/mpegvideo_altivec.o ppc/idct_altivec.o \ |
146 |
ppc/fft_altivec.o ppc/gmc_altivec.o ppc/fdct_altivec.o |
147 |
endif |
148 |
|
149 |
ifeq ($(TARGET_ARCH_SH4),yes) |
150 |
OBJS+= sh4/idct_sh4.o sh4/dsputil_sh4.o sh4/dsputil_align.o |
151 |
endif |
152 |
|
153 |
|
154 |
SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) |
155 |
OBJS := $(OBJS) $(ASM_OBJS) |
156 |
|
157 |
LIB= $(LIBPREF)avcodec$(LIBSUF) |
158 |
ifeq ($(BUILD_SHARED),yes) |
159 |
SLIB= $(SLIBPREF)avcodec$(SLIBSUF) |
160 |
endif |
161 |
TESTS= imgresample-test dct-test motion-test fft-test |
162 |
|
163 |
all: $(LIB) $(SLIB) |
164 |
|
165 |
amrlibs: |
166 |
$(MAKE) -C amr spclib fipoplib |
167 |
|
168 |
tests: apiexample cpuid_test $(TESTS) |
169 |
|
170 |
$(LIB): $(OBJS) $(AMRLIBS) |
171 |
rm -f $@ |
172 |
$(AR) rc $@ $(OBJS) $(AMREXTRALIBS) |
173 |
$(RANLIB) $@ |
174 |
|
175 |
$(SLIB): $(OBJS) |
176 |
ifeq ($(CONFIG_WIN32),yes) |
177 |
$(CC) $(SHFLAGS) -Wl,--output-def,$(@:.dll=.def) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS) |
178 |
-lib /machine:i386 /def:$(@:.dll=.def) |
179 |
else |
180 |
$(CC) $(SHFLAGS) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS) |
181 |
endif |
182 |
|
183 |
dsputil.o: dsputil.c dsputil.h |
184 |
|
185 |
libpostproc/libpostproc.a: |
186 |
$(MAKE) -C libpostproc |
187 |
|
188 |
%.o: %.c |
189 |
$(CC) $(CFLAGS) -c -o $@ $< |
190 |
|
191 |
%.o: %.S |
192 |
$(CC) $(CFLAGS) -c -o $@ $< |
193 |
|
194 |
depend: $(SRCS) |
195 |
$(CC) -MM $(CFLAGS) $^ 1>.depend |
196 |
|
197 |
dep: depend |
198 |
|
199 |
clean: $(CLEANAMR) |
200 |
rm -f *.o *.d *~ .depend $(LIB) $(SLIB) *.so i386/*.o i386/*~ \ |
201 |
armv4l/*.o armv4l/*~ \ |
202 |
mlib/*.o mlib/*~ \ |
203 |
alpha/*.o alpha/*~ \ |
204 |
ppc/*.o ppc/*~ \ |
205 |
ps2/*.o ps2/*~ \ |
206 |
sh4/*.o sh4/*~ \ |
207 |
liba52/*.o liba52/*~ \ |
208 |
apiexample $(TESTS) |
209 |
$(MAKE) -C libpostproc clean |
210 |
|
211 |
distclean: clean |
212 |
rm -f Makefile.bak .depend |
213 |
|
214 |
cleanamr: |
215 |
$(MAKE) -C amr clean |
216 |
|
217 |
cleanamrfloat: |
218 |
rm -f amr_float/*.o |
219 |
|
220 |
cleanamrwbfloat: |
221 |
$(MAKE) -C amrwb_float -f makefile.gcc clean |
222 |
|
223 |
# api example program |
224 |
apiexample: apiexample.c $(LIB) |
225 |
$(CC) $(CFLAGS) -o $@ $< $(LIB) $(EXTRALIBS) -lm |
226 |
|
227 |
# cpuid test |
228 |
cpuid_test: i386/cputest.c |
229 |
$(CC) $(CFLAGS) -D__TEST__ -o $@ $< |
230 |
|
231 |
# testing progs |
232 |
|
233 |
imgresample-test: imgresample.c |
234 |
$(CC) $(CFLAGS) -DTEST -o $@ $^ -lm |
235 |
|
236 |
dct-test: dct-test.o fdctref.o $(LIB) |
237 |
$(CC) -o $@ $^ -lm |
238 |
|
239 |
motion-test: motion_test.o $(LIB) |
240 |
$(CC) -o $@ $^ -lm |
241 |
|
242 |
fft-test: fft-test.o $(LIB) |
243 |
$(CC) -o $@ $^ -lm |
244 |
|
245 |
ifeq ($(BUILD_SHARED),yes) |
246 |
install: all install-headers |
247 |
ifeq ($(CONFIG_WIN32),yes) |
248 |
install -s -m 755 $(SLIB) "$(prefix)" |
249 |
else |
250 |
install -d $(prefix)/lib |
251 |
install -s -m 755 $(SLIB) $(prefix)/lib/libavcodec-$(VERSION).so |
252 |
ln -sf libavcodec-$(VERSION).so $(prefix)/lib/libavcodec.so |
253 |
ldconfig || true |
254 |
endif |
255 |
else |
256 |
install: |
257 |
endif |
258 |
|
259 |
installlib: all install-headers |
260 |
install -m 644 $(LIB) $(prefix)/lib |
261 |
|
262 |
install-headers: |
263 |
mkdir -p "$(prefix)/include/ffmpeg" |
264 |
install -m 644 $(SRC_PATH)/libavcodec/avcodec.h \ |
265 |
$(SRC_PATH)/libavcodec/common.h \ |
266 |
$(SRC_PATH)/libavcodec/rational.h \ |
267 |
"$(prefix)/include/ffmpeg" |
268 |
|
269 |
# |
270 |
# include dependency files if they exist |
271 |
# |
272 |
ifneq ($(wildcard .depend),) |
273 |
include .depend |
274 |
endif |