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