1 # ***************************************************************************
2 # src/Makefile : Dearchive and compile all files necessary
3 # ***************************************************************************
4 # Copyright (C) 2003, 2004 VideoLAN
5 # $Id: Makefile,v 1.14 2004/01/24 21:06:52 hartman Exp $
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 .dvdnav .dvbpsi .live .goom .caca
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 # It is easier to use bootstrapped versions...
265 mpeg2dec-$(MPEG2DEC_VERSION).tar.gz:
266 $(WGET) $(MPEG2DEC_SNAPSHOT)
267 mv mpeg2dec-snapshot.tar.gz $@
269 mpeg2dec: mpeg2dec-$(MPEG2DEC_VERSION).tar.gz
273 (cd $<; ./configure --prefix=$(PREFIX) --without-x --disable-dsl && make && make install)
277 CLEAN_PKG += mpeg2dec
278 DISTCLEAN_PKG += mpeg2dec-$(MPEG2_DEC_VERSION).tar.gz
280 # ***************************************************************************
282 # ***************************************************************************
284 libid3tag-$(LIBID3TAG_VERSION).tar.gz:
285 $(WGET) $(LIBID3TAG_URL)
287 libid3tag: libid3tag-$(LIBID3TAG_VERSION).tar.gz
291 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
295 CLEAN_FILE += .id3tag
296 CLEAN_PKG += libid3tag
297 DISTCLEAN_PKG += libid3tag-$(LIBID3TAG_VERSION).tar.gz
299 # ***************************************************************************
301 # ***************************************************************************
303 mad-$(LIBMAD_VERSION).tar.gz:
304 $(WGET) $(LIBMAD_URL)
306 mad: mad-$(LIBMAD_VERSION).tar.gz
310 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
316 DISTCLEAN_PKG += mad-$(LIBMAD_VERSION).tar.gz
318 # ***************************************************************************
320 # ***************************************************************************
323 # @echo "*** Please type \"anoncvs\" here : ***"
324 # cvs -d $(OGG_CVSROOT) login
325 # cvs -d $(OGG_CVSROOT) co ogg
326 # (cd $@; ./autogen.sh)
328 libogg-$(OGG_VERSION).tar.gz:
331 libogg: libogg-$(OGG_VERSION).tar.gz
335 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
341 DISTCLEAN_PKG += libogg-$(OGG_VERSION).tar.gz
343 # ***************************************************************************
345 # ***************************************************************************
348 # @echo "*** Please type \"anoncvs\" here : ***"
349 # cvs -d $(OGG_CVSROOT) login
350 # cvs -d $(OGG_CVSROOT) co vorbis
351 # (cd $@; ./autogen.sh)
352 # patch -p 0 < Patches/vorbis.patch
354 libvorbis-$(VORBIS_VERSION).tar.gz:
355 $(WGET) $(VORBIS_URL)
357 libvorbis: libvorbis-$(VORBIS_VERSION).tar.gz
360 .vorbis: libvorbis .ogg
361 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
365 .vorbisenc: .vorbis .ogg
369 CLEAN_FILE += .vorbis .vorbisenc
370 CLEAN_PKG += libvorbis
371 DISTCLEAN_PKG += libvorbis-$(VORBIS_VERSION).tar.gz
373 # ***************************************************************************
375 # ***************************************************************************
377 libtheora-$(THEORA_VERSION).tar.gz:
378 $(WGET) $(THEORA_URL)
380 libtheora: libtheora-$(THEORA_VERSION).tar.gz
382 patch -p 0 < Patches/theora.patch
385 (cd $<; CC="gcc $(CFLAGS)" ./configure --prefix=$(PREFIX) && make && make install)
388 CLEAN_FILE += .theora
389 CLEAN_PKG += libtheora
390 DISTCLEAN_PKG += libtheora-$(THEORA_VERSION).tar.gz
392 # ***************************************************************************
394 # ***************************************************************************
396 flac-$(FLAC_VERSION).tar.gz:
399 flac: flac-$(FLAC_VERSION).tar.gz
403 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
409 DISTCLEAN_PKG += flac-$(FLAC_VERSION).tar.gz
411 # ***************************************************************************
413 # ***************************************************************************
415 speex-$(SPEEX_VERSION).tar.gz:
418 speex: speex-$(SPEEX_VERSION).tar.gz
422 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
428 DISTCLEAN_PKG += speex-$(SPEEX_VERSION).tar.gz
430 # ***************************************************************************
432 # ***************************************************************************
435 # @echo "*** Please type return here : ***"
436 # cvs -d $(FAAD2_CVSROOT) login
437 # cvs -d $(FAAD2_CVSROOT) co faad2
438 # (cd $@; patch -p 0 < ../Patches/faad2.patch)
439 # (cd $@; sh ./bootstrap)
441 faad2-$(FAAD2_VERSION).tar.gz:
444 faad2: faad2-$(FAAD2_VERSION).tar.gz
446 (cd $@; patch -p 0 < ../Patches/faad2.patch)
449 (cd $<; ./configure --prefix=$(PREFIX) && make -C libfaad && make -C libfaad install)
455 DISTCLEAN_PKG += faad2-$(FAAD2_VERSION).tar.gz
457 # ***************************************************************************
459 # ***************************************************************************
461 lame-$(LAME_VERSION).tar.gz:
464 lame: lame-$(LAME_VERSION).tar.gz
468 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
473 DISTCLEAN_PKG += lame-$(LAME_VERSION).tar.gz
475 # ***************************************************************************
477 # ***************************************************************************
479 libebml-$(LIBEBML_VERSION).tar.gz:
480 $(WGET) $(LIBEBML_URL)
482 libebml: libebml-$(LIBEBML_VERSION).tar.gz
487 (cd $<; make -C make/linux prefix=$(PREFIX) && make -C make/linux install prefix=$(PREFIX))
488 ranlib $(PREFIX)/lib/libebml.a
493 DISTCLEAN_PKG += libebml-$(LIBEBML_VERSION).tar.gz
495 # ***************************************************************************
497 # ***************************************************************************
499 libmatroska-$(LIBMATROSKA_VERSION).tar.gz:
500 $(WGET) $(LIBMATROSKA_URL)
502 libmatroska: libmatroska-$(LIBMATROSKA_VERSION).tar.gz
506 .matroska: libmatroska
507 (cd $<; make -C make/linux prefix=$(PREFIX) && make -C make/linux install prefix=$(PREFIX))
508 ranlib $(PREFIX)/lib/libmatroska.a
511 CLEAN_FILE += .matroska
512 CLEAN_PKG += libmatroska
513 DISTCLEAN_PKG += libmatroska-$(LIBMATROSKA_VERSION).tar.gz
515 # ***************************************************************************
517 # ***************************************************************************
520 # cvs -d $(FFMPEG_CVSROOT) login
521 # cvs -d $(FFMPEG_CVSROOT) co ffmpeg
522 # patch -p 0 < Patches/ffmpeg.patch.cvs
523 # (cd $@; ./bootstrap)
525 ffmpeg-$(FFMPEG_VERSION).tar.gz:
526 $(WGET) $(FFMPEG_URL)
528 ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz
530 patch -p 0 < Patches/ffmpeg.patch
533 (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)
536 CLEAN_FILE += .ffmpeg
538 DISTCLEAN_PKG += ffmpeg-$(FFMPEG_VERSION).tar.gz
540 # ***************************************************************************
542 # ***************************************************************************
544 openslp-$(OPENSLP_VERSION).tar.gz:
545 $(WGET) $(OPENSLP_URL)
547 openslp: openslp-$(OPENSLP_VERSION).tar.gz
549 patch -p 0 < Patches/openslp.patch
552 (cd $<; ./configure --prefix=$(PREFIX) && make SUBDIRS="common libslpattr slpd libslp slptool" && make install SUBDIRS="common libslpattr slpd libslp slptool")
555 CLEAN_FILE += .openslp
557 DISTCLEAN_PKG += openslp-$(OPENSLP_VERSION).tar.gz
559 # ***************************************************************************
561 # ***************************************************************************
563 libdvdcss-$(LIBDVDCSS_VERSION).tar.gz:
564 $(WGET) $(LIBDVDCSS_URL)
566 libdvdcss: libdvdcss-$(LIBDVDCSS_VERSION).tar.gz
570 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
574 CLEAN_FILE += .dvdcss
575 CLEAN_PKG += libdvdcss
576 DISTCLEAN_PKG += libdvdcss-$(LIBDVDCSS_VERSION).tar.gz
578 # ***************************************************************************
580 # ***************************************************************************
582 libdvdread-$(LIBDVDREAD_VERSION).tar.gz:
583 $(WGET) $(LIBDVDREAD_URL)
585 libdvdread: libdvdread-$(LIBDVDREAD_VERSION).tar.gz
588 .dvdread: libdvdread .dvdcss
589 (cd $<; ./configure --prefix=$(PREFIX) --with-libdvdcss=$(PREFIX) && make && make install)
593 CLEAN_FILE += .dvdread
594 CLEAN_PKG += libdvdread
595 DISTCLEAN_PKG += libdvdread-$(LIBDVDREAD_VERSION).tar.gz
597 # ***************************************************************************
599 # ***************************************************************************
601 libdvdplay-$(LIBDVDPLAY_VERSION).tar.gz:
602 $(WGET) $(LIBDVDPLAY_URL)
604 libdvdplay: libdvdplay-$(LIBDVDPLAY_VERSION).tar.gz
607 .dvdplay: libdvdplay .dvdread
608 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
612 CLEAN_FILE += .dvdplay
613 CLEAN_PKG += libdvdplay
614 DISTCLEAN_PKG += libdvdplay-$(LIBDVDPLAY_VERSION).tar.gz
616 # ***************************************************************************
618 # ***************************************************************************
620 libdvdnav-$(LIBDVDNAV_VERSION).tar.gz:
621 $(WGET) $(LIBDVDNAV_URL)
623 libdvdnav: libdvdnav-$(LIBDVDNAV_VERSION).tar.gz
626 .dvdnav: libdvdnav .dvdread
627 (cd $<; ./configure --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -Dlseek64=lseek -Doff64_t=off_t" && make && make install)
631 CLEAN_FILE += .dvdnav
632 CLEAN_PKG += libdvdnav
633 DISTCLEAN_PKG += libdvdnav-$(LIBDVDNAV_VERSION).tar.gz
635 # ***************************************************************************
637 # ***************************************************************************
639 libdvbpsi3-$(LIBDVBPSI_VERSION).tar.gz:
640 $(WGET) $(LIBDVBPSI_URL)
642 libdvbpsi: libdvbpsi3-$(LIBDVBPSI_VERSION).tar.gz
646 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
650 CLEAN_FILE += .dvbpsi
651 CLEAN_PKG += libdvbpsi
652 DISTCLEAN_PKG += libdvbpsi-$(LIBDVBPSI_VERSION).tar.gz
654 # ***************************************************************************
656 # ***************************************************************************
658 live.$(LIVEDOTCOM_VERSION).tar.gz:
659 $(WGET) $(LIVEDOTCOM_URL)
661 live: live.$(LIVEDOTCOM_VERSION).tar.gz
663 patch -p 0 < Patches/live.patch
666 (cd $<; ./genmakefiles macosx && make )
671 DISTCLEAN_PKG += live.$(LIVEDOTCOM_VERSION).tar.gz
673 # ***************************************************************************
675 # ***************************************************************************
678 $(WGET) $(GOOMDJ_URL)
689 DISTCLEAN_PKG += goom-dj.tar.gz
691 # ***************************************************************************
693 # ***************************************************************************
695 libcaca-$(LIBCACA_VERSION).tar.gz:
696 $(WGET) $(LIBCACA_URL)
698 libcaca: libcaca-$(LIBCACA_VERSION).tar.gz
702 (cd $<; ./configure --prefix=$(PREFIX) --disable-imlib2 --disable-doc && make && make install)
707 DISTCLEAN_PKG += libcaca-$(LIBCACA_VERSION).tar.gz
709 # ***************************************************************************
711 # ***************************************************************************
720 rm -rf $(DISTCLEAN_PKG)