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 .freetype .fribidi \
44 .a52 .mpeg2 .id3tag .mad .ogg .vorbis .vorbisenc .theora \
45 .FLAC .speex .faad .lame .ebml .matroska .ffmpeg .openslp \
46 .dvdcss .dvdread .dvdplay .dvbpsi .live .goom .caca .dts .mod
49 # ***************************************************************************
51 # ***************************************************************************
55 mv $(patsubst %.tar.gz,%,$(patsubst %.tgz,%,$(notdir $<))) $@ || true
60 bunzip2 -c $< | tar xf -
61 mv $(patsubst %.tar.bz2,%,$(notdir $<)) $@ || true
65 ### Darwin-specific ###
66 # These macros prepare the dynamic libraries for inclusion in the Mac OS X
67 # bundle. For instance if you're building a library named libtoto.dylib,
68 # which depends on the contrib library libtata.dylib, you should have the
70 # .toto: toto_directory .tata
71 # cd $< ; ./configure --prefix=$(PREFIX)
73 # $(MAKE) -C $< install
77 define INSTALL_NAME_LIB
79 -change $(PREFIX)/lib/$(shell cd $(PREFIX)/lib; ls | grep "lib$(INSTALL_LIB).[0-9]*.dylib") \
80 @executable_path/lib/vlc_lib$(INSTALL_LIB).dylib \
81 $(PREFIX)/vlc-lib/lib$(patsubst .%,%,$@).dylib ;
85 if which install_name_tool >/dev/null; then \
86 mkdir -p $(PREFIX)/vlc-lib ; \
87 cp $(PREFIX)/lib/lib$(patsubst .%,%,$@).dylib \
88 $(PREFIX)/vlc-lib/lib$(patsubst .%,%,$@).dylib ; \
90 -id @executable_path/lib/vlc_lib$(patsubst .%,%,$@).dylib \
91 $(PREFIX)/vlc-lib/lib$(patsubst .%,%,$@).dylib ; \
92 $(foreach INSTALL_LIB,$(patsubst .%,%,$(filter .%,$^)), \
93 $(INSTALL_NAME_LIB)) \
97 # ***************************************************************************
99 # ***************************************************************************
101 autoconf-$(AUTOCONF_VERSION).tar.gz:
102 $(WGET) $(AUTOCONF_URL)
104 autoconf: autoconf-$(AUTOCONF_VERSION).tar.gz
108 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
111 CLEAN_FILE += .autoconf
112 CLEAN_PKG += autoconf
113 DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.gz
115 # ***************************************************************************
117 # ***************************************************************************
119 # This breaks under Darwin
120 #libtool_$(LIBTOOL_VERSION).orig.tar.gz:
121 # $(WGET) $(LIBTOOL_URL)
123 #libtool: libtool_$(LIBTOOL_VERSION).orig.tar.gz
126 # mv libtool-$(LIBTOOL_VERSION) $@
129 # (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
134 if test -x /usr/bin/glibtoolize; then \
135 ln -sf /usr/bin/glibtoolize $(PREFIX)/bin/libtoolize ; \
139 CLEAN_FILE += .libtool
141 # ***************************************************************************
143 # ***************************************************************************
145 automake-$(AUTOMAKE_VERSION).tar.gz:
146 $(WGET) $(AUTOMAKE_URL)
148 automake: automake-$(AUTOMAKE_VERSION).tar.gz
152 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
155 CLEAN_FILE += .automake
156 CLEAN_PKG += automake
157 DISTCLEAN_PKG += automake-$(AUTOMAKE_VERSION).tar.gz
159 # ***************************************************************************
161 # ***************************************************************************
163 libiconv-$(LIBICONV_VERSION).tar.gz:
164 $(WGET) $(LIBICONV_URL)
166 libiconv: libiconv-$(LIBICONV_VERSION).tar.gz
170 (cd libiconv; ./configure --prefix=$(PREFIX) && make && make install)
175 CLEAN_PKG += libiconv
176 DISTCLEAN_PKG += libiconv-$(LIBICONV_VERSION).tar.gz
178 # ***************************************************************************
180 # ***************************************************************************
182 gettext-$(GETTEXT_VERSION).tar.gz:
183 $(WGET) $(GETTEXT_URL)
185 gettext: gettext-$(GETTEXT_VERSION).tar.gz
188 .intl: gettext .iconv
189 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
195 DISTCLEAN_PKG += gettext-$(GETTEXT_VERSION).tar.gz
197 # ***************************************************************************
199 # ***************************************************************************
201 freetype-$(FREETYPE2_VERSION).tar.gz:
202 $(WGET) $(FREETYPE2_URL)
204 freetype2: freetype-$(FREETYPE2_VERSION).tar.gz
208 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
212 CLEAN_FILE += .freetype
213 CLEAN_PKG += freetype2
214 DISTCLEAN_PKG += freetype-$(FREETYPE2_VERSION).tar.gz
216 # ***************************************************************************
218 # ***************************************************************************
220 fribidi-$(FRIBIDI_VERSION).tar.gz:
221 $(WGET) $(FRIBIDI_URL)
223 fribidi: fribidi-$(FRIBIDI_VERSION).tar.gz
225 patch -p 0 < Patches/fribidi.patch
228 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
232 CLEAN_FILE += .fribidi
234 DISTCLEAN_PKG += fribidi-$(FRIBIDI_VERSION).tar.gz
236 # ***************************************************************************
238 # ***************************************************************************
240 a52dec-$(A52DEC_VERSION).tar.gz:
241 $(WGET) $(A52DEC_URL)
243 a52dec: a52dec-$(A52DEC_VERSION).tar.gz
247 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
252 DISTCLEAN_PKG += a52dec-$(A52DEC_VERSION).tar.gz
254 # ***************************************************************************
256 # ***************************************************************************
259 # @echo "*** Please press return here : ***"
260 # cvs -d $(MPEG2DEC_CVSROOT) login
261 # cvs -d $(MPEG2DEC_CVSROOT) co mpeg2dec
262 # (cd $@; ./bootstrap)
264 #mpeg2dec-$(MPEG2DEC_VERSION).tar.gz:
265 # $(WGET) $(MPEG2DEC_URL)
267 # It is easier to use bootstrapped versions...
268 mpeg2dec-$(MPEG2DEC_VERSION).tar.gz:
269 $(WGET) $(MPEG2DEC_SNAPSHOT)
270 mv mpeg2dec-snapshot.tar.gz $@
272 mpeg2dec: mpeg2dec-$(MPEG2DEC_VERSION).tar.gz
276 (cd $<; ./configure --prefix=$(PREFIX) --without-x --disable-dsl && make && make install)
280 CLEAN_PKG += mpeg2dec
281 #DISTCLEAN_PKG += mpeg2dec-$(MPEG2DEC_VERSION)-cvs.tar.gz
282 DISTCLEAN_PKG += mpeg2dec-$(MPEG2_DEC_VERSION).tar.gz
284 # ***************************************************************************
286 # ***************************************************************************
288 libid3tag-$(LIBID3TAG_VERSION).tar.gz:
289 $(WGET) $(LIBID3TAG_URL)
291 libid3tag: libid3tag-$(LIBID3TAG_VERSION).tar.gz
295 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
299 CLEAN_FILE += .id3tag
300 CLEAN_PKG += libid3tag
301 DISTCLEAN_PKG += libid3tag-$(LIBID3TAG_VERSION).tar.gz
303 # ***************************************************************************
305 # ***************************************************************************
307 libmad-$(LIBMAD_VERSION).tar.gz:
308 $(WGET) $(LIBMAD_URL)
310 libmad: libmad-$(LIBMAD_VERSION).tar.gz
314 (cd $<; ./configure --prefix=$(PREFIX) CFLAGS="-O3" && make && make install)
320 DISTCLEAN_PKG += libmad-$(LIBMAD_VERSION).tar.gz
322 # ***************************************************************************
324 # ***************************************************************************
327 # @echo "*** Please type \"anoncvs\" here : ***"
328 # cvs -d $(OGG_CVSROOT) login
329 # cvs -d $(OGG_CVSROOT) co ogg
330 # (cd $@; ./autogen.sh)
332 libogg-$(OGG_VERSION).tar.gz:
335 libogg: libogg-$(OGG_VERSION).tar.gz
339 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
345 DISTCLEAN_PKG += libogg-$(OGG_VERSION).tar.gz
347 # ***************************************************************************
349 # ***************************************************************************
352 # @echo "*** Please type \"anoncvs\" here : ***"
353 # cvs -d $(OGG_CVSROOT) login
354 # cvs -d $(OGG_CVSROOT) co vorbis
355 # (cd $@; ./autogen.sh)
356 # patch -p 0 < Patches/vorbis.patch
358 libvorbis-$(VORBIS_VERSION).tar.gz:
359 $(WGET) $(VORBIS_URL)
361 libvorbis: libvorbis-$(VORBIS_VERSION).tar.gz
364 .vorbis: libvorbis .ogg
365 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
369 .vorbisenc: .vorbis .ogg
373 CLEAN_FILE += .vorbis .vorbisenc
374 CLEAN_PKG += libvorbis
375 DISTCLEAN_PKG += libvorbis-$(VORBIS_VERSION).tar.gz
377 # ***************************************************************************
379 # ***************************************************************************
381 libtheora-$(THEORA_VERSION).tar.gz:
382 $(WGET) $(THEORA_URL)
384 libtheora: libtheora-$(THEORA_VERSION).tar.gz
386 patch -p 0 < Patches/theora.patch
389 (cd $<; CC="gcc $(CFLAGS)" ./configure --prefix=$(PREFIX) && make && make install)
392 CLEAN_FILE += .theora
393 CLEAN_PKG += libtheora
394 DISTCLEAN_PKG += libtheora-$(THEORA_VERSION).tar.gz
396 # ***************************************************************************
398 # ***************************************************************************
400 flac-$(FLAC_VERSION).tar.gz:
403 flac: flac-$(FLAC_VERSION).tar.gz
407 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
413 DISTCLEAN_PKG += flac-$(FLAC_VERSION).tar.gz
415 # ***************************************************************************
417 # ***************************************************************************
419 speex-$(SPEEX_VERSION).tar.gz:
422 speex: speex-$(SPEEX_VERSION).tar.gz
426 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
432 DISTCLEAN_PKG += speex-$(SPEEX_VERSION).tar.gz
434 # ***************************************************************************
436 # ***************************************************************************
439 # @echo "*** Please type return here : ***"
440 # cvs -d $(FAAD2_CVSROOT) login
441 # cvs -d $(FAAD2_CVSROOT) co faad2
442 # (cd $@; patch -p 0 < ../Patches/faad2.patch)
443 # (cd $@; sh ./bootstrap)
445 faad2-$(FAAD2_VERSION).tar.bz2:
448 faad2: faad2-$(FAAD2_VERSION).tar.bz2
450 patch -p 0 < Patches/faad2.patch
453 (cd $<; ./configure --prefix=$(PREFIX) && make -C libfaad && make -C libfaad install)
459 DISTCLEAN_PKG += faad2-$(FAAD2_VERSION).tar.gz
461 # ***************************************************************************
463 # ***************************************************************************
465 lame-$(LAME_VERSION).tar.gz:
468 lame: lame-$(LAME_VERSION).tar.gz
472 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
477 DISTCLEAN_PKG += lame-$(LAME_VERSION).tar.gz
479 # ***************************************************************************
481 # ***************************************************************************
483 libebml-$(LIBEBML_VERSION).tar.gz:
484 $(WGET) $(LIBEBML_URL)
486 libebml: libebml-$(LIBEBML_VERSION).tar.gz
491 (cd $<; make -C make/linux prefix=$(PREFIX) && make -C make/linux install prefix=$(PREFIX))
492 ranlib $(PREFIX)/lib/libebml.a
497 DISTCLEAN_PKG += libebml-$(LIBEBML_VERSION).tar.gz
499 # ***************************************************************************
501 # ***************************************************************************
503 libmatroska-$(LIBMATROSKA_VERSION).tar.gz:
504 $(WGET) $(LIBMATROSKA_URL)
506 libmatroska: libmatroska-$(LIBMATROSKA_VERSION).tar.gz
510 .matroska: libmatroska
511 (cd $<; make -C make/linux prefix=$(PREFIX) && make -C make/linux install prefix=$(PREFIX))
512 ranlib $(PREFIX)/lib/libmatroska.a
515 CLEAN_FILE += .matroska
516 CLEAN_PKG += libmatroska
517 DISTCLEAN_PKG += libmatroska-$(LIBMATROSKA_VERSION).tar.gz
519 # ***************************************************************************
521 # ***************************************************************************
524 cvs -d $(FFMPEG_CVSROOT) login
525 cvs -d $(FFMPEG_CVSROOT) co ffmpeg
526 patch -p 0 < Patches/ffmpeg.patch.cvs
527 # (cd $@; ./bootstrap)
529 ffmpeg-$(FFMPEG_VERSION).tar.gz:
530 $(WGET) $(FFMPEG_URL)
532 #ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz
534 # patch -p 0 < Patches/ffmpeg.patch
537 (cd $<; ./configure --prefix=$(PREFIX) --extra-cflags="$(CFLAGS)" --extra-ldflags="$(LDFLAGS)" --enable-gpl --enable-mp3lame --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)
540 CLEAN_FILE += .ffmpeg
542 DISTCLEAN_PKG += ffmpeg-$(FFMPEG_VERSION).tar.gz
544 # ***************************************************************************
546 # ***************************************************************************
548 openslp-$(OPENSLP_VERSION).tar.gz:
549 $(WGET) $(OPENSLP_URL)
551 openslp: openslp-$(OPENSLP_VERSION).tar.gz
553 patch -p 0 < Patches/openslp.patch
556 (cd $<; ./configure --prefix=$(PREFIX) && make SUBDIRS="common libslpattr slpd libslp slptool" && make install SUBDIRS="common libslpattr slpd libslp slptool")
559 CLEAN_FILE += .openslp
561 DISTCLEAN_PKG += openslp-$(OPENSLP_VERSION).tar.gz
563 # ***************************************************************************
565 # ***************************************************************************
567 libdvdcss-$(LIBDVDCSS_VERSION).tar.gz:
568 $(WGET) $(LIBDVDCSS_URL)
570 libdvdcss: libdvdcss-$(LIBDVDCSS_VERSION).tar.gz
574 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
578 CLEAN_FILE += .dvdcss
579 CLEAN_PKG += libdvdcss
580 DISTCLEAN_PKG += libdvdcss-$(LIBDVDCSS_VERSION).tar.gz
582 # ***************************************************************************
584 # ***************************************************************************
586 libdvdread-$(LIBDVDREAD_VERSION).tar.gz:
587 $(WGET) $(LIBDVDREAD_URL)
589 libdvdread: libdvdread-$(LIBDVDREAD_VERSION).tar.gz
592 .dvdread: libdvdread .dvdcss
593 (cd $<; ./configure --prefix=$(PREFIX) --with-libdvdcss=$(PREFIX) && make && make install)
597 CLEAN_FILE += .dvdread
598 CLEAN_PKG += libdvdread
599 DISTCLEAN_PKG += libdvdread-$(LIBDVDREAD_VERSION).tar.gz
601 # ***************************************************************************
603 # ***************************************************************************
605 libdvdplay-$(LIBDVDPLAY_VERSION).tar.gz:
606 $(WGET) $(LIBDVDPLAY_URL)
608 libdvdplay: libdvdplay-$(LIBDVDPLAY_VERSION).tar.gz
611 .dvdplay: libdvdplay .dvdread
612 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
616 CLEAN_FILE += .dvdplay
617 CLEAN_PKG += libdvdplay
618 DISTCLEAN_PKG += libdvdplay-$(LIBDVDPLAY_VERSION).tar.gz
620 # ***************************************************************************
622 # ***************************************************************************
624 libdvdnav-$(LIBDVDNAV_VERSION).tar.gz:
625 $(WGET) $(LIBDVDNAV_URL)
627 libdvdnav: libdvdnav-$(LIBDVDNAV_VERSION).tar.gz
630 .dvdnav: libdvdnav .dvdread
631 (cd $<; ./configure --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -Dlseek64=lseek -Doff64_t=off_t" && make && make install)
635 CLEAN_FILE += .dvdnav
636 CLEAN_PKG += libdvdnav
637 DISTCLEAN_PKG += libdvdnav-$(LIBDVDNAV_VERSION).tar.gz
639 # ***************************************************************************
641 # ***************************************************************************
643 libdvbpsi3-$(LIBDVBPSI_VERSION).tar.gz:
644 $(WGET) $(LIBDVBPSI_URL)
646 libdvbpsi: libdvbpsi3-$(LIBDVBPSI_VERSION).tar.gz
650 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
654 CLEAN_FILE += .dvbpsi
655 CLEAN_PKG += libdvbpsi
656 DISTCLEAN_PKG += libdvbpsi-$(LIBDVBPSI_VERSION).tar.gz
658 # ***************************************************************************
660 # ***************************************************************************
662 live.$(LIVEDOTCOM_VERSION).tar.gz:
663 $(WGET) $(LIVEDOTCOM_URL)
665 live: live.$(LIVEDOTCOM_VERSION).tar.gz
667 patch -p 0 < Patches/live.patch
670 (cd $<; ./genmakefiles macosx && make )
675 DISTCLEAN_PKG += live.$(LIVEDOTCOM_VERSION).tar.gz
677 # ***************************************************************************
679 # ***************************************************************************
682 $(WGET) $(GOOMDJ_URL)
693 DISTCLEAN_PKG += goom-dj.tar.gz
695 # ***************************************************************************
697 # ***************************************************************************
699 libcaca-$(LIBCACA_VERSION).tar.gz:
700 $(WGET) $(LIBCACA_URL)
702 libcaca: libcaca-$(LIBCACA_VERSION).tar.gz
706 (cd $<; ./configure --prefix=$(PREFIX) --disable-imlib2 --disable-doc && make && make install)
711 DISTCLEAN_PKG += libcaca-$(LIBCACA_VERSION).tar.gz
713 # ***************************************************************************
715 # ***************************************************************************
717 libdts-$(LIBDTS_VERSION).tar.gz:
718 $(WGET) $(LIBDTS_URL)
720 libdts: libdts-$(LIBDTS_VERSION).tar.gz
724 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
729 DISTCLEAN_PKG += libdts-$(LIBDTS_VERSION).tar.gz
731 # ***************************************************************************
733 # ***************************************************************************
735 libmodplug-$(MODPLUG_VERSION).tar.gz:
736 $(WGET) $(MODPLUG_URL)
738 libmodplug: libmodplug-$(MODPLUG_VERSION).tar.gz
742 (cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
746 CLEAN_PKG += libmodplug
747 DISTCLEAN_PKG += libmodplug-$(MODPLUG_VERSION).tar.gz
749 # ***************************************************************************
751 # ***************************************************************************
753 mash-src-$(MASH_VERSION).tar.gz:
756 mash-code: mash-src-$(MASH_VERSION).tar.gz
760 (cd $<; ./configure && make )
764 CLEAN_PKG += mash-code
765 DISTCLEAN_PKG += mash-src-$(MASH_VERSION).tar.gz
767 # ***************************************************************************
769 # ***************************************************************************
778 rm -rf $(DISTCLEAN_PKG)