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