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