ALL: Merge the win32-contrib branch.
[vlc.git] / extras / contrib / src / Makefile
1 # ***************************************************************************
2 # src/Makefile : Dearchive and compile all files necessary
3 # ***************************************************************************
4 # Copyright (C) 2003, 2004, 2005 the VideoLAN team
5 # $Id$
6 #
7 # Authors: Christophe Massiot <massiot@via.ecp.fr>
8 #          Derk-Jan Hartman <hartman at videolan dot org>
9 #          Eric Petit <titer@m0k.org>
10 #          Felix Kühne <fkuehne@users.sourceforge.net>
11 #
12 # This program is free software; you can redistribute it and/or modify
13 # it under the terms of the GNU General Public License as published by
14 # the Free Software Foundation; either version 2 of the License, or
15 # (at your option) any later version.
16 #
17 # This program is distributed in the hope that it will be useful,
18 # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 # GNU General Public License for more details.
21 #
22 # You should have received a copy of the GNU General Public License
23 # along with this program; if not, write to the Free Software
24 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
25 # ***************************************************************************
26
27 include ../config.mak
28 include ./packages.mak
29
30 # ***************************************************************************
31 # Set a clean environment
32 # ***************************************************************************
33
34 ifeq ($(HOST),ppc-darwin)
35 HAVE_DARWIN_OS=1
36 endif
37 ifeq ($(HOST),powerpc-apple-darwin8)
38 HAVE_DARWIN_OS=1
39 endif
40
41 ifdef HAVE_DARWIN_OS
42 export PATH = $(PREFIX)/bin:/bin:/usr/bin
43 export DYLD_LIBRARY_PATH = $(PREFIX)/lib
44 endif
45
46 ifeq ($(HOST),i586-pc-beos)
47 ifeq ($(HOST),$(BUILD))
48 # Compiling on BeOS
49 export PATH = $(PREFIX)/bin:.:/boot/home/config/bin:/bin:/boot/apps:/boot/preferences:/boot/beos/apps:/boot/beos/preferences:/boot/develop/tools/gnupro/bin
50 export LIBRARY_PATH = $(PREFIX)/lib:%A/lib:/boot/home/config/lib:/boot/beos/system/lib
51 else
52 # Cross compiling from Linux
53 export PATH = $(PREFIX)/bin:/opt/beos-tools/bin:/opt/cross-tools/bin:/usr/bin:/bin
54 endif
55 endif
56
57 ifeq ($(HOST),i586-mingw32msvc)
58 HAVE_WIN32=1
59 endif
60 ifeq ($(HOST),cygwin)
61 HAVE_WIN32=1
62 endif
63 ifdef HAVE_WIN32
64 export PATH := $(PREFIX)/bin:$(PATH)
65 #EXTRA_CPPFLAGS = /usr/win32/include
66 #EXTRA_LDFLAGS = /usr/win32/lib
67 endif
68
69 export CFLAGS = -I$(PREFIX)/include $(EXTRA_CFLAGS) $(EXTRA_CPPFLAGS)
70 export CPPFLAGS = -I$(PREFIX)/include $(EXTRA_CFLAGS) $(EXTRA_CPPFLAGS)
71 export CXXFLAGS = -I$(PREFIX)/include $(EXTRA_CFLAGS) $(EXTRA_CPPFLAGS)
72 export LDFLAGS = -L$(PREFIX)/lib $(EXTRA_LDFLAGS)
73
74 # ***************************************************************************
75 # Cross compilation variables
76 # We'll usually use --host=<platform>, except for a few libraries which
77 # don't handle it (gotta set CC/CXX/etc), and obviously FFmpeg has its own
78 # way of doing it... ;)
79 # ***************************************************************************
80
81 ifneq ($(BUILD),$(HOST))
82 # We are cross compiling
83 HOSTCONF=--host=$(HOST) --build=$(BUILD)  
84 HOSTCC=CC=$(HOST)-gcc CXX=$(HOST)-g++ AR=$(HOST)-ar RANLIB=$(HOST)-ranlib
85 # For libebml/libmatroska. Grrr.
86 HOSTCC2=CC=$(HOST)-gcc CXX=$(HOST)-g++ AR="$(HOST)-ar rcvu" RANLIB=$(HOST)-ranlib
87 FFMPEGCONF=--cross-prefix=$(HOST)-
88 X264CONF=--cross-prefix=$(HOST)
89 LIVECC=C_COMPILER=$(HOST)-gcc CPP=$(HOST)-cpp CPLUSPLUS_COMPILER=$(HOST)-g++ LINK="$(HOST)-g++ -o" LIBRARY_LINK="$(HOST)-ld -o"
90 RANLIB=$(HOST)-ranlib
91 else
92 # Building natively
93 RANLIB=ranlib
94 endif
95 ifeq ($(HOST),i586-pc-beos)
96 FFMPEGCONF+=--cpu=x86
97 endif
98
99 # Special target-dependant options
100 #win
101 ifdef HAVE_WIN32
102 HOSTCONF+= --without-pic --disable-shared --enable-msw --with-included-opencdk --with-included-libtasn1 --disable-depedency-tracking
103 FFMPEGCONF+= --enable-mingw32  --enable-memalign-hack --cpu=x86
104 endif
105
106 # ***************************************************************************
107 # Standard rules
108 # ***************************************************************************
109
110 ifdef HAVE_DARWIN_OS
111  all: .autoconf .automake .libtool .iconv .intl .pkgcfg .freetype .fribidi \
112         .a52 .mpeg2 .id3tag .mad .ogg .vorbis .vorbisenc .x264 .theora \
113         .FLAC .speex .shout .faad .faac .lame .twolame .ebml .matroska .ffmpeg .openslp \
114         .dvdcss .dvdread .dvdnav .dvbpsi .live .goom2k4 .caca .mod \
115         .png .gpg-error .gcrypt .gnutls .opendaap .cddb .cdio .vcdimager .SDL_image \
116         .glib .libidl .gecko .libmpcdec .aclocal
117 # .mozilla will build an entire mozilla. it can be used if we need to create a new .gecko package
118 else
119
120  ifeq ($(HOST),i586-pc-beos)
121   ifeq ($(HOST),$(BUILD))
122 # Native build: we need perl, autoconf, etc first
123    all: .perl .autoconf .automake .libtool .iconv .intl .freetype .fribidi \
124         .a52 .mpeg2 .id3tag .mad .ogg .vorbis .vorbisenc .theora \
125         .FLAC .speex .faad .faac .lame .ebml .matroska .ffmpeg .dvdcss \
126         .dvdread .dvdnav .dvbpsi .aclocal
127   else
128 # Cross compiling: we already have the Linux tools, only build the
129 # libraries now
130    all: .iconv .intl .freetype .fribidi \
131         .a52 .mpeg2 .id3tag .mad .ogg .vorbis .vorbisenc .theora \
132         .FLAC .speex .faad .faac .lame .twolame .ebml .matroska .ffmpeg .dvdcss \
133         .dvdread .dvdnav .dvbpsi .aclocal
134   endif
135  else
136   ifdef HAVE_WIN32
137
138    all: .iconv .intl .freetype .fribidi .zlib\
139         .a52 .mpeg2 .id3tag .mad .ogg .vorbis .vorbisenc .theora \
140         .FLAC .speex .faad .faac .lame .ebml .dts .matroska .ffmpeg .dvdcss \
141         .live .goom2k4 .caca .mod .x264  .xml .twolame\
142         .png .gpg-error .gcrypt .gnutls \
143         .gnutls .dvdread .dvdnav .dvbpsi .wxwidgets .dirac \
144         .dx_headers .dshow_headers .aclocal .gecko-win32
145 #       .SDL_image  .daap .cddb .cdio .vcdimager 
146    else
147 # Standard Linux or other UNIX-like systems
148    all: .iconv .intl .freetype .fribidi .zlib\
149         .a52 .mpeg2 .id3tag .mad .ogg .vorbis .vorbisenc .theora \
150         .FLAC .speex .faad .faac .lame .ebml .dts .matroska .ffmpeg .dvdcss \
151         .live .goom2k4 .caca .mod .x264  .xml .twolame\
152         .png .gpg-error .gcrypt .gnutls \
153         .gnutls .dvdread .dvdnav .dvbpsi .wxwidgets .dirac \
154         .aclocal 
155 #       .SDL_image  .daap .cddb .cdio .vcdimager 
156   endif
157   endif
158 endif
159
160 FORCE:
161
162 # ***************************************************************************
163 # Useful macros
164 # ***************************************************************************
165
166 define EXTRACT_GZ
167         tar xzf $<
168         mv $(patsubst %.tar.gz,%,$(patsubst %.tgz,%,$(notdir $<))) $@ || true
169         touch $@
170 endef
171
172 define EXTRACT_BZ2
173         bunzip2 -c $< | tar xf -
174         mv $(patsubst %.tar.bz2,%,$(notdir $<)) $@ || true
175         touch $@
176 endef
177
178 ### Darwin-specific ###
179 # These macros prepare the dynamic libraries for inclusion in the Mac OS X
180 # bundle. For instance if you're building a library named libtoto.dylib,
181 # which depends on the contrib library libtata.dylib, you should have the
182 # following entry :
183 # .toto: toto_directory .tata
184 #       cd $< ; ./configure --prefix=$(PREFIX)
185 #       $(MAKE) -C $<
186 #       $(MAKE) -C $< install
187 #       $(INSTALL_NAME)
188 #       touch $@
189
190 ifdef HAVE_DARWIN_OS
191 define INSTALL_NAME_LIB
192         install_name_tool \
193                 -change $(PREFIX)/lib/$(shell cd $(PREFIX)/lib; ls | grep "lib$(INSTALL_LIB).[0-9]*.dylib") \
194                 @executable_path/lib/vlc_lib$(INSTALL_LIB).dylib \
195                 $(PREFIX)/vlc-lib/lib$(patsubst .%,%,$@).dylib ;
196 endef
197
198 define INSTALL_NAME
199         if which install_name_tool >/dev/null; then \
200                 mkdir -p $(PREFIX)/vlc-lib ; \
201                 cp $(PREFIX)/lib/lib$(patsubst .%,%,$@).dylib \
202                         $(PREFIX)/vlc-lib/lib$(patsubst .%,%,$@).dylib ; \
203                 install_name_tool \
204                         -id @executable_path/lib/vlc_lib$(patsubst .%,%,$@).dylib \
205                         $(PREFIX)/vlc-lib/lib$(patsubst .%,%,$@).dylib ; \
206                 $(foreach INSTALL_LIB,$(patsubst .%,%,$(filter .%,$^)), \
207                         $(INSTALL_NAME_LIB)) \
208         fi
209 endef
210 endif
211
212 ifeq ($(HOST),i586-pc-beos)
213 # We test if the file actually exists, as sometimes (but not always)
214 # libtool won't accept to build the shared library
215 define INSTALL_NAME
216         if test -f $(PREFIX)/lib/lib$(patsubst .%,%,$@).so ; then \
217                 mkdir -p $(PREFIX)/vlc-lib ; \
218                 cp $(PREFIX)/lib/lib$(patsubst .%,%,$@).so \
219                   $(PREFIX)/vlc-lib/ ; \
220         fi
221 endef
222 endif
223
224 # ***************************************************************************
225 # perl
226 # ***************************************************************************
227
228 ifeq ($(BUILD),i586-pc-beos)
229 perl-$(PERL_VERSION).tar.gz:
230         $(WGET) $(PERL_URL)
231
232 perl: perl-$(PERL_VERSION).tar.gz
233         $(EXTRACT_GZ)
234         mv perl/hints/beos.sh perl/hints/beos.sh.orig
235         sed 's%prefix="/boot/home/config"%prefix="$(PREFIX)"%' < perl/hints/beos.sh.orig > perl/hints/beos.sh
236
237 .perl: perl
238         (cd $<; ./Configure -d -e && make && make install && ln -sf perl5/$(PERL_VERSION)/BePC-beos/CORE/libperl.so $(PREFIX)/lib/libperl.so)
239         touch $@
240
241 CLEAN_FILE += .perl
242 CLEAN_PKG += perl
243 DISTCLEAN_PKG += perl-$(PERL_VERSION).tar.gz
244 endif
245
246 # ***************************************************************************
247 # autoconf
248 # ***************************************************************************
249
250 autoconf-$(AUTOCONF_VERSION).tar.gz:
251         $(WGET) $(AUTOCONF_URL)
252
253 autoconf: autoconf-$(AUTOCONF_VERSION).tar.gz
254         $(EXTRACT_GZ)
255
256 .autoconf: autoconf
257         (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
258         touch $@
259
260 CLEAN_FILE += .autoconf
261 CLEAN_PKG += autoconf
262 DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.gz
263
264 # ***************************************************************************
265 # libtool
266 # ***************************************************************************
267
268 ifdef HAVE_DARWIN_OS
269 .libtool:
270         if test -x /usr/bin/glibtoolize; then \
271                 ln -sf /usr/bin/glibtoolize $(PREFIX)/bin/libtoolize ; \
272         fi
273         if test -f /usr/share/aclocal/libtool.m4; then \
274                 mkdir -p $(PREFIX)/share/aclocal ; \
275                 ln -sf /usr/share/aclocal/libtool.m4 $(PREFIX)/share/aclocal ; \
276         fi
277         touch $@
278 endif
279
280 ifeq ($(BUILD),i586-pc-beos)
281 libtool-$(LIBTOOL_VERSION).tar.gz:
282         $(WGET) $(LIBTOOL_URL)
283
284 libtool: libtool-$(LIBTOOL_VERSION).tar.gz
285         $(EXTRACT_GZ)
286
287 .libtool: libtool
288         (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
289         touch $@
290
291 CLEAN_PKG += libtool
292 DISTCLEAN_PKG += libtool-$(LIBTOOL_VERSION).tar.gz
293 endif
294
295 CLEAN_FILE += .libtool
296
297 # ***************************************************************************
298 # automake
299 # ***************************************************************************
300
301 automake-$(AUTOMAKE_VERSION).tar.gz:
302         $(WGET) $(AUTOMAKE_URL)
303
304 automake: automake-$(AUTOMAKE_VERSION).tar.gz
305         $(EXTRACT_GZ)
306
307 .automake: automake
308         (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
309         touch $@
310
311 CLEAN_FILE += .automake
312 CLEAN_PKG += automake
313 DISTCLEAN_PKG += automake-$(AUTOMAKE_VERSION).tar.gz
314
315 # ***************************************************************************
316 # pkgconfig
317 # ***************************************************************************
318
319 pkgconfig-$(PKGCFG_VERSION).tar.gz:
320         $(WGET) $(PKGCFG_URL)
321
322 pkgconfig: pkgconfig-$(PKGCFG_VERSION).tar.gz
323         $(EXTRACT_GZ)
324
325 .pkgcfg: pkgconfig
326         (cd pkgconfig; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
327         touch $@
328
329 CLEAN_FILE += .pkgcfg
330 CLEAN_PKG += pkgconfig
331 DISTCLEAN_PKG += pkgconfig-$(PKGCFG_VERSION).tar.gz
332
333 # ***************************************************************************
334 # gettext
335 # ***************************************************************************
336
337 gettext-$(GETTEXT_VERSION).tar.gz:
338         $(WGET) $(GETTEXT_URL)
339
340 gettext: gettext-$(GETTEXT_VERSION).tar.gz
341         $(EXTRACT_GZ)
342 ifdef HAVE_DARWIN_OS
343         patch -p 0 < Patches/gettext.patch
344 endif
345
346 .intl: gettext .iconv
347 ifdef HAVE_WIN32
348         ( cd $< && ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-relocatable --with-iconv-prefix=$(PREFIX))
349 else
350         ( cd $< && ./configure $(HOSTCONF) --prefix=$(PREFIX) )
351 endif
352 ifeq ($(BUILD),i586-pc-beos)
353 # The ugliest kludge ever - so libtool correctly links shared libraries
354 # on BeOS. Sorry, I just can't figure out how libtool works
355         ( cd $< && for f in `find . -name libtool`; do mv $$f $$f.orig; sed -e 's/ -shared / -nostart /' -e 's/^predep_objects.*/predep_objects=""/' < $$f.orig > $$f; chmod +x $$f; rm $$f.orig; done )
356 endif
357 ifneq ($(HOST),$(BUILD))
358 # We'll use the installed gettext and only need to cross-compile libintl
359         ( cd $< && make -C gettext-runtime/intl && make -C gettext-runtime/intl install )
360 else
361 # Build and install the whole gettext
362         ( cd $< && make && make install )
363 endif
364 # Work around another non-sense of autoconf.
365 ifdef HAVE_WIN32
366         (cd ../include; sed -i.bak '283 c #if !1' libintl.h)
367 endif
368         $(INSTALL_NAME)
369         touch $@
370
371 CLEAN_FILE += .intl
372 CLEAN_PKG += gettext
373 DISTCLEAN_PKG += gettext-$(GETTEXT_VERSION).tar.gz
374
375 # ***************************************************************************
376 # libiconv
377 # ***************************************************************************
378
379 libiconv-$(LIBICONV_VERSION).tar.gz:
380         $(WGET) $(LIBICONV_URL)
381
382 libiconv: libiconv-$(LIBICONV_VERSION).tar.gz
383         $(EXTRACT_GZ)
384 ifdef HAVE_DARWIN_OS
385         patch -p 0 < Patches/libiconv.patch
386 endif
387
388 .iconv: libiconv
389         (cd libiconv; CPPFLAGS="-Dssize_t=long" ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-nls && make && make install)
390         $(INSTALL_NAME)
391         touch $@
392
393 CLEAN_FILE += .iconv
394 CLEAN_PKG += libiconv
395 DISTCLEAN_PKG += libiconv-$(LIBICONV_VERSION).tar.gz
396
397 # ***************************************************************************
398 # freetype2
399 # ***************************************************************************
400
401 freetype-$(FREETYPE2_VERSION).tar.gz:
402         $(WGET) $(FREETYPE2_URL)
403
404 freetype2: freetype-$(FREETYPE2_VERSION).tar.gz
405         $(EXTRACT_GZ)
406
407 .freetype: freetype2
408         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
409         $(INSTALL_NAME)
410         touch $@
411
412 CLEAN_FILE += .freetype
413 CLEAN_PKG += freetype2
414 DISTCLEAN_PKG += freetype-$(FREETYPE2_VERSION).tar.gz
415
416 # ***************************************************************************
417 # fribidi
418 # ***************************************************************************
419
420 fribidi-$(FRIBIDI_VERSION).tar.gz:
421         $(WGET) $(FRIBIDI_URL)
422
423 fribidi: fribidi-$(FRIBIDI_VERSION).tar.gz
424         $(EXTRACT_GZ)
425         patch -p 0 < Patches/fribidi.patch.real
426 ifdef HAVE_WIN32
427         patch -p 0 <Patches/fribidi-win32.patch
428 endif
429 .fribidi: fribidi .iconv
430         (cd $<; ./bootstrap && ./configure $(HOSTCONF) --prefix=$(PREFIX)  && make && make install)
431         $(INSTALL_NAME)
432         touch $@
433
434 CLEAN_FILE += .fribidi
435 CLEAN_PKG += fribidi
436 DISTCLEAN_PKG += fribidi-$(FRIBIDI_VERSION).tar.gz
437
438 # ***************************************************************************
439 # liba52
440 # ***************************************************************************
441
442 a52dec-$(A52DEC_VERSION).tar.gz:
443         $(WGET) $(A52DEC_URL)
444
445 a52dec: a52dec-$(A52DEC_VERSION).tar.gz
446         $(EXTRACT_GZ)
447
448 .a52: a52dec
449         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
450         touch $@
451
452 CLEAN_FILE += .a52
453 CLEAN_PKG += a52dec
454 DISTCLEAN_PKG += a52dec-$(A52DEC_VERSION).tar.gz
455
456 # ***************************************************************************
457 # mpeg2dec
458 # ***************************************************************************
459
460 #mpeg2dec:
461 #       @echo "*** Please press return here : ***"
462 #       cvs -d $(MPEG2DEC_CVSROOT) login
463 #       cvs -d $(MPEG2DEC_CVSROOT) co mpeg2dec
464 #       (cd $@; ./bootstrap)
465
466 #mpeg2dec-$(MPEG2DEC_VERSION).tar.gz:
467 #       $(WGET) $(MPEG2DEC_URL)
468
469 # It is easier to use bootstrapped versions...
470 mpeg2dec-$(MPEG2DEC_VERSION).tar.gz:
471         $(WGET) $(MPEG2DEC_SNAPSHOT)
472         mv mpeg2dec-$(MPEG2DEC_DATE).tar.gz $@
473
474 mpeg2dec: mpeg2dec-$(MPEG2DEC_VERSION).tar.gz
475         $(EXTRACT_GZ)
476         patch -p 0 < Patches/mpeg2dec.patch
477
478 .mpeg2: mpeg2dec
479         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) --without-x --disable-sdl && make && make install)
480         touch $@
481
482 CLEAN_FILE += .mpeg2
483 CLEAN_PKG += mpeg2dec
484 #DISTCLEAN_PKG += mpeg2dec-$(MPEG2DEC_VERSION)-cvs.tar.gz
485 DISTCLEAN_PKG += mpeg2dec-$(MPEG2DEC_VERSION).tar.gz
486
487 # ***************************************************************************
488 # libid3tag
489 # ***************************************************************************
490
491 libid3tag-$(LIBID3TAG_VERSION).tar.gz:
492         $(WGET) $(LIBID3TAG_URL)
493
494 libid3tag: libid3tag-$(LIBID3TAG_VERSION).tar.gz
495         $(EXTRACT_GZ)
496
497 .id3tag: libid3tag
498         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
499         $(INSTALL_NAME)
500         touch $@
501
502 CLEAN_FILE += .id3tag
503 CLEAN_PKG += libid3tag
504 DISTCLEAN_PKG += libid3tag-$(LIBID3TAG_VERSION).tar.gz
505
506 # ***************************************************************************
507 # libmad
508 # ***************************************************************************
509
510 libmad-$(LIBMAD_VERSION).tar.gz:
511         $(WGET) $(LIBMAD_URL)
512
513 libmad: libmad-$(LIBMAD_VERSION).tar.gz
514         $(EXTRACT_GZ)
515
516 .mad: libmad
517         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="-O3" && make && make install)
518         $(INSTALL_NAME)
519         touch $@
520
521 CLEAN_FILE += .mad
522 CLEAN_PKG += libmad
523 DISTCLEAN_PKG += libmad-$(LIBMAD_VERSION).tar.gz
524
525 # ***************************************************************************
526 # ogg
527 # ***************************************************************************
528
529 #ogg:
530 #       @echo "*** Please type \"anoncvs\" here : ***"
531 #       cvs -d $(OGG_CVSROOT) login
532 #       cvs -d $(OGG_CVSROOT) co ogg
533 #       (cd $@; ./autogen.sh)
534
535 libogg-$(OGG_VERSION).tar.gz:
536         $(WGET) $(OGG_URL)
537
538 libogg: libogg-$(OGG_VERSION).tar.gz
539         $(EXTRACT_GZ)
540         patch -p 0 < Patches/ogg.patch
541 #ifdef HAVE_WIN32
542 #       (cd libogg;patch -p 0 <../Patches/libogg-1.1-win32.patch)
543 #endiF
544
545 .ogg: libogg
546         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
547         $(INSTALL_NAME)
548         touch $@
549
550 CLEAN_FILE += .ogg
551 CLEAN_PKG += libogg
552 DISTCLEAN_PKG += libogg-$(OGG_VERSION).tar.gz
553
554 # ***************************************************************************
555 # vorbis
556 # ***************************************************************************
557
558 #vorbis:
559 #       @echo "*** Please type \"anoncvs\" here : ***"
560 #       cvs -d $(OGG_CVSROOT) login
561 #       cvs -d $(OGG_CVSROOT) co vorbis
562 #       (cd $@; ./autogen.sh)
563 #       patch -p 0 < Patches/vorbis.patch
564
565 libvorbis-$(VORBIS_VERSION).tar.gz:
566         $(WGET) $(VORBIS_URL)
567
568 libvorbis: libvorbis-$(VORBIS_VERSION).tar.gz
569         $(EXTRACT_GZ)
570
571 .vorbis: libvorbis .ogg
572 # FIXME: shared libs disabled for now because of linking errors
573 #   -- titer 2005/09/16
574         (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared && make && make install)
575 #       $(INSTALL_NAME)
576         touch $@
577
578 .vorbisenc: .vorbis .ogg
579 #       $(INSTALL_NAME)
580         touch $@
581
582 CLEAN_FILE += .vorbis .vorbisenc
583 CLEAN_PKG += libvorbis
584 DISTCLEAN_PKG += libvorbis-$(VORBIS_VERSION).tar.gz
585
586 # ***************************************************************************
587 # theora
588 # ***************************************************************************
589
590 libtheora-$(THEORA_VERSION).tar.bz2:
591         $(WGET) $(THEORA_URL)
592
593 libtheora: libtheora-$(THEORA_VERSION).tar.bz2
594         $(EXTRACT_BZ2)
595         patch -p0 < Patches/theora.patch
596
597 .theora: libtheora .ogg
598         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-sdltest --disable-oggtest --disable-vorbistest && make && make install)
599         $(INSTALL_NAME)
600         touch $@
601
602 CLEAN_FILE += .theora
603 CLEAN_PKG += libtheora
604 DISTCLEAN_PKG += libtheora-$(THEORA_VERSION).tar.bz2
605
606 # ***************************************************************************
607 # shout
608 # ***************************************************************************
609
610 libshout-$(SHOUT_VERSION).tar.gz:
611         $(WGET) $(SHOUT_URL)
612
613 libshout: libshout-$(SHOUT_VERSION).tar.gz
614         $(EXTRACT_GZ)
615
616 .shout: libshout .theora .ogg
617         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
618         $(INSTALL_NAME)
619         touch $@
620
621 CLEAN_FILE += .shout
622 CLEAN_PKG += libshout
623 DISTCLEAN_PKG += libshout-$(SHOUT_VERSION).tar.gz
624
625 # ***************************************************************************
626 # flac
627 # ***************************************************************************
628
629 flac-$(FLAC_VERSION).tar.gz:
630         $(WGET) $(FLAC_URL)
631
632 flac: flac-$(FLAC_VERSION).tar.gz
633         $(EXTRACT_GZ)
634
635 .FLAC: flac .ogg
636         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-oggtest && cd src&& make -C libFLAC&& make -C libFLAC install  && cd .. && make -C include install)
637 #       (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-oggtest && cd src&& make -C libFLAC&& make -C libFLAC install && make -C libOggFLAC &&make -C libOggFLAC install && cd .. && make -C include install)
638         $(INSTALL_NAME)
639         touch $@
640
641 CLEAN_FILE += .flac
642 CLEAN_PKG += flac
643 DISTCLEAN_PKG += flac-$(FLAC_VERSION).tar.gz
644
645 # ***************************************************************************
646 # speex
647 # ***************************************************************************
648
649 speex-$(SPEEX_VERSION).tar.gz:
650         $(WGET) $(SPEEX_URL)
651
652 speex: speex-$(SPEEX_VERSION).tar.gz
653         $(EXTRACT_GZ)
654         patch -p0 < Patches/speex.patch
655
656 .speex: speex
657         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-ogg=no && make && make install)
658         $(INSTALL_NAME)
659         touch $@
660
661 CLEAN_FILE += .speex
662 CLEAN_PKG += speex
663 DISTCLEAN_PKG += speex-$(SPEEX_VERSION).tar.gz
664
665 # ***************************************************************************
666 # faad2
667 # ***************************************************************************
668
669 #faad2:
670 #       @echo "*** Please type return here : ***"
671 #       cvs -d $(FAAD2_CVSROOT) login
672 #       cvs -d $(FAAD2_CVSROOT) co faad2
673 #       (cd $@; patch -p 0 < ../Patches/faad2.patch)
674 #       (cd $@; sh ./bootstrap)
675
676 faad2-$(FAAD2_VERSION).tar.bz2:
677         $(WGET) $(FAAD2_URL)
678
679 faad2: faad2-$(FAAD2_VERSION).tar.bz2
680         $(EXTRACT_BZ2)
681 ifdef HAVE_WIN32
682         (cd faad2;patch -p 0  < ../Patches/faad2-20050513-win32.patch)
683 endif
684 .faad: faad2
685         (cd $<; ./bootstrap && ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="-O3" && make -C libfaad && make -C libfaad install)
686         $(INSTALL_NAME)
687         touch $@
688
689 CLEAN_FILE += .faad
690 CLEAN_PKG += faad2
691 DISTCLEAN_PKG += faad2-$(FAAD2_VERSION).tar.bz2
692
693 # ***************************************************************************
694 # faac
695 # ***************************************************************************
696
697 faac-$(FAAC_VERSION).tar.bz2:
698         $(WGET) $(FAAC_URL)
699
700 faac: faac-$(FAAC_VERSION).tar.bz2
701         $(EXTRACT_BZ2)
702         patch -p 0 < Patches/faac.patch
703
704 .faac: faac
705         (cd $<; rm -f install-sh mkinstalldirs missing && ./bootstrap && ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared && make && make install)
706         touch $@
707
708 CLEAN_FILE += .faac
709 CLEAN_PKG += faac
710 DISTCLEAN_PKG += faac-$(FAAC_VERSION).tar.bz2
711
712 # ***************************************************************************
713 # lame
714 # ***************************************************************************
715
716 lame-$(LAME_VERSION).tar.gz:
717         $(WGET) $(LAME_URL)
718
719 lame: lame-$(LAME_VERSION).tar.gz
720         $(EXTRACT_GZ)
721
722 .lame: lame
723         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-analyser-hooks --disable-decoder --disable-shared --disable-gtktest --disable-frontend && make && make install)
724         touch $@
725
726 CLEAN_FILE += .lame
727 CLEAN_PKG += lame
728 DISTCLEAN_PKG += lame-$(LAME_VERSION).tar.gz
729
730 # ***************************************************************************
731 # libebml
732 # ***************************************************************************
733
734 #ifdef SVN
735 #libebml: 
736 #       $(SVN) co http://svn.matroska.org/svn/matroska/trunk/libebml libebml
737 #else
738 libebml-$(LIBEBML_VERSION).tar.bz2:
739         $(WGET) $(LIBEBML_URL)
740
741 libebml: libebml-$(LIBEBML_VERSION).tar.bz2
742         $(EXTRACT_BZ2)
743 ifdef HAVE_WIN32
744         (cd $@; patch -p 0 < ../Patches/libebml-svn-win32.patch)
745 endif
746 #endif
747
748 .ebml: libebml
749 ifdef HAVE_WIN32
750         (cd $<; make -C make/mingw32 prefix=$(PREFIX) $(HOSTCC2) CFLAGS="$(CFLAGS) -DWIN32" SHARED=no && make -C make/linux install_staticlib install_headers prefix=$(PREFIX) $(HOSTCC2))
751 else
752         (cd $<; make -C make/linux prefix=$(PREFIX) $(HOSTCC2) staticlib && make -C make/linux install_staticlib install_headers prefix=$(PREFIX))
753         $(RANLIB) $(PREFIX)/lib/libebml.a
754 endif   
755         touch $@
756
757 CLEAN_FILE += .ebml
758 CLEAN_PKG += libebml
759 DISTCLEAN_PKG += libebml-$(LIBEBML_VERSION).tar.bz2
760
761 # ***************************************************************************
762 # libmatroska
763 # ***************************************************************************
764
765 #ifdef SVN
766 #libmatroska:
767 #       $(SVN) co http://svn.matroska.org/svn/matroska/trunk/libmatroska libmatroska
768 #else
769 libmatroska-$(LIBMATROSKA_VERSION).tar.bz2:
770         $(WGET) $(LIBMATROSKA_URL)
771
772 libmatroska: libmatroska-$(LIBMATROSKA_VERSION).tar.bz2
773         $(EXTRACT_BZ2)
774 ifdef HAVE_WIN32
775         (cd $@; patch -p 0 < ../Patches/libmatroska-win32.patch)
776 endif
777 #endif
778
779 .matroska: libmatroska .ebml
780 ifdef HAVE_WIN32
781         (cd $<; make -C make/mingw32 prefix=$(PREFIX) $(HOSTCC2) CPPFLAGS=$(CFLAGS) libmatroska.a && make -C make/linux install_staticlib install_headers prefix=$(PREFIX) $(HOSTCC2))
782 else
783         (cd $<; make -C make/linux prefix=$(PREFIX) $(HOSTCC2) staticlib && make -C make/linux install_staticlib install_headers prefix=$(PREFIX))
784         $(RANLIB) $(PREFIX)/lib/libmatroska.a
785 endif
786         touch $@
787
788 CLEAN_FILE += .matroska
789 CLEAN_PKG += libmatroska
790 DISTCLEAN_PKG += libmatroska-$(LIBMATROSKA_VERSION).tar.bz2
791
792 # ***************************************************************************
793 # ffmpeg
794 # ***************************************************************************
795
796 ffmpeg:
797         echo $(FFMPEG_CVSROOT) A > ./ffmpeg.cvs
798         CVS_PASSFILE=./ffmpeg.cvs cvs -z3 -d $(FFMPEG_CVSROOT) co ffmpeg
799         (cd $@;patch -p 0 <../Patches/ffmpeg-cvs.patch) 
800 ifeq ($(HOST),i586-pc-beos)
801         patch -p 0 < Patches/ffmpeg-beos.patch.cvs
802         (cd $@; ./bootstrap)
803 endif
804
805 ffmpeg-$(FFMPEG_VERSION).tar.gz:
806         $(WGET) $(FFMPEG_URL)
807
808 #ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz
809 #       $(EXTRACT_GZ)
810 #       patch -p 0 < Patches/ffmpeg.patch
811
812 .ffmpeg: ffmpeg .faac .lame .zlib
813         (cd $<; ./configure $(FFMPEGCONF) --prefix=$(PREFIX) --extra-cflags="$(CFLAGS) -DRUNTIME_CPUDETECT" --extra-ldflags="$(LDFLAGS)" --enable-gpl --enable-mp3lame --enable-faac --enable-pp --disable-vhook --disable-audio-beos --disable-ffserver  --enable-a52 --disable-ffplay && for dir in libavcodec/libpostproc libavcodec libavformat libavutil; do make -C $$dir && make -C $$dir installlib; done)
814         touch $@
815
816 CLEAN_FILE += .ffmpeg
817 CLEAN_PKG += ffmpeg ffmpeg.cvs
818 DISTCLEAN_PKG += ffmpeg-$(FFMPEG_VERSION).tar.gz
819
820 # ***************************************************************************
821 # openslp
822 # ***************************************************************************
823
824 openslp-$(OPENSLP_VERSION).tar.gz:
825         $(WGET) $(OPENSLP_URL)
826
827 openslp: openslp-$(OPENSLP_VERSION).tar.gz
828         $(EXTRACT_GZ)
829         patch -p 0 < Patches/openslp.patch
830
831 .openslp: openslp
832         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) && make SUBDIRS="common libslpattr slpd libslp slptool" && make install SUBDIRS="common libslpattr slpd libslp slptool")
833         touch $@
834
835 CLEAN_FILE += .openslp
836 CLEAN_PKG += openslp
837 DISTCLEAN_PKG += openslp-$(OPENSLP_VERSION).tar.gz
838
839 # ***************************************************************************
840 # libdvdcss
841 # ***************************************************************************
842
843 ifdef SVN
844 libdvdcss: 
845         $(SVN) co svn://svn.videolan.org/libdvdcss/trunk libdvdcss
846         cd $@ && sh bootstrap
847 else
848 libdvdcss-$(LIBDVDCSS_VERSION).tar.gz:
849         $(WGET) $(LIBDVDCSS_URL)
850
851 libdvdcss: libdvdcss-$(LIBDVDCSS_VERSION).tar.gz
852         $(EXTRACT_GZ)
853 endif
854
855 .dvdcss: libdvdcss
856         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
857         $(INSTALL_NAME)
858         touch $@
859
860 CLEAN_FILE += .dvdcss
861 CLEAN_PKG += libdvdcss
862 DISTCLEAN_PKG += libdvdcss-$(LIBDVDCSS_VERSION).tar.gz
863
864 # ***************************************************************************
865 # libdvdread
866 # ***************************************************************************
867
868 libdvdread-$(LIBDVDREAD_VERSION).tar.bz2:
869         $(WGET) $(LIBDVDREAD_URL)
870
871 libdvdread: libdvdread-$(LIBDVDREAD_VERSION).tar.bz2
872         $(EXTRACT_BZ2)
873         patch  -p 0 < Patches/libdvdread.patch
874 ifdef HAVE_WIN32
875         if automake-1.4 --version >/dev/null 2>&1; then \
876                 echo "Please get rid of your automake 1.4"; \
877                 rm -rf $@ \
878                 exit 1; \
879         fi
880         (cd libdvdread;patch -p 0 < ../Patches/libdvdread-20041028-win32.patch; ./bootstrap)
881 endif
882
883 .dvdread: libdvdread .dvdcss
884         (cd libdvdread; ./configure $(HOSTCONF) --prefix=$(PREFIX) --with-libdvdcss=$(PREFIX) && make && make install)
885         $(INSTALL_NAME)
886         touch $@
887         
888
889 CLEAN_FILE += .dvdread
890 CLEAN_PKG += libdvdread
891 DISTCLEAN_PKG += libdvdread-$(LIBDVDREAD_VERSION).tar.bz2
892
893 # ***************************************************************************
894 # libdvdnav
895 # ***************************************************************************
896
897 libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2:
898         $(WGET) $(LIBDVDNAV_URL)
899
900 libdvdnav: libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2
901         $(EXTRACT_BZ2)
902 #       patch -p 0 < Patches/dvdnav.patch
903 ifdef HAVE_WIN32
904         (cd $@; patch -p 0 < ../Patches/libdvdnav-20050211-win32.patch)
905 endif
906 ifdef HAVE_DARWIN_OS
907         (cd $@; autoconf)
908 else
909         (cd $@; ./autogen.sh noconfig)
910 endif
911
912 .dvdnav: libdvdnav .dvdread
913 ifdef HAVE_WIN32        
914         (cd $<; ./configure $(HOSTCONF) --enable-static --prefix=$(PREFIX) --with-libdvdcss=$(PREFIX) --disable-builtin-dvdread CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS) -DNDEBUG -Dssize_t=long" && make  && make install)
915 else
916         (cd $<; ./configure $(HOSTCONF) --enable-static --prefix=$(PREFIX) --with-libdvdcss=$(PREFIX) CFLAGS="$(CFLAGS) -Dlseek64=lseek -Doff64_t=off_t" && make && make install)
917 endif
918         $(INSTALL_NAME)
919         touch $@
920
921 CLEAN_FILE += .dvdnav
922 CLEAN_PKG += libdvdnav
923 DISTCLEAN_PKG += libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2
924
925 # ***************************************************************************
926 # libdvbpsi
927 # ***************************************************************************
928
929 libdvbpsi3-$(LIBDVBPSI_VERSION).tar.gz:
930         $(WGET) $(LIBDVBPSI_URL)
931
932 libdvbpsi: libdvbpsi3-$(LIBDVBPSI_VERSION).tar.gz
933         $(EXTRACT_GZ)
934
935 .dvbpsi: libdvbpsi
936         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
937         $(INSTALL_NAME)
938         touch $@
939
940 CLEAN_FILE += .dvbpsi
941 CLEAN_PKG += libdvbpsi
942 DISTCLEAN_PKG += libdvbpsi3-$(LIBDVBPSI_VERSION).tar.gz
943
944 # ***************************************************************************
945 # live
946 # ***************************************************************************
947
948 live555-$(LIVEDOTCOM_VERSION).tar.gz:
949         $(WGET) $(LIVEDOTCOM_URL)
950
951 live: live555-$(LIVEDOTCOM_VERSION).tar.gz
952         $(EXTRACT_GZ)
953         patch -p 0 < Patches/live.patch
954         patch -p 0 < Patches/livedotcom-win32.patch
955         patch -p 0 < Patches/livedotcom-osx.patch
956
957 .live: live
958 ifeq ($(HOST),ppc-darwin)
959         (cd $<; ./genMakefiles macosx-before-version-10.4 && make )
960 else
961 ifdef HAVE_WIN32
962         (cd $<;./genMakefiles mingw && make)
963 else
964         (cd $<; ./genMakefiles macosx && make )
965 endif
966 endif
967         touch $@
968
969 CLEAN_FILE += .live
970 CLEAN_PKG += live
971 DISTCLEAN_PKG += live555-$(LIVEDOTCOM_VERSION).tar.gz
972
973 # ***************************************************************************
974 # goom
975 # ***************************************************************************
976
977 #goom-macosx-altivec-bin.tar.gz:
978 #       $(WGET) $(GOOM_URL)
979
980 #goom: goom-macosx-altivec-bin.tar.gz
981 #       $(EXTRACT_GZ)
982
983 #.goom: goom
984 #       (cd $<;)
985 #       touch $@
986
987 #CLEAN_FILE += .goom
988 #CLEAN_PKG += goom
989 #DISTCLEAN_PKG += goom-macosx-altivec-bin.tar.gz
990
991 # ***************************************************************************
992 # goom2k4
993 # ***************************************************************************
994
995 goom$(GOOM2k4_VERSION).tar.gz:
996         $(WGET) $(GOOM2k4_URL)
997         mv goom-$(GOOM2k4_VERSION)-src.tar.gz goom$(GOOM2k4_VERSION).tar.gz
998
999 goom: goom$(GOOM2k4_VERSION).tar.gz
1000         $(EXTRACT_GZ)
1001 ifdef HAVE_DARWIN_OS
1002         patch -p 0 < Patches/goom.patch
1003 endif
1004 ifdef HAVE_WIN32
1005         patch -p 0 <Patches/goom2k4-0-win32.patch
1006 endif
1007
1008 .goom2k4: goom
1009         (cd $<&& autoconf configure.in >|configure &&./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static --disable-glibtest --disable-gtktest && make && make install )
1010         touch $@
1011
1012 CLEAN_FILE += .goom2k4
1013 CLEAN_PKG += goom
1014 DISTCLEAN_PKG += goom$(GOOM2k4_VERSION).tar.gz
1015
1016 # ***************************************************************************
1017 # libcaca
1018 # ***************************************************************************
1019
1020 libcaca-$(LIBCACA_VERSION).tar.gz:
1021         $(WGET) $(LIBCACA_URL)
1022
1023 libcaca: libcaca-$(LIBCACA_VERSION).tar.gz
1024         $(EXTRACT_GZ)
1025
1026 .caca: libcaca
1027         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-imlib2 --disable-doc && make && make install)
1028         touch $@
1029
1030 CLEAN_FILE += .caca
1031 CLEAN_PKG += libcaca
1032 DISTCLEAN_PKG += libcaca-$(LIBCACA_VERSION).tar.gz
1033
1034 # ***************************************************************************
1035 # libdts
1036 # ***************************************************************************
1037
1038 libdts-$(LIBDTS_VERSION).tar.gz:
1039         $(WGET) $(LIBDTS_URL)
1040
1041 ifeq ($(HOST),i586-pc-beos)
1042 # libdts 0.0.2 doesn't compile on BeOS
1043 libdts:
1044         svn co svn://svn.videolan.org/libdts/trunk libdts
1045         (cd $@; ./bootstrap)
1046 else
1047 libdts: libdts-$(LIBDTS_VERSION).tar.gz
1048         $(EXTRACT_GZ)
1049 endif
1050
1051 .dts: libdts
1052         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1053         touch $@
1054
1055 CLEAN_FILE += .dts
1056 CLEAN_PKG += libdts
1057 DISTCLEAN_PKG += libdts-$(LIBDTS_VERSION).tar.gz
1058
1059 # ***************************************************************************
1060 # libx264
1061 # ***************************************************************************
1062
1063 ifdef SVN
1064 x264: 
1065         $(SVN) co svn://svn.videolan.org/x264/trunk/ x264
1066 ifdef HAVE_WIN32
1067         (cd x264; patch -p 0 <../Patches/x264-svn-win32.patch )
1068 else
1069         cd x264 && patch -p 0 < ../Patches/x264_svn.patch
1070         rm x264/x264.c
1071 endif
1072 else
1073 x264-$(X264_VERSION).tar.gz:
1074         $(WGET) $(X264_URL)
1075
1076 x264: x264-$(X264_VERSION).tar.gz
1077         $(EXTRACT_GZ)
1078 ifdef HAVE_WIN32
1079         (cd x264;patch -p 0 <../Patches/x264-20050624-win32.patch)
1080 else
1081         patch -p 0 < Patches/x264.patch
1082         rm x264/x264.c
1083 endif
1084 endif
1085
1086 .x264: x264
1087         (cd $<; ./configure $(X264CONF) --prefix=$(PREFIX) && make && make install)
1088         touch $@
1089
1090 CLEAN_FILE += .x264
1091 CLEAN_PKG += x264
1092 DISTCLEAN_PKG += x264-$(X264_VERSION).tar.gz
1093
1094 # ***************************************************************************
1095 # libmodplug
1096 # ***************************************************************************
1097
1098 libmodplug-$(MODPLUG_VERSION).tar.gz:
1099         $(WGET) $(MODPLUG_URL)
1100
1101 libmodplug: libmodplug-$(MODPLUG_VERSION).tar.gz
1102         $(EXTRACT_GZ)
1103
1104 .mod: libmodplug
1105         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
1106         touch $@
1107
1108 CLEAN_FILE += .mod
1109 CLEAN_PKG += libmodplug
1110 DISTCLEAN_PKG += libmodplug-$(MODPLUG_VERSION).tar.gz
1111
1112 # ***************************************************************************
1113 # libcddb
1114 # ***************************************************************************
1115
1116 libcddb-$(CDDB_VERSION).tar.bz2:
1117         $(WGET) $(CDDB_URL)
1118
1119 libcddb: libcddb-$(CDDB_VERSION).tar.bz2
1120         $(EXTRACT_BZ2)
1121         patch -p 0 < Patches/libcddb.patch
1122
1123 .cddb: libcddb
1124         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" LDFLAGS="$(LDFLAGS) -liconv" && make && make install)
1125         touch $@
1126
1127 CLEAN_FILE += .cddb
1128 CLEAN_PKG += libcddb
1129 DISTCLEAN_PKG += libcddb-$(CDDB_VERSION).tar.bz2
1130
1131 # ***************************************************************************
1132 # vcdimager
1133 # ***************************************************************************
1134
1135 vcdimager-$(VCDIMAGER_VERSION).tar.gz:
1136         $(WGET) $(VCDIMAGER_URL)
1137
1138 vcdimager: vcdimager-$(VCDIMAGER_VERSION).tar.gz
1139         $(EXTRACT_GZ)
1140
1141 ifdef HAVE_DARWIN_OS
1142 .vcdimager: vcdimager
1143         (cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static LDFLAGS="$(LDFLAGS) -framework CoreFoundation -framework IOKit" && make && make install)
1144         touch $@
1145 else
1146 .vcdimager: vcdimager
1147         (cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
1148         touch $@
1149 endif
1150
1151 CLEAN_FILE += .vcdimager
1152 CLEAN_PKG += vcdimager
1153 DISTCLEAN_PKG += vcdimager-$(VCDIMAGER_VERSION).tar.gz
1154
1155 # ***************************************************************************
1156 # libcdio
1157 # ***************************************************************************
1158
1159 libcdio-$(CDIO_VERSION).tar.gz:
1160         $(WGET) $(CDIO_URL)
1161
1162 libcdio: libcdio-$(CDIO_VERSION).tar.gz
1163         $(EXTRACT_GZ)
1164
1165 .cdio: libcdio
1166         (cd $<; ./configure --prefix=$(PREFIX) --without-vcdinfo --disable-shared && make && make install)
1167         touch $@
1168
1169 CLEAN_FILE += .cdio
1170 CLEAN_PKG += libcdio
1171 DISTCLEAN_PKG += libcdio-$(CDIO_VERSION).tar.gz
1172
1173 # ***************************************************************************
1174 # OpenMash
1175 # ***************************************************************************
1176
1177 mash-src-$(MASH_VERSION).tar.gz:
1178         $(WGET) $(MASH_URL)
1179
1180 mash-code: mash-src-$(MASH_VERSION).tar.gz
1181         $(EXTRACT_GZ)
1182
1183 .mash: mash-code
1184         (cd $<; ./configure && make)
1185         touch $@
1186
1187 CLEAN_FILE += .mash
1188 CLEAN_PKG += mash-code
1189 DISTCLEAN_PKG += mash-src-$(MASH_VERSION).tar.gz
1190
1191 # ***************************************************************************
1192 # wxWidgets
1193 # ***************************************************************************
1194
1195 wxWidgets-$(WXWIDGETS_VERSION).tar.gz:
1196         $(WGET) $(WXWIDGETS_URL)
1197
1198 wxwidgets: wxWidgets-$(WXWIDGETS_VERSION).tar.gz
1199         $(EXTRACT_GZ)
1200 #       (cd wxwidgets; patch -p1 <../Patches/wxMSW-win32.patch)
1201
1202 .wxwidgets: wxwidgets
1203         (cd wxwidgets; ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-optimise --disable-debug --disable-threads --disable-gif --disable-pcx --disable-iff --disable-pnm --without-zlib  --without-libpng --without-libjpeg --without-libtiff --without-regex  --disable-zipstream --disable-fs_zip --enable-no_rtti  --enable-no_exceptions --disable-exceptions --disable-stl --disable-html --without-expat --disable-protocols --disable-protocol --disable-xrc --disable-sound --disable-dialupman --disable-mediactrl  --disable-joystick --disable-grid --disable-datepick --disable-postscript--disable-filesystem --disable-fileproto --disable-ipc --disable-sockets  && make && make install)
1204         $(INSTALL_NAME)
1205         touch $@
1206
1207 CLEAN_FILE += .wxwidgets
1208 CLEAN_PKG += wxwidgets
1209 DISTCLEAN_PKG += wxWidgets-$(WXWIDGETS_VERSION).tar.gz
1210
1211 # ***************************************************************************
1212 # zlib
1213 # ***************************************************************************
1214
1215 zlib-$(ZLIB_VERSION).tar.gz:
1216         $(WGET) $(ZLIB_URL)
1217
1218 zlib: zlib-$(ZLIB_VERSION).tar.gz
1219         $(EXTRACT_GZ)
1220
1221 .zlib: zlib
1222         (cd zlib; $(HOSTCC2) ./configure  --prefix=$(PREFIX) && make && make  install)
1223         $(INSTALL_NAME)
1224         touch $@
1225
1226 CLEAN_FILE += .zlib
1227 CLEAN_PKG += zlib
1228 DISTCLEAN_PKG += zlib-$(ZLIB_VERSION).tar.gz
1229
1230
1231
1232 # ***************************************************************************
1233 # xml
1234 # ***************************************************************************
1235
1236 libxml2-$(XML_VERSION).tar.gz:
1237         $(WGET) $(XML_URL)
1238
1239 xml: libxml2-$(XML_VERSION).tar.gz
1240         $(EXTRACT_GZ)
1241 ifdef HAVE_WIN32
1242         patch -p 0 < Patches/xml2-win32.patch
1243         rm -f xml/aclocal.m4
1244 endif
1245
1246 .xml: xml
1247         (cd xml; ./configure $(HOSTCONF) --prefix=$(PREFIX) --with-minimal --with-catalog --with-reader --with-tree --with-push --with-xptr --with-valid --with-writer --with-output --with-xpath --with-xinclude --with-sax1 --without-zlib --without-iconv --without-http --without-ftp && make && make install)
1248         $(INSTALL_NAME)
1249         touch $@
1250
1251 CLEAN_FILE += .xml
1252 CLEAN_PKG += xml
1253 DISTCLEAN_PKG += libxml2-$(XML_VERSION).tar.gz
1254
1255
1256 # ***************************************************************************
1257 # twolame
1258 # ***************************************************************************
1259
1260 twolame-$(TWOLAME_VERSION).tar.gz:
1261         $(WGET) $(TWOLAME_URL)
1262
1263 twolame: twolame-$(TWOLAME_VERSION).tar.gz
1264         $(EXTRACT_GZ)
1265
1266 .twolame: twolame
1267         (cd twolame; ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1268         $(INSTALL_NAME)
1269         touch $@
1270
1271 CLEAN_FILE += .twolame
1272 CLEAN_PKG += twolame
1273 DISTCLEAN_PKG += twolame-$(TWOLAME_VERSION).tar.gz
1274
1275 # ***************************************************************************
1276 # libpng
1277 # ***************************************************************************
1278
1279 libpng-$(PNG_VERSION).tar.bz2:
1280         $(WGET) $(PNG_URL)
1281
1282 libpng: libpng-$(PNG_VERSION).tar.bz2
1283         $(EXTRACT_BZ2)
1284         cat Patches/libpng.patch | sed s,PREFIX,$(PREFIX), | patch -p0
1285 ifdef HAVE_WIN32
1286         (cd $@; cat ../Patches/libpng-1.2.5-win32.patch | sed s,££PREFIX££,$(PREFIX), | patch -p0)
1287 endif
1288 .png: libpng .zlib
1289 ifdef HAVE_DARWIN_OS
1290         (cd $<; cp scripts/makefile.macosx Makefile && make && make install)
1291 else
1292 ifdef HAVE_WIN32
1293         (cd $<; cp scripts/makefile.cygwin Makefile && make && make install)
1294 else
1295         (cd $<;./configure $(HOSTCONF) --prefix=$(PREFIX) && make   && make install)
1296 endif
1297 endif
1298         $(INSTALL_NAME)  
1299         touch $@
1300
1301 CLEAN_FILE += .png
1302 CLEAN_PKG += libpng
1303 DISTCLEAN_PKG += libpng-$(PNG_VERSION).tar.bz2
1304
1305 # ***************************************************************************
1306 # libzvbi
1307 # ***************************************************************************
1308
1309 zvbi-$(ZVBI_VERSION).tar.bz2:
1310         $(WGET) $(ZVBI_URL)
1311
1312 zvbi: zvbi-$(ZVBI_VERSION).tar.bz2
1313         $(EXTRACT_BZ2)
1314
1315 .zvbi: zvbi
1316         (cd $<; ./configure --prefix=$(PREFIX) && make)
1317         touch $@
1318
1319 CLEAN_FILE += .zvbi
1320 CLEAN_PKG += zvbi
1321 #DISTCLEAN_PKG += zvbi-$(ZVBI_VERSION).tar.bz2
1322
1323 # ***************************************************************************
1324 # gpg-error 
1325 # ***************************************************************************
1326
1327 libgpg-error-$(GPGERROR_VERSION).tar.gz:
1328         $(WGET) $(GPGERROR_URL)
1329
1330 libgpg-error: libgpg-error-$(GPGERROR_VERSION).tar.gz
1331         $(EXTRACT_GZ)
1332
1333 .gpg-error: libgpg-error
1334         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-nls && make && make install)
1335         $(INSTALL_NAME)
1336         touch $@
1337
1338 CLEAN_FILE += .gpg-error
1339 CLEAN_PKG += libgpg-error
1340 DISTCLEAN_PKG += libgpg-error-$(GPGERROR_VERSION).tar.gz
1341
1342 # ***************************************************************************
1343 # libgcrypt
1344 # ***************************************************************************
1345
1346 libgcrypt-$(GCRYPT_VERSION).tar.bz2:
1347         $(WGET) $(GCRYPT_URL)
1348
1349 libgcrypt: libgcrypt-$(GCRYPT_VERSION).tar.bz2
1350         $(EXTRACT_BZ2)
1351 #       patch -p 0 < Patches/gcrypt.patch
1352
1353 .gcrypt: libgcrypt .gpg-error
1354         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" && make && make install)
1355 #       (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" && make && make install)
1356         $(INSTALL_NAME)
1357         touch $@
1358
1359 CLEAN_FILE += .gcrypt
1360 CLEAN_PKG += libgcrypt
1361 DISTCLEAN_PKG += libgcrypt-$(GCRYPT_VERSION).tar.bz2
1362
1363 # ***************************************************************************
1364 # gnutls
1365 # ***************************************************************************
1366
1367 gnutls-$(GNUTLS_VERSION).tar.bz2:
1368         $(WGET) $(GNUTLS_URL)
1369
1370 gnutls: gnutls-$(GNUTLS_VERSION).tar.bz2
1371         $(EXTRACT_BZ2)
1372         (cd gnutls/gl ;ln -s alloca_.h alloca.h)
1373
1374 .gnutls: gnutls .gcrypt .gpg-error
1375 ifdef HAVE_WIN32
1376         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" && cd crypto && make && cd ../gl && make &&  cd ../lib &&make && make install && cd ../includes && make install)
1377 else
1378         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)"  && cd lib &&make && make install)
1379 endif
1380         $(INSTALL_NAME)
1381         touch $@
1382
1383 CLEAN_FILE += .gnutls
1384 CLEAN_PKG += gnutls
1385 DISTCLEAN_PKG += gnutls-$(GNUTLS_VERSION).tar.bz2
1386
1387 # ***************************************************************************
1388 # libopendaap
1389 # ***************************************************************************
1390
1391 libopendaap-$(DAAP_VERSION).tar.bz2:
1392         $(WGET) $(DAAP_URL)
1393
1394 libopendaap: libopendaap-$(DAAP_VERSION).tar.bz2
1395         $(EXTRACT_BZ2)
1396         patch -p 0 < Patches/daap.patch
1397
1398 .opendaap: libopendaap
1399         (cd $<; ./configure --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" && make install)
1400         $(INSTALL_NAME)
1401         touch $@
1402
1403 CLEAN_FILE += .opendaap
1404 CLEAN_PKG += libopendaap
1405 DISTCLEAN_PKG += libopendaap-$(DAAP_VERSION).tar.bz2
1406
1407 # ***************************************************************************
1408 # glib
1409 # ***************************************************************************
1410
1411 glib-$(GLIB_VERSION).tar.gz:
1412         $(WGET) $(GLIB_URL)
1413
1414 glib: glib-$(GLIB_VERSION).tar.gz
1415         $(EXTRACT_GZ)
1416
1417 .glib: glib
1418         (cd $<; ./configure --prefix=$(PREFIX) --host=powerpc-apple-macos && make && make install)
1419         touch $@
1420
1421 CLEAN_FILE += .glibl
1422 CLEAN_PKG += glib
1423 DISTCLEAN_PKG += glib-$(GLIB_VERSION).tar.gz
1424
1425 # ***************************************************************************
1426 # libIDL
1427 # ***************************************************************************
1428
1429 libIDL-$(LIBIDL_VERSION).tar.gz:
1430         $(WGET) $(LIBIDL_URL)
1431
1432 libIDL: libIDL-$(LIBIDL_VERSION).tar.gz
1433         $(EXTRACT_GZ)
1434
1435 .libidl: libIDL
1436         (cd $<; ./configure --prefix=$(PREFIX) --host=powerpc-apple-macos && make && make install )
1437         touch $@
1438
1439 CLEAN_FILE += .libidl
1440 CLEAN_PKG += libIDL
1441 DISTCLEAN_PKG += libIDL-$(LIBIDL_VERSION).tar.gz
1442
1443 # ***************************************************************************
1444 # Gecko SDK
1445 # ***************************************************************************
1446
1447 gecko-sdk-ppc-macosx10.2-1.7.5.tar.gz:
1448         $(WGET) $(GECKO_SDK_MAC_URL)
1449
1450 gecko-sdk: gecko-sdk-ppc-macosx10.2-1.7.5.tar.gz
1451         $(EXTRACT_GZ)
1452
1453 .gecko: gecko-sdk
1454         (cd $<)
1455         touch $@
1456
1457 CLEAN_FILE += .gecko
1458 CLEAN_PKG += gecko-sdk
1459 DISTCLEAN_PKG += gecko-sdk-ppc-macosx10.2-1.7.5.tar.gz
1460
1461 # ***************************************************************************
1462 # Gecko SDK win32
1463 # ***************************************************************************
1464
1465 gecko-sdk-i586-pc-msvc-1.7.5.zip:
1466         $(WGET) $(GECKO_SDK_WIN32_URL)
1467
1468 libIDL-0.6.3-win32-bin.zip:
1469         $(WGET) $(LIBIDL_WIN32_BIN_URL)
1470
1471 vc71-glib-1.2.10-bin.zip:
1472         $(WGET) $(VC71_GLIB_WIN32_BIN_URL)
1473
1474 gecko-sdk-win32: gecko-sdk-i586-pc-msvc-1.7.5.zip libIDL-0.6.3-win32-bin.zip vc71-glib-1.2.10-bin.zip
1475         unzip  gecko-sdk-i586-pc-msvc-1.7.5.zip
1476         rm -rf ../gecko-sdk
1477         mv gecko-sdk ..
1478         unzip libIDL-0.6.3-win32-bin.zip
1479         unzip vc71-glib-1.2.10-bin.zip
1480         mv libIDL-0.6.3-win32-bin/libIDL-0.6.dll ../gecko-sdk/bin
1481         rm -rf libIDL-0.6.3-win32-bin
1482         mv vc71/bin/glib-1.2.dll ../gecko-sdk/bin
1483         rm -rf vc71
1484
1485 .gecko-win32: gecko-sdk-win32
1486         touch $@
1487
1488 CLEAN_FILE += .gecko-win32
1489 CLEAN_PKG += gecko-sdk-win32
1490 DISTCLEAN_PKG += gecko-sdk-i586-pc-msvc-1.7.5.zip libIDL-0.6.3-win32-bin.zip vc71-glib-1.2.10-bin.zip
1491
1492 # ***************************************************************************
1493 # mozilla
1494 # ***************************************************************************
1495
1496 mozilla-source-$(MOZILLA_VERSION).tar.bz2:
1497         $(WGET) $(MOZILLA_URL)
1498
1499 mozilla: mozilla-source-$(MOZILLA_VERSION).tar.bz2
1500         $(EXTRACT_BZ2)
1501
1502 .mozilla: mozilla
1503         (cd $<; ./configure --prefix=$(PREFIX) --enable-default-toolkit=mac --enable-standalone-modules=xpcom,plugin && make && make install)
1504         touch $@
1505
1506 CLEAN_FILE += .mozilla
1507 CLEAN_PKG += mozilla
1508 DISTCLEAN_PKG += mozilla-source-$(MOZILLA_VERSION).tar.bz2
1509
1510 # ***************************************************************************
1511 # libjpeg
1512 # ***************************************************************************
1513
1514 jpeg-$(JPEG_VERSION).tar.gz:
1515         $(WGET) $(JPEG_URL)
1516
1517 jpeg: jpeg-$(JPEG_VERSION).tar.gz 
1518         $(EXTRACT_GZ)
1519
1520 .jpeg: jpeg
1521         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(HOSTCC) && make && make install-lib)
1522         $(RANLIB) $(PREFIX)/lib/libjpeg.a
1523         touch $@
1524
1525 CLEAN_FILE += .jpeg
1526 CLEAN_PKG += jpeg
1527 DISTCLEAN_PKG += jpeg-$(JPEG_VERSION).tar.gz
1528
1529 # ***************************************************************************
1530 # tiff
1531 # ***************************************************************************
1532
1533 tiff-$(TIFF_VERSION).tar.gz:
1534         $(WGET) $(TIFF_URL)
1535         mv tiff-$(TIFF_VERSION)-tar.gz $@
1536
1537 tiff: tiff-$(TIFF_VERSION).tar.gz 
1538         $(EXTRACT_GZ)
1539         patch -p 0 < Patches/tiff.patch
1540 ifneq ($(HOST),$(BUILD))
1541         patch -p 0 < Patches/tiff-cross.patch
1542 endif
1543
1544 .tiff: tiff
1545         (cd $<;  ./configure  --noninteractive --target=$(HOST) --with-CC=$(HOST)-gcc --with-DIR_BIN=$(PREFIX)/bin --with-DIR_LIB=$(PREFIX)/lib --with-DIR_INC=$(PREFIX)/include --with-CFLAGS="$(CFLAGS)" --with-JPEG=no --with-ZIP=no  && make -C libtiff && make -C libtiff install)
1546         touch $@
1547
1548 CLEAN_FILE += .tiff
1549 CLEAN_PKG += tiff
1550 DISTCLEAN_PKG += tiff-$(TIFF_VERSION).tar.gz
1551
1552 # ***************************************************************************
1553 # SDL
1554 # ***************************************************************************
1555
1556 SDL-$(SDL_VERSION).tar.gz:
1557         $(WGET) $(SDL_URL)
1558
1559 SDL: SDL-$(SDL_VERSION).tar.gz 
1560         $(EXTRACT_GZ)
1561         patch -p 0 < Patches/SDL.patch
1562
1563 .SDL: SDL
1564         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-audio --disable-video-x11 --disable-video-aalib --disable-video-dga --disable-video-fbcon --disable-video-directfb --disable-video-ggi --disable-video-svga --disable-directx --disable-joystick --disable-cdrom --disable-threads --disable-sdl-dlopen CFLAGS="$(CFLAGS)" && make && make install)
1565         $(INSTALL_NAME)
1566         touch $@
1567
1568 CLEAN_FILE += .SDL
1569 CLEAN_PKG += SDL
1570 DISTCLEAN_PKG += SDL-$(SDL_VERSION).tar.gz
1571
1572 # ***************************************************************************
1573 # SDL_image
1574 # ***************************************************************************
1575
1576 SDL_image-$(SDL_IMAGE_VERSION).tar.gz:
1577         $(WGET) $(SDL_IMAGE_URL)
1578
1579 SDL_image: SDL_image-$(SDL_IMAGE_VERSION).tar.gz 
1580         $(EXTRACT_GZ)
1581         patch -p 0 < Patches/SDL_image.patch
1582
1583 .SDL_image: SDL_image .SDL .png .jpeg .tiff
1584         (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-tif CFLAGS="$(CFLAGS)" && make && make install)
1585         $(INSTALL_NAME)
1586         touch $@
1587
1588 CLEAN_FILE += .SDL_image
1589 CLEAN_PKG += SDL_image
1590 DISTCLEAN_PKG += SDL_image-$(SDL_IMAGE_VERSION).tar.gz
1591
1592 # ***************************************************************************
1593 # Musepack decoder library (libmpcdec)
1594 # ***************************************************************************
1595
1596 libmpcdec-$(MUSE_VERSION).tar.bz2:
1597         $(WGET) $(MUSE_URL)
1598
1599 libmpcdec: libmpcdec-$(MUSE_VERSION).tar.bz2 
1600         $(EXTRACT_BZ2)
1601
1602 .libmpcdec: libmpcdec
1603         (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
1604         touch $@
1605
1606 CLEAN_FILE += .libmpcdec
1607 CLEAN_PKG += libmpcdec
1608 DISTCLEAN_PKG += libmpcdec-$(MUSE_VERSION).tar.bz2
1609
1610
1611
1612 # ***************************************************************************
1613  # Dirac
1614  # ***************************************************************************
1615
1616 dirac-$(DIRAC_VERSION).tar.gz:
1617         $(WGET) $(DIRAC_URL)
1618
1619 dirac: dirac-$(DIRAC_VERSION).tar.gz
1620         $(EXTRACT_GZ)
1621 ifneq ($(HOST),$(BUILD))
1622         patch -p 0 <Patches/dirac-cross.patch
1623         (cd $@; autoconf && automake)
1624 endif
1625
1626 .dirac: dirac
1627         (cd $<; aclocal && ./configure $(HOSTCONF) --prefix=$(PREFIX)  CFLAGS="$(CFLAGS)" && DOC_DIR="" make && DOC_DIR="" make install)
1628         $(INSTALL_NAME)
1629         touch $@
1630
1631 CLEAN_FILE += .dirac
1632 CLEAN_PKG += dirac
1633 DISTCLEAN_PKG += dirac-$(DIRAC_VERSION).tar.gz
1634
1635 # *************************************************************************
1636 # DirectX headers
1637 # *************************************************************************
1638 win32-dx7headers.tgz:
1639         $(WGET) $(DX_HEADERS_URL)
1640 .dx_headers: win32-dx7headers.tgz
1641         (cd ../include ; tar xzf ../src/$<)
1642         touch $@
1643 CLEAN_FILE += .dx_headers
1644 DISTCLEAN_PKG += win32-dx7headers.tgz
1645  
1646 # *************************************************************************
1647 # DirectShow headers
1648 # *************************************************************************
1649 dshow-headers.tgz:
1650         $(WGET) $(DSHOW_HEADERS_URL)
1651 .dshow_headers: dshow-headers.tgz
1652         (cd ../include ; tar xzf ../src/$<)
1653         touch $@
1654 CLEAN_FILE += .dshow_headers
1655 DISTCLEAN_PKG += dshow-headers.tgz
1656                                                           
1657
1658 # ***************************************************************************
1659 # Copy aclocal files
1660 # This is necessary for --missing aclocal to succeed after a
1661 # configure.ac/Makefile.am change in the vlc root dir
1662 # **************************************************************************
1663
1664 .aclocal:
1665         cp -R $(PREFIX)/share/aclocal/* $(PREFIX)/../../m4/
1666         touch $@
1667
1668 CLEAN_FILE += .aclocal
1669
1670 # ***************************************************************************
1671 # Some cleansing
1672 # ***************************************************************************
1673
1674 clean-dots: FORCE
1675         rm -f $(CLEAN_FILE)
1676
1677 clean: clean-dots
1678         rm -rf $(CLEAN_PKG)
1679
1680 clean-src: clean
1681         rm -rf $(DISTCLEAN_PKG)
1682
1683 distclean: clean-src