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