Line 0
Link Here
|
|
|
1 |
# |
2 |
# Main ffmpeg Makefile |
3 |
# (c) 2000-2004 Fabrice Bellard |
4 |
# |
5 |
include config.mak |
6 |
|
7 |
VPATH=$(SRC_PATH) |
8 |
|
9 |
CFLAGS=$(OPTFLAGS) -I. -I$(SRC_PATH) -I$(SRC_PATH)/libavcodec -I$(SRC_PATH)/libavformat -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE |
10 |
LDFLAGS+= -g |
11 |
|
12 |
ifeq ($(TARGET_GPROF),yes) |
13 |
CFLAGS+=-p |
14 |
LDFLAGS+=-p |
15 |
endif |
16 |
|
17 |
MANPAGE=doc/ffmpeg.1 |
18 |
PROG=ffmpeg$(EXESUF) |
19 |
PROGTEST=output_example$(EXESUF) |
20 |
QTFASTSTART=qt-faststart$(EXESUF) |
21 |
|
22 |
ifeq ($(CONFIG_FFSERVER),yes) |
23 |
MANPAGE+=doc/ffserver.1 |
24 |
PROG+=ffserver$(EXESUF) |
25 |
endif |
26 |
|
27 |
ifeq ($(CONFIG_FFPLAY),yes) |
28 |
MANPAGE+=doc/ffplay.1 |
29 |
PROG+=ffplay$(EXESUF) |
30 |
FFPLAY_O=ffplay.o |
31 |
endif |
32 |
|
33 |
ifeq ($(CONFIG_AUDIO_BEOS),yes) |
34 |
EXTRALIBS+=-lmedia -lbe |
35 |
endif |
36 |
|
37 |
ifeq ($(BUILD_SHARED),yes) |
38 |
DEP_LIBS=libavcodec/$(SLIBPREF)avcodec$(SLIBSUF) libavformat/$(SLIBPREF)avformat$(SLIBSUF) |
39 |
else |
40 |
DEP_LIBS=libavcodec/$(LIBPREF)avcodec$(LIBSUF) libavformat/$(LIBPREF)avformat$(LIBSUF) |
41 |
ifeq ($(CONFIG_MP3LAME),yes) |
42 |
EXTRALIBS+=-lmp3lame |
43 |
endif |
44 |
endif |
45 |
|
46 |
ifeq ($(CONFIG_LIBOGG),yes) |
47 |
EXTRALIBS+= -logg |
48 |
ifeq ($(CONFIG_LIBVORBIS),yes) |
49 |
EXTRALIBS+= -lvorbis -lvorbisenc |
50 |
endif |
51 |
ifeq ($(CONFIG_LIBTHEORA),yes) |
52 |
EXTRALIBS+= -ltheora |
53 |
endif |
54 |
endif |
55 |
|
56 |
ifeq ($(CONFIG_FAAD),yes) |
57 |
ifeq ($(CONFIG_FAADBIN),yes) |
58 |
# no libs needed |
59 |
else |
60 |
EXTRALIBS += -lfaad |
61 |
endif |
62 |
endif |
63 |
|
64 |
ifeq ($(CONFIG_FAAC),yes) |
65 |
EXTRALIBS+=-lfaac |
66 |
endif |
67 |
|
68 |
ifeq ($(CONFIG_XVID),yes) |
69 |
EXTRALIBS+=-lxvidcore |
70 |
endif |
71 |
|
72 |
ifeq ($(CONFIG_DC1394),yes) |
73 |
EXTRALIBS+=-ldc1394_control -lraw1394 |
74 |
endif |
75 |
|
76 |
ifeq ($(BUILD_VHOOK),yes) |
77 |
VHOOK=videohook |
78 |
INSTALLVHOOK=install-vhook |
79 |
CLEANVHOOK=clean-vhook |
80 |
endif |
81 |
|
82 |
ifeq ($(TARGET_OS), SunOS) |
83 |
TEST=/usr/bin/test |
84 |
else |
85 |
TEST=test |
86 |
endif |
87 |
|
88 |
ifeq ($(BUILD_DOC),yes) |
89 |
DOC=documentation |
90 |
endif |
91 |
|
92 |
OBJS = ffmpeg.o ffserver.o cmdutils.o $(FFPLAY_O) |
93 |
SRCS = $(OBJS:.o=.c) $(ASM_OBJS:.o=.s) |
94 |
FFLIBS = -L./libavformat -lavformat -L./libavcodec -lavcodec |
95 |
|
96 |
all: lib $(PROG) $(PROGTEST) $(VHOOK) $(QTFASTSTART) $(DOC) |
97 |
|
98 |
lib: |
99 |
$(MAKE) -C libavcodec all |
100 |
$(MAKE) -C libavformat all |
101 |
|
102 |
ffmpeg_g$(EXESUF): ffmpeg.o cmdutils.o .libs |
103 |
$(CC) $(LDFLAGS) -o $@ ffmpeg.o cmdutils.o $(FFLIBS) $(EXTRALIBS) |
104 |
|
105 |
ffmpeg$(EXESUF): ffmpeg_g$(EXESUF) |
106 |
cp -p $< $@ |
107 |
$(STRIP) $@ |
108 |
|
109 |
ffserver$(EXESUF): ffserver.o .libs |
110 |
$(CC) $(LDFLAGS) $(FFSLDFLAGS) -o $@ ffserver.o $(FFLIBS) $(EXTRALIBS) |
111 |
|
112 |
ffplay_g$(EXESUF): ffplay.o cmdutils.o .libs |
113 |
$(CC) $(LDFLAGS) -o $@ ffplay.o cmdutils.o $(FFLIBS) $(EXTRALIBS) $(SDL_LIBS) |
114 |
|
115 |
ffplay$(EXESUF): ffplay_g$(EXESUF) |
116 |
cp -p $< $@ |
117 |
$(STRIP) $@ |
118 |
|
119 |
output_example$(EXESUF): output_example.o .libs |
120 |
$(CC) $(LDFLAGS) -o $@ output_example.o $(FFLIBS) $(EXTRALIBS) |
121 |
|
122 |
qt-faststart$(EXESUF): qt-faststart.c |
123 |
$(CC) $(SRC_PATH)/qt-faststart.c -o qt-faststart$(EXESUF) |
124 |
|
125 |
cws2fws$(EXESUF): cws2fws.c |
126 |
$(CC) $(SRC_PATH)/cws2fws.c -o cws2fws$(EXESUF) -lz |
127 |
|
128 |
ffplay.o: ffplay.c |
129 |
$(CC) $(CFLAGS) $(SDL_CFLAGS) -c -o $@ $< |
130 |
|
131 |
%.o: %.c |
132 |
$(CC) $(CFLAGS) -c -o $@ $< |
133 |
|
134 |
videohook: .libs |
135 |
$(MAKE) -C vhook all |
136 |
|
137 |
documentation: |
138 |
$(MAKE) -C doc all |
139 |
|
140 |
.PHONY: install |
141 |
|
142 |
install: all install-man $(INSTALLVHOOK) |
143 |
$(MAKE) -C libavcodec install |
144 |
$(MAKE) -C libavformat install |
145 |
install -d "$(bindir)" |
146 |
install -c $(INSTALLSTRIP) -m 755 $(PROG) "$(bindir)" |
147 |
|
148 |
# create the window installer |
149 |
wininstaller: all install |
150 |
makensis ffinstall.nsi |
151 |
|
152 |
# install man from source dir if available |
153 |
install-man: |
154 |
ifneq ($(CONFIG_WIN32),yes) |
155 |
if [ -f doc/ffmpeg.1 ] ; then \ |
156 |
install -d "$(mandir)/man1" ; \ |
157 |
install -m 644 $(MANPAGE) "$(mandir)/man1" ; \ |
158 |
fi |
159 |
endif |
160 |
|
161 |
install-vhook: |
162 |
$(MAKE) -C vhook install |
163 |
|
164 |
installlib: |
165 |
$(MAKE) -C libavcodec installlib |
166 |
$(MAKE) -C libavformat installlib |
167 |
|
168 |
dep: depend |
169 |
|
170 |
depend: .depend |
171 |
make -C libavcodec depend |
172 |
make -C libavformat depend |
173 |
ifeq ($(BUILD_VHOOK),yes) |
174 |
make -C vhook depend |
175 |
endif |
176 |
|
177 |
.depend: $(SRCS) |
178 |
$(CC) -MM $(CFLAGS) $(SDL_CFLAGS) $^ 1>.depend |
179 |
|
180 |
.libs: lib |
181 |
@test -f .libs || touch .libs |
182 |
@for i in $(DEP_LIBS) ; do if $(TEST) $$i -nt .libs ; then touch .libs; fi ; done |
183 |
|
184 |
clean: $(CLEANVHOOK) |
185 |
$(MAKE) -C libavcodec clean |
186 |
$(MAKE) -C libavformat clean |
187 |
$(MAKE) -C tests clean |
188 |
rm -f *.o *.d *~ .libs .depend gmon.out TAGS ffmpeg_g$(EXESUF) \ |
189 |
ffplay_g$(EXESUF) $(PROG) $(PROGTEST) $(QTFASTSTART) |
190 |
|
191 |
clean-vhook: |
192 |
$(MAKE) -C vhook clean |
193 |
|
194 |
# Note well: config.log is NOT removed. |
195 |
distclean: clean |
196 |
$(MAKE) -C libavcodec distclean |
197 |
rm -f config.mak config.h |
198 |
|
199 |
TAGS: |
200 |
etags *.[ch] libavformat/*.[ch] libavcodec/*.[ch] |
201 |
|
202 |
# regression tests |
203 |
|
204 |
libavtest test mpeg4 mpeg test-server fulltest: ffmpeg$(EXESUF) |
205 |
$(MAKE) -C tests $@ |
206 |
|
207 |
# tar release (use 'make -k tar' on a checkouted tree) |
208 |
FILE=ffmpeg-$(shell grep "\#define FFMPEG_VERSION " libavcodec/avcodec.h | \ |
209 |
cut -d "\"" -f 2 ) |
210 |
|
211 |
tar: |
212 |
rm -rf /tmp/$(FILE) |
213 |
cp -r . /tmp/$(FILE) |
214 |
( cd /tmp ; tar zcvf ~/$(FILE).tar.gz $(FILE) --exclude CVS ) |
215 |
rm -rf /tmp/$(FILE) |
216 |
|
217 |
.PHONY: lib |
218 |
|
219 |
ifneq ($(wildcard .depend),) |
220 |
include .depend |
221 |
endif |