1 # ***************************************************************************
2 # src/Makefile : Dearchive and compile all files necessary
3 # ***************************************************************************
4 # Copyright (C) 2003, 2004 VideoLAN
7 # Authors: Christophe Massiot <massiot@via.ecp.fr>
8 # Derk-Jan Hartman <hartman at videolan dot org>
10 # This program is free software; you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation; either version 2 of the License, or
13 # (at your option) any later version.
15 # This program is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 # GNU General Public License for more details.
20 # You should have received a copy of the GNU General Public License
21 # along with this program; if not, write to the Free Software
22 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
23 # ***************************************************************************
26 include ./packages.mak
28 # ***************************************************************************
29 # Set a clean environment
30 # ***************************************************************************
32 export PATH = $(PREFIX)/bin:/bin:/usr/bin
33 export DYLD_LIBRARY_PATH = $(PREFIX)/lib
34 export CPPFLAGS = -I$(PREFIX)/include $(EXTRA_CPPFLAGS)
35 export CFLAGS = -I$(PREFIX)/include $(EXTRA_CPPFLAGS)
36 export CXXFLAGS = -I$(PREFIX)/include $(EXTRA_CPPFLAGS)
37 export LDFLAGS = -L$(PREFIX)/lib
39 # ***************************************************************************
41 # ***************************************************************************
43 all: .autoconf .libtool .automake .iconv .intl .pkgcfg .freetype .fribidi \
44 .a52 .mpeg2 .id3tag .mad .ogg .vorbis .vorbisenc .theora \
45 .FLAC .speex .faad .faac .lame .ebml .matroska .ffmpeg .openslp \
46 .dvdcss .dvdread .dvdnav .dvbpsi .live .goom .caca .dts .mod \
47 .cddb .cdio .vcdimager
50 # ***************************************************************************
52 # ***************************************************************************
56 mv $(patsubst %.tar.gz,%,$(patsubst %.tgz,%,$(notdir $<))) $@ || true
61 bunzip2 -c $< | tar xf -
62 mv $(patsubst %.tar.bz2,%,$(notdir $<)) $@ || true
66 ### Darwin-specific ###
67 # These macros prepare the dynamic libraries for inclusion in the Mac OS X
68 # bundle. For instance if you're building a library named libtoto.dylib,
69 # which depends on the contrib library libtata.dylib, you should have the
71 # .toto: toto_directory .tata
72 # cd $< ; ./configure --prefix=$(PREFIX)
74 # $(MAKE) -C $< install
78 define INSTALL_NAME_LIB
80 -change $(PREFIX)/lib/$(shell cd $(PREFIX)/lib; ls | grep "lib$(INSTALL_LIB).[0-9]*.dylib") \
81 @executable_path/lib/vlc_lib$(INSTALL_LIB).dylib \
82 $(PREFIX)/vlc-lib/lib$(patsubst .%,%,$@).dylib ;
86 if which install_name_tool >/dev/null; then \
87 mkdir -p $(PREFIX)/vlc-lib ; \
88 cp $(PREFIX)/lib/lib$(patsubst .%,%,$@).dylib \
89 $(PREFIX)/vlc-lib/lib$(patsubst .%,%,$@).dylib ; \
91 -id @executable_path/lib/vlc_lib$(patsubst .%,%,$@).dylib \
92 $(PREFIX)/vlc-lib/lib$(patsubst .%,%,$@).dylib ; \
93 $(foreach INSTALL_LIB,$(patsubst .%,%,$(filter .%,$^)), \
94 $(INSTALL_NAME_LIB)) \
98 # ***************************************************************************
100 # ***************************************************************************
102 autoconf-$(AUTOCONF_VERSION).tar.gz:
103 $(WGET) $(AUTOCONF_URL)
105 autoconf: autoconf-$(AUTOCONF_VERSION).tar.gz
109 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
112 CLEAN_FILE += .autoconf
113 CLEAN_PKG += autoconf
114 DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.gz
116 # ***************************************************************************
118 # ***************************************************************************
120 # This breaks under Darwin
121 #libtool_$(LIBTOOL_VERSION).orig.tar.gz:
122 # $(WGET) $(LIBTOOL_URL)
124 #libtool: libtool_$(LIBTOOL_VERSION).orig.tar.gz
127 # mv libtool-$(LIBTOOL_VERSION) $@
130 # (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
135 if test -x /usr/bin/glibtoolize; then \
136 ln -sf /usr/bin/glibtoolize $(PREFIX)/bin/libtoolize ; \
140 CLEAN_FILE += .libtool
142 # ***************************************************************************
144 # ***************************************************************************
146 automake-$(AUTOMAKE_VERSION).tar.gz:
147 $(WGET) $(AUTOMAKE_URL)
149 automake: automake-$(AUTOMAKE_VERSION).tar.gz
153 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
156 CLEAN_FILE += .automake
157 CLEAN_PKG += automake
158 DISTCLEAN_PKG += automake-$(AUTOMAKE_VERSION).tar.gz
160 # ***************************************************************************
162 # ***************************************************************************
164 libiconv-$(LIBICONV_VERSION).tar.gz:
165 $(WGET) $(LIBICONV_URL)
167 libiconv: libiconv-$(LIBICONV_VERSION).tar.gz
171 (cd libiconv; ./configure --prefix=$(PREFIX) && make && make install)
176 CLEAN_PKG += libiconv
177 DISTCLEAN_PKG += libiconv-$(LIBICONV_VERSION).tar.gz
179 # ***************************************************************************
181 # ***************************************************************************
183 pkgconfig-$(PKGCFG_VERSION).tar.gz:
184 $(WGET) $(PKGCFG_URL)
186 pkgconfig: pkgconfig-$(PKGCFG_VERSION).tar.gz
190 (cd pkgconfig; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
193 CLEAN_FILE += .pkgcfg
194 CLEAN_PKG += pkgconfig
195 DISTCLEAN_PKG += pkgconfig-$(PKGCFG_VERSION).tar.gz
196 # ***************************************************************************
198 # ***************************************************************************
200 gettext-$(GETTEXT_VERSION).tar.gz:
201 $(WGET) $(GETTEXT_URL)
203 gettext: gettext-$(GETTEXT_VERSION).tar.gz
206 .intl: gettext .iconv
207 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
213 DISTCLEAN_PKG += gettext-$(GETTEXT_VERSION).tar.gz
215 # ***************************************************************************
217 # ***************************************************************************
219 freetype-$(FREETYPE2_VERSION).tar.gz:
220 $(WGET) $(FREETYPE2_URL)
222 freetype2: freetype-$(FREETYPE2_VERSION).tar.gz
226 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
230 CLEAN_FILE += .freetype
231 CLEAN_PKG += freetype2
232 DISTCLEAN_PKG += freetype-$(FREETYPE2_VERSION).tar.gz
234 # ***************************************************************************
236 # ***************************************************************************
238 fribidi-$(FRIBIDI_VERSION).tar.gz:
239 $(WGET) $(FRIBIDI_URL)
241 fribidi: fribidi-$(FRIBIDI_VERSION).tar.gz
243 patch -p 0 < Patches/fribidi.patch
246 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
250 CLEAN_FILE += .fribidi
252 DISTCLEAN_PKG += fribidi-$(FRIBIDI_VERSION).tar.gz
254 # ***************************************************************************
256 # ***************************************************************************
258 a52dec-$(A52DEC_VERSION).tar.gz:
259 $(WGET) $(A52DEC_URL)
261 a52dec: a52dec-$(A52DEC_VERSION).tar.gz
265 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
270 DISTCLEAN_PKG += a52dec-$(A52DEC_VERSION).tar.gz
272 # ***************************************************************************
274 # ***************************************************************************
277 # @echo "*** Please press return here : ***"
278 # cvs -d $(MPEG2DEC_CVSROOT) login
279 # cvs -d $(MPEG2DEC_CVSROOT) co mpeg2dec
280 # (cd $@; ./bootstrap)
282 #mpeg2dec-$(MPEG2DEC_VERSION).tar.gz:
283 # $(WGET) $(MPEG2DEC_URL)
285 # It is easier to use bootstrapped versions...
286 mpeg2dec-$(MPEG2DEC_VERSION).tar.gz:
287 $(WGET) $(MPEG2DEC_SNAPSHOT)
288 mv mpeg2dec-snapshot.tar.gz $@
290 mpeg2dec: mpeg2dec-$(MPEG2DEC_VERSION).tar.gz
294 (cd $<; ./configure --prefix=$(PREFIX) --without-x --disable-dsl && make && make install)
298 CLEAN_PKG += mpeg2dec
299 #DISTCLEAN_PKG += mpeg2dec-$(MPEG2DEC_VERSION)-cvs.tar.gz
300 DISTCLEAN_PKG += mpeg2dec-$(MPEG2_DEC_VERSION).tar.gz
302 # ***************************************************************************
304 # ***************************************************************************
306 libid3tag-$(LIBID3TAG_VERSION).tar.gz:
307 $(WGET) $(LIBID3TAG_URL)
309 libid3tag: libid3tag-$(LIBID3TAG_VERSION).tar.gz
313 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
317 CLEAN_FILE += .id3tag
318 CLEAN_PKG += libid3tag
319 DISTCLEAN_PKG += libid3tag-$(LIBID3TAG_VERSION).tar.gz
321 # ***************************************************************************
323 # ***************************************************************************
325 libmad-$(LIBMAD_VERSION).tar.gz:
326 $(WGET) $(LIBMAD_URL)
328 libmad: libmad-$(LIBMAD_VERSION).tar.gz
332 (cd $<; ./configure --prefix=$(PREFIX) CFLAGS="-O3" && make && make install)
338 DISTCLEAN_PKG += libmad-$(LIBMAD_VERSION).tar.gz
340 # ***************************************************************************
342 # ***************************************************************************
345 # @echo "*** Please type \"anoncvs\" here : ***"
346 # cvs -d $(OGG_CVSROOT) login
347 # cvs -d $(OGG_CVSROOT) co ogg
348 # (cd $@; ./autogen.sh)
350 libogg-$(OGG_VERSION).tar.gz:
353 libogg: libogg-$(OGG_VERSION).tar.gz
357 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
363 DISTCLEAN_PKG += libogg-$(OGG_VERSION).tar.gz
365 # ***************************************************************************
367 # ***************************************************************************
370 # @echo "*** Please type \"anoncvs\" here : ***"
371 # cvs -d $(OGG_CVSROOT) login
372 # cvs -d $(OGG_CVSROOT) co vorbis
373 # (cd $@; ./autogen.sh)
374 # patch -p 0 < Patches/vorbis.patch
376 libvorbis-$(VORBIS_VERSION).tar.gz:
377 $(WGET) $(VORBIS_URL)
379 libvorbis: libvorbis-$(VORBIS_VERSION).tar.gz
382 .vorbis: libvorbis .ogg
383 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
387 .vorbisenc: .vorbis .ogg
391 CLEAN_FILE += .vorbis .vorbisenc
392 CLEAN_PKG += libvorbis
393 DISTCLEAN_PKG += libvorbis-$(VORBIS_VERSION).tar.gz
395 # ***************************************************************************
397 # ***************************************************************************
399 libtheora-$(THEORA_VERSION).tar.bz2:
400 $(WGET) $(THEORA_URL)
402 libtheora: libtheora-$(THEORA_VERSION).tar.bz2
404 patch -p 0 < Patches/theora.patch
407 (cd $<; CC="gcc $(CFLAGS)" ./configure --prefix=$(PREFIX) && make && make install)
410 CLEAN_FILE += .theora
411 CLEAN_PKG += libtheora
412 DISTCLEAN_PKG += libtheora-$(THEORA_VERSION).tar.bz2
414 # ***************************************************************************
416 # ***************************************************************************
418 flac-$(FLAC_VERSION).tar.gz:
421 flac: flac-$(FLAC_VERSION).tar.gz
425 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
431 DISTCLEAN_PKG += flac-$(FLAC_VERSION).tar.gz
433 # ***************************************************************************
435 # ***************************************************************************
437 speex-$(SPEEX_VERSION).tar.gz:
440 speex: speex-$(SPEEX_VERSION).tar.gz
444 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
450 DISTCLEAN_PKG += speex-$(SPEEX_VERSION).tar.gz
452 # ***************************************************************************
454 # ***************************************************************************
457 # @echo "*** Please type return here : ***"
458 # cvs -d $(FAAD2_CVSROOT) login
459 # cvs -d $(FAAD2_CVSROOT) co faad2
460 # (cd $@; patch -p 0 < ../Patches/faad2.patch)
461 # (cd $@; sh ./bootstrap)
463 faad2-$(FAAD2_VERSION).tar.bz2:
466 faad2: faad2-$(FAAD2_VERSION).tar.bz2
470 (cd $<; ./configure --prefix=$(PREFIX) CFLAGS="-O3" && make -C libfaad && make -C libfaad install)
476 DISTCLEAN_PKG += faad2-$(FAAD2_VERSION).tar.gz
478 # ***************************************************************************
480 # ***************************************************************************
482 faac-$(FAAC_VERSION).tar.bz2:
485 faac: faac-$(FAAC_VERSION).tar.bz2
487 patch -p 0 < Patches/faac.patch
490 (cd $<; ./bootstrap && ./configure --prefix=$(PREFIX) --disable-shared && make && make install)
495 DISTCLEAN_PKG += faac-$(FAAC_VERSION).tar.bz2
497 # ***************************************************************************
499 # ***************************************************************************
501 lame-$(LAME_VERSION).tar.gz:
504 lame: lame-$(LAME_VERSION).tar.gz
508 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
513 DISTCLEAN_PKG += lame-$(LAME_VERSION).tar.gz
515 # ***************************************************************************
517 # ***************************************************************************
519 libebml-$(LIBEBML_VERSION).tar.gz:
520 $(WGET) $(LIBEBML_URL)
522 libebml: libebml-$(LIBEBML_VERSION).tar.gz
527 (cd $<; make -C make/linux prefix=$(PREFIX) && make -C make/linux install prefix=$(PREFIX))
528 ranlib $(PREFIX)/lib/libebml.a
533 DISTCLEAN_PKG += libebml-$(LIBEBML_VERSION).tar.gz
535 # ***************************************************************************
537 # ***************************************************************************
539 libmatroska-$(LIBMATROSKA_VERSION).tar.gz:
540 $(WGET) $(LIBMATROSKA_URL)
542 libmatroska: libmatroska-$(LIBMATROSKA_VERSION).tar.gz
546 .matroska: libmatroska
547 (cd $<; make -C make/linux prefix=$(PREFIX) && make -C make/linux install prefix=$(PREFIX))
548 ranlib $(PREFIX)/lib/libmatroska.a
551 CLEAN_FILE += .matroska
552 CLEAN_PKG += libmatroska
553 DISTCLEAN_PKG += libmatroska-$(LIBMATROSKA_VERSION).tar.gz
555 # ***************************************************************************
557 # ***************************************************************************
560 echo $(FFMPEG_CVSROOT) A > ./ffmpeg.cvs
561 CVS_PASSFILE=./ffmpeg.cvs cvs -d $(FFMPEG_CVSROOT) co ffmpeg
562 patch -p 0 < Patches/ffmpeg.patch.cvs
563 # (cd $@; ./bootstrap)
565 ffmpeg-$(FFMPEG_VERSION).tar.gz:
566 $(WGET) $(FFMPEG_URL)
568 #ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz
570 # patch -p 0 < Patches/ffmpeg.patch
573 (cd $<; ./configure --prefix=$(PREFIX) --extra-cflags="$(CFLAGS)" --extra-ldflags="$(LDFLAGS)" --enable-gpl --enable-mp3lame --enable-faac --enable-pp --disable-vhook --disable-vorbis --disable-faad --disable-a52 --enable-mp3lame --disable-zlib --enable-a52 && make && make -C libavcodec/libpostproc install && make -C libavcodec installlib && make -C libavformat installlib)
576 CLEAN_FILE += .ffmpeg
578 DISTCLEAN_PKG += ffmpeg-$(FFMPEG_VERSION).tar.gz
580 # ***************************************************************************
582 # ***************************************************************************
584 openslp-$(OPENSLP_VERSION).tar.gz:
585 $(WGET) $(OPENSLP_URL)
587 openslp: openslp-$(OPENSLP_VERSION).tar.gz
589 patch -p 0 < Patches/openslp.patch
592 (cd $<; ./configure --prefix=$(PREFIX) && make SUBDIRS="common libslpattr slpd libslp slptool" && make install SUBDIRS="common libslpattr slpd libslp slptool")
595 CLEAN_FILE += .openslp
597 DISTCLEAN_PKG += openslp-$(OPENSLP_VERSION).tar.gz
599 # ***************************************************************************
601 # ***************************************************************************
603 libdvdcss-$(LIBDVDCSS_VERSION).tar.gz:
604 $(WGET) $(LIBDVDCSS_URL)
606 libdvdcss: libdvdcss-$(LIBDVDCSS_VERSION).tar.gz
610 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
614 CLEAN_FILE += .dvdcss
615 CLEAN_PKG += libdvdcss
616 DISTCLEAN_PKG += libdvdcss-$(LIBDVDCSS_VERSION).tar.gz
618 # ***************************************************************************
620 # ***************************************************************************
622 libdvdread-$(LIBDVDREAD_VERSION).tar.gz:
623 $(WGET) $(LIBDVDREAD_URL)
625 libdvdread: libdvdread-$(LIBDVDREAD_VERSION).tar.gz
628 .dvdread: libdvdread .dvdcss
629 (cd $<; ./configure --prefix=$(PREFIX) --with-libdvdcss=$(PREFIX) && make && make install)
633 CLEAN_FILE += .dvdread
634 CLEAN_PKG += libdvdread
635 DISTCLEAN_PKG += libdvdread-$(LIBDVDREAD_VERSION).tar.gz
637 # ***************************************************************************
639 # ***************************************************************************
641 libdvdnav-$(LIBDVDNAV_VERSION).tar.gz:
642 $(WGET) $(LIBDVDNAV_URL)
644 libdvdnav: libdvdnav-$(LIBDVDNAV_VERSION).tar.gz
647 .dvdnav: libdvdnav .dvdread
648 (cd $<; ./configure --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -Dlseek64=lseek -Doff64_t=off_t" && make && make install)
652 CLEAN_FILE += .dvdnav
653 CLEAN_PKG += libdvdnav
654 DISTCLEAN_PKG += libdvdnav-$(LIBDVDNAV_VERSION).tar.gz
656 # ***************************************************************************
658 # ***************************************************************************
660 libdvbpsi3-$(LIBDVBPSI_VERSION).tar.gz:
661 $(WGET) $(LIBDVBPSI_URL)
663 libdvbpsi: libdvbpsi3-$(LIBDVBPSI_VERSION).tar.gz
667 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
671 CLEAN_FILE += .dvbpsi
672 CLEAN_PKG += libdvbpsi
673 DISTCLEAN_PKG += libdvbpsi-$(LIBDVBPSI_VERSION).tar.gz
675 # ***************************************************************************
677 # ***************************************************************************
679 live.$(LIVEDOTCOM_VERSION).tar.gz:
680 $(WGET) $(LIVEDOTCOM_URL)
682 live: live.$(LIVEDOTCOM_VERSION).tar.gz
684 patch -p 0 < Patches/live.patch
687 (cd $<; ./genmakefiles macosx && make )
692 DISTCLEAN_PKG += live.$(LIVEDOTCOM_VERSION).tar.gz
694 # ***************************************************************************
696 # ***************************************************************************
698 goom-macosx-altivec-bin.tar.gz:
701 goom: goom-macosx-altivec-bin.tar.gz
710 DISTCLEAN_PKG += goom-macosx-altivec-bin.tar.gz
712 # ***************************************************************************
714 # ***************************************************************************
716 libcaca-$(LIBCACA_VERSION).tar.gz:
717 $(WGET) $(LIBCACA_URL)
719 libcaca: libcaca-$(LIBCACA_VERSION).tar.gz
723 (cd $<; ./configure --prefix=$(PREFIX) --disable-imlib2 --disable-doc && make && make install)
728 DISTCLEAN_PKG += libcaca-$(LIBCACA_VERSION).tar.gz
730 # ***************************************************************************
732 # ***************************************************************************
734 libdts-$(LIBDTS_VERSION).tar.gz:
735 $(WGET) $(LIBDTS_URL)
737 libdts: libdts-$(LIBDTS_VERSION).tar.gz
741 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
746 DISTCLEAN_PKG += libdts-$(LIBDTS_VERSION).tar.gz
748 # ***************************************************************************
750 # ***************************************************************************
752 libmodplug-$(MODPLUG_VERSION).tar.gz:
753 $(WGET) $(MODPLUG_URL)
755 libmodplug: libmodplug-$(MODPLUG_VERSION).tar.gz
759 (cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
763 CLEAN_PKG += libmodplug
764 DISTCLEAN_PKG += libmodplug-$(MODPLUG_VERSION).tar.gz
766 # ***************************************************************************
768 # ***************************************************************************
770 libcddb-$(CDDB_VERSION).tar.gz:
773 libcddb: libcddb-$(CDDB_VERSION).tar.gz
775 patch -p 0 < Patches/libcddb.patch
778 (cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
783 DISTCLEAN_PKG += libcddb-$(CDDB_VERSION).tar.gz
785 # ***************************************************************************
787 # ***************************************************************************
789 vcdimager-$(VCDIMAGER_VERSION).tar.gz:
790 $(WGET) $(VCDIMAGER_URL)
792 vcdimager: vcdimager-$(VCDIMAGER_VERSION).tar.gz
794 patch -p 0 < Patches/vcdimager.patch
796 .vcdimager: vcdimager
797 (cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
800 CLEAN_FILE += .vcdimager
801 CLEAN_PKG += vcdimager
802 DISTCLEAN_PKG += vcdimager-$(VCDIMAGER_VERSION).tar.gz
804 # ***************************************************************************
806 # ***************************************************************************
808 libcdio-$(CDIO_VERSION).tar.gz:
811 libcdio: libcdio-$(CDIO_VERSION).tar.gz
815 (cd $<; ./configure --prefix=$(PREFIX) --without-libcddb --without-vcdinfo && make && make install)
820 DISTCLEAN_PKG += libcdio-$(CDIO_VERSION).tar.gz
822 # ***************************************************************************
824 # ***************************************************************************
826 mash-src-$(MASH_VERSION).tar.gz:
829 mash-code: mash-src-$(MASH_VERSION).tar.gz
833 (cd $<; ./configure && make )
837 CLEAN_PKG += mash-code
838 DISTCLEAN_PKG += mash-src-$(MASH_VERSION).tar.gz
840 # ***************************************************************************
842 # ***************************************************************************
851 rm -rf $(DISTCLEAN_PKG)