1 # ***************************************************************************
2 # src/Makefile : Dearchive and compile all files necessary
3 # ***************************************************************************
4 # Copyright (C) 2003 VideoLAN
5 # $Id: Makefile,v 1.6 2003/11/23 13:06:43 massiot Exp $
7 # Authors: Christophe Massiot <massiot@via.ecp.fr>
9 # This program is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 # GNU General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write to the Free Software
21 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
22 # ***************************************************************************
25 include ./packages.mak
27 # ***************************************************************************
28 # Set a clean environment
29 # ***************************************************************************
31 export PATH = $(PREFIX)/bin:/bin:/usr/bin
32 export DYLD_LIBRARY_PATH = $(PREFIX)/lib
33 export CPPFLAGS = -I$(PREFIX)/include $(EXTRA_CPPFLAGS)
34 export CFLAGS = -I$(PREFIX)/include $(EXTRA_CPPFLAGS)
35 export CXXFLAGS = -I$(PREFIX)/include $(EXTRA_CPPFLAGS)
36 export LDFLAGS = -L$(PREFIX)/lib
38 # ***************************************************************************
40 # ***************************************************************************
42 all: .autoconf .libtool .automake .iconv .intl .freetype .fribidi \
43 .a52 .mpeg2 .id3tag .mad .ogg .vorbis .vorbisenc .theora \
44 .FLAC .speex .faad .lame .ebml .matroska .ffmpeg .openslp \
45 .dvdcss .dvdread .dvdplay .dvbpsi
48 # ***************************************************************************
50 # ***************************************************************************
54 mv $(patsubst %.tar.gz,%,$(patsubst %.tgz,%,$(notdir $<))) $@ || true
59 bunzip2 -c $< | tar xf -
60 mv $(patsubst %.tar.bz2,%,$(notdir $<)) $@ || true
64 ### Darwin-specific ###
65 # These macros prepare the dynamic libraries for inclusion in the Mac OS X
66 # bundle. For instance if you're building a library named libtoto.dylib,
67 # which depends on the contrib library libtata.dylib, you should have the
69 # .toto: toto_directory .tata
70 # cd $< ; ./configure --prefix=$(PREFIX)
72 # $(MAKE) -C $< install
76 define INSTALL_NAME_LIB
78 -change $(PREFIX)/lib/$(shell cd $(PREFIX)/lib; ls | grep "lib$(INSTALL_LIB).[0-9]*.dylib") \
79 @executable_path/lib/vlc_lib$(INSTALL_LIB).dylib \
80 $(PREFIX)/vlc-lib/lib$(patsubst .%,%,$@).dylib ;
84 if which install_name_tool >/dev/null; then \
85 mkdir -p $(PREFIX)/vlc-lib ; \
86 cp $(PREFIX)/lib/lib$(patsubst .%,%,$@).dylib \
87 $(PREFIX)/vlc-lib/lib$(patsubst .%,%,$@).dylib ; \
89 -id @executable_path/lib/vlc_lib$(patsubst .%,%,$@).dylib \
90 $(PREFIX)/vlc-lib/lib$(patsubst .%,%,$@).dylib ; \
91 $(foreach INSTALL_LIB,$(patsubst .%,%,$(filter .%,$^)), \
92 $(INSTALL_NAME_LIB)) \
96 # ***************************************************************************
98 # ***************************************************************************
100 autoconf-$(AUTOCONF_VERSION).tar.gz:
101 $(WGET) $(AUTOCONF_URL)
103 autoconf: autoconf-$(AUTOCONF_VERSION).tar.gz
107 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
110 CLEAN_FILE += .autoconf
111 CLEAN_PKG += autoconf
112 DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.gz
114 # ***************************************************************************
116 # ***************************************************************************
118 # This breaks under Darwin
119 #libtool_$(LIBTOOL_VERSION).orig.tar.gz:
120 # $(WGET) $(LIBTOOL_URL)
122 #libtool: libtool_$(LIBTOOL_VERSION).orig.tar.gz
125 # mv libtool-$(LIBTOOL_VERSION) $@
128 # (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
133 if test -x /usr/bin/glibtoolize; then \
134 ln -sf /usr/bin/glibtoolize $(PREFIX)/bin/libtoolize ; \
138 CLEAN_FILE += .libtool
140 # ***************************************************************************
142 # ***************************************************************************
144 automake-$(AUTOMAKE_VERSION).tar.gz:
145 $(WGET) $(AUTOMAKE_URL)
147 automake: automake-$(AUTOMAKE_VERSION).tar.gz
151 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
154 CLEAN_FILE += .automake
155 CLEAN_PKG += automake
156 DISTCLEAN_PKG += automake-$(AUTOMAKE_VERSION).tar.gz
158 # ***************************************************************************
160 # ***************************************************************************
162 libiconv-$(LIBICONV_VERSION).tar.gz:
163 $(WGET) $(LIBICONV_URL)
165 libiconv: libiconv-$(LIBICONV_VERSION).tar.gz
169 (cd libiconv; ./configure --prefix=$(PREFIX) && make && make install)
174 CLEAN_PKG += libiconv
175 DISTCLEAN_PKG += libiconv-$(LIBICONV_VERSION).tar.gz
177 # ***************************************************************************
179 # ***************************************************************************
181 gettext-$(GETTEXT_VERSION).tar.gz:
182 $(WGET) $(GETTEXT_URL)
184 gettext: gettext-$(GETTEXT_VERSION).tar.gz
187 .intl: gettext .iconv
188 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
194 DISTCLEAN_PKG += gettext-$(GETTEXT_VERSION).tar.gz
196 # ***************************************************************************
198 # ***************************************************************************
200 freetype-$(FREETYPE2_VERSION).tar.gz:
201 $(WGET) $(FREETYPE2_URL)
203 freetype2: freetype-$(FREETYPE2_VERSION).tar.gz
207 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
211 CLEAN_FILE += .freetype
212 CLEAN_PKG += freetype2
213 DISTCLEAN_PKG += freetype-$(FREETYPE2_VERSION).tar.gz
215 # ***************************************************************************
217 # ***************************************************************************
219 fribidi-$(FRIBIDI_VERSION).tar.gz:
220 $(WGET) $(FRIBIDI_URL)
222 fribidi: fribidi-$(FRIBIDI_VERSION).tar.gz
224 patch -p 0 < Patches/fribidi.patch
227 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
231 CLEAN_FILE += .fribidi
233 DISTCLEAN_PKG += fribidi-$(FRIBIDI_VERSION).tar.gz
235 # ***************************************************************************
237 # ***************************************************************************
239 a52dec-$(A52DEC_VERSION).tar.gz:
240 $(WGET) $(A52DEC_URL)
242 a52dec: a52dec-$(A52DEC_VERSION).tar.gz
246 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
251 DISTCLEAN_PKG += a52dec-$(A52DEC_VERSION).tar.gz
253 # ***************************************************************************
255 # ***************************************************************************
258 # @echo "*** Please press return here : ***"
259 # cvs -d $(MPEG2DEC_CVSROOT) login
260 # cvs -d $(MPEG2DEC_CVSROOT) co mpeg2dec
261 # (cd $@; ./bootstrap)
263 # It is easier to use bootstrapped versions...
264 mpeg2dec-0.3.2-cvs.tar.gz:
265 $(WGET) $(MPEG2DEC_SNAPSHOT)
266 mv mpeg2dec-snapshot.tar.gz $@
268 mpeg2dec: mpeg2dec-0.3.2-cvs.tar.gz
272 (cd $<; ./configure --prefix=$(PREFIX) --without-x --disable-dsl && make && make install)
276 CLEAN_PKG += mpeg2dec
277 DISTCLEAN_PKG += mpeg2dec-0.3.2-cvs.tar.gz
279 # ***************************************************************************
281 # ***************************************************************************
283 libid3tag-$(LIBID3TAG_VERSION).tar.gz:
284 $(WGET) $(LIBID3TAG_URL)
286 libid3tag: libid3tag-$(LIBID3TAG_VERSION).tar.gz
290 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
294 CLEAN_FILE += .id3tag
295 CLEAN_PKG += libid3tag
296 DISTCLEAN_PKG += libid3tag-$(LIBID3TAG_VERSION).tar.gz
298 # ***************************************************************************
300 # ***************************************************************************
302 libmad-$(LIBMAD_VERSION).tar.gz:
303 $(WGET) $(LIBMAD_URL)
305 libmad: libmad-$(LIBMAD_VERSION).tar.gz
309 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
315 DISTCLEAN_PKG += libmad-$(LIBMAD_VERSION).tar.gz
317 # ***************************************************************************
319 # ***************************************************************************
322 # @echo "*** Please type \"anoncvs\" here : ***"
323 # cvs -d $(OGG_CVSROOT) login
324 # cvs -d $(OGG_CVSROOT) co ogg
325 # (cd $@; ./autogen.sh)
327 libogg-$(OGG_VERSION).tar.gz:
330 libogg: libogg-$(OGG_VERSION).tar.gz
334 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
340 DISTCLEAN_PKG += libogg-$(OGG_VERSION).tar.gz
342 # ***************************************************************************
344 # ***************************************************************************
347 # @echo "*** Please type \"anoncvs\" here : ***"
348 # cvs -d $(OGG_CVSROOT) login
349 # cvs -d $(OGG_CVSROOT) co vorbis
350 # (cd $@; ./autogen.sh)
351 # patch -p 0 < Patches/vorbis.patch
353 libvorbis-$(VORBIS_VERSION).tar.gz:
354 $(WGET) $(VORBIS_URL)
356 libvorbis: libvorbis-$(VORBIS_VERSION).tar.gz
359 .vorbis: libvorbis .ogg
360 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
364 .vorbisenc: .vorbis .ogg
368 CLEAN_FILE += .vorbis .vorbisenc
369 CLEAN_PKG += libvorbis
370 DISTCLEAN_PKG += libvorbis-$(VORBIS_VERSION).tar.gz
372 # ***************************************************************************
374 # ***************************************************************************
376 libtheora-$(THEORA_VERSION).tar.gz:
377 $(WGET) $(THEORA_URL)
379 libtheora: libtheora-$(THEORA_VERSION).tar.gz
381 patch -p 0 < Patches/theora.patch
384 (cd $<; CC="gcc $(CFLAGS)" ./configure --prefix=$(PREFIX) && make && make install)
387 CLEAN_FILE += .theora
388 CLEAN_PKG += libtheora
389 DISTCLEAN_PKG += libtheora-$(THEORA_VERSION).tar.gz
391 # ***************************************************************************
393 # ***************************************************************************
395 flac-$(FLAC_VERSION).tar.gz:
398 flac: flac-$(FLAC_VERSION).tar.gz
402 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
408 DISTCLEAN_PKG += flac-$(FLAC_VERSION).tar.gz
410 # ***************************************************************************
412 # ***************************************************************************
414 speex-$(SPEEX_VERSION).tar.gz:
417 speex: speex-$(SPEEX_VERSION).tar.gz
421 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
427 DISTCLEAN_PKG += speex-$(SPEEX_VERSION).tar.gz
429 # ***************************************************************************
431 # ***************************************************************************
434 # @echo "*** Please type return here : ***"
435 # cvs -d $(FAAD2_CVSROOT) login
436 # cvs -d $(FAAD2_CVSROOT) co faad2
437 # (cd $@; patch -p 0 < ../Patches/faad2.patch)
438 # (cd $@; sh ./bootstrap)
440 faad2-$(FAAD2_VERSION).tar.gz:
443 faad2: faad2-$(FAAD2_VERSION).tar.gz
445 (cd $@; patch -p 0 < ../Patches/faad2.patch)
448 (cd $<; ./configure --prefix=$(PREFIX) && make -C libfaad && make -C libfaad install)
454 DISTCLEAN_PKG += faad2-$(FAAD2_VERSION).tar.gz
456 # ***************************************************************************
458 # ***************************************************************************
460 lame-$(LAME_VERSION).tar.gz:
463 lame: lame-$(LAME_VERSION).tar.gz
467 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
472 DISTCLEAN_PKG += lame-$(LAME_VERSION).tar.gz
474 # ***************************************************************************
476 # ***************************************************************************
478 libebml-$(LIBEBML_VERSION).tar.gz:
479 $(WGET) $(LIBEBML_URL)
481 libebml: libebml-$(LIBEBML_VERSION).tar.gz
486 (cd $<; make -C make/linux prefix=$(PREFIX) && make -C make/linux install prefix=$(PREFIX))
487 ranlib $(PREFIX)/lib/libebml.a
492 DISTCLEAN_PKG += libebml-$(LIBEBML_VERSION).tar.gz
494 # ***************************************************************************
496 # ***************************************************************************
498 libmatroska-$(LIBMATROSKA_VERSION).tar.gz:
499 $(WGET) $(LIBMATROSKA_URL)
501 libmatroska: libmatroska-$(LIBMATROSKA_VERSION).tar.gz
505 .matroska: libmatroska
506 (cd $<; make -C make/linux prefix=$(PREFIX) && make -C make/linux install prefix=$(PREFIX))
507 ranlib $(PREFIX)/lib/libmatroska.a
510 CLEAN_FILE += .matroska
511 CLEAN_PKG += libmatroska
512 DISTCLEAN_PKG += libmatroska-$(LIBMATROSKA_VERSION).tar.gz
514 # ***************************************************************************
516 # ***************************************************************************
519 # cvs -d $(FFMPEG_CVSROOT) login
520 # cvs -d $(FFMPEG_CVSROOT) co ffmpeg
521 # patch -p 0 < Patches/ffmpeg.patch.cvs
522 # (cd $@; ./bootstrap)
524 ffmpeg-$(FFMPEG_VERSION).tar.gz:
525 $(WGET) $(FFMPEG_URL)
527 ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz
529 patch -p 0 < Patches/ffmpeg.patch
532 (cd $<; ./configure --prefix=$(PREFIX) --extra-cflags="$(CFLAGS)" --extra-ldflags="$(LDFLAGS)" --enable-mp3lame --enable-pp --disable-vhook --disable-vorbis --disable-faad --disable-a52 --enable-mp3lame && make && make -C libavcodec/libpostproc install && make -C libavcodec installlib && make -C libavformat installlib)
535 CLEAN_FILE += .ffmpeg
537 DISTCLEAN_PKG += ffmpeg-$(FFMPEG_VERSION).tar.gz
539 # ***************************************************************************
541 # ***************************************************************************
543 openslp-$(OPENSLP_VERSION).tar.gz:
544 $(WGET) $(OPENSLP_URL)
546 openslp: openslp-$(OPENSLP_VERSION).tar.gz
548 patch -p 0 < Patches/openslp.patch
551 (cd $<; ./configure --prefix=$(PREFIX) && make SUBDIRS="common libslpattr slpd libslp slptool" && make install SUBDIRS="common libslpattr slpd libslp slptool")
554 CLEAN_FILE += .openslp
556 DISTCLEAN_PKG += openslp-$(OPENSLP_VERSION).tar.gz
558 # ***************************************************************************
560 # ***************************************************************************
562 libdvdcss-$(LIBDVDCSS_VERSION).tar.gz:
563 $(WGET) $(LIBDVDCSS_URL)
565 libdvdcss: libdvdcss-$(LIBDVDCSS_VERSION).tar.gz
569 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
573 CLEAN_FILE += .dvdcss
574 CLEAN_PKG += libdvdcss
575 DISTCLEAN_PKG += libdvdcss-$(LIBDVDCSS_VERSION).tar.gz
577 # ***************************************************************************
579 # ***************************************************************************
581 libdvdread-$(LIBDVDREAD_VERSION).tar.gz:
582 $(WGET) $(LIBDVDREAD_URL)
584 libdvdread: libdvdread-$(LIBDVDREAD_VERSION).tar.gz
587 .dvdread: libdvdread .dvdcss
588 (cd $<; ./configure --prefix=$(PREFIX) --with-libdvdcss=$(PREFIX) && make && make install)
592 CLEAN_FILE += .dvdread
593 CLEAN_PKG += libdvdread
594 DISTCLEAN_PKG += libdvdread-$(LIBDVDREAD_VERSION).tar.gz
596 # ***************************************************************************
598 # ***************************************************************************
600 libdvdplay-$(LIBDVDPLAY_VERSION).tar.gz:
601 $(WGET) $(LIBDVDPLAY_URL)
603 libdvdplay: libdvdplay-$(LIBDVDPLAY_VERSION).tar.gz
606 .dvdplay: libdvdplay .dvdread
607 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
611 CLEAN_FILE += .dvdplay
612 CLEAN_PKG += libdvdplay
613 DISTCLEAN_PKG += libdvdplay-$(LIBDVDPLAY_VERSION).tar.gz
615 # ***************************************************************************
617 # ***************************************************************************
619 libdvbpsi-$(LIBDVBPSI_VERSION).tar.gz:
620 $(WGET) $(LIBDVBPSI_URL)
622 libdvbpsi: libdvbpsi-$(LIBDVBPSI_VERSION).tar.gz
626 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
630 CLEAN_FILE += .dvbpsi
631 CLEAN_PKG += libdvbpsi
632 DISTCLEAN_PKG += libdvbpsi-$(LIBDVBPSI_VERSION).tar.gz
634 # ***************************************************************************
636 # ***************************************************************************
645 rm -rf $(DISTCLEAN_PKG)