Contribs: Update dvdnav and dvdread to 4.2.0
[vlc.git] / extras / contrib / src / contrib-src.mak
blobf6dd671b5c9f08387829e3139b63152453d26cea
1 #***************************************************************************
2 # src/Makefile : Dearchive and compile all files necessary
3 # ***************************************************************************
4 # Copyright (C) 2003 - 2011 the VideoLAN team
5 # $Id$
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 Paul Kühne <fkuehne at videolan dot org>
11 # Christophe Mutricy <xtophe AT xtelevision.com>
12 # Gildas Bazin <gbazin at videolan dot org>
13 # Damien Fouilleul <damienf at videolan dot org>
14 # Jean-Baptiste Kempf <jb at videolan dot org>
16 # This program is free software; you can redistribute it and/or modify
17 # it under the terms of the GNU General Public License as published by
18 # the Free Software Foundation; either version 2 of the License, or
19 # (at your option) any later version.
21 # This program is distributed in the hope that it will be useful,
22 # but WITHOUT ANY WARRANTY; without even the implied warranty of
23 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 # GNU General Public License for more details.
26 # You should have received a copy of the GNU General Public License
27 # along with this program; if not, write to the Free Software
28 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
29 # ***************************************************************************
31 include ../config.mak
32 include ./packages.mak
34 # ***************************************************************************
35 # Set a clean environment
36 # ***************************************************************************
38 ifdef HAVE_DARWIN_OS
39 export PATH := $(PREFIX)/bin:$(EXTRA_PATH):/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:
40 else
41 export PATH := $(PREFIX)/bin:$(EXTRA_PATH):$(PATH)
42 endif
43 export PKG_CONFIG_PATH
44 export PKG_CONFIG_LIBDIR = $(PREFIX)/lib/pkgconfig
45 export MACOSX_DEPLOYMENT_TARGET = $(SDK_TARGET)
46 export LIBRARY_PATH := $(PREFIX)/lib:$(LIBRARY_PATH)
47 export LD_LIBRARY_PATH := $(PREFIX)/lib:$(LD_LIBRARY_PATH)
48 export CFLAGS = -I$(PREFIX)/include $(EXTRA_CFLAGS) $(EXTRA_CPPFLAGS)
49 export CPPFLAGS = -I$(PREFIX)/include $(EXTRA_CFLAGS) $(EXTRA_CPPFLAGS)
50 export CXXFLAGS = -I$(PREFIX)/include $(EXTRA_CFLAGS) $(EXTRA_CPPFLAGS)
51 export LDFLAGS = -L$(PREFIX)/lib $(EXTRA_LDFLAGS)
52 export ACLOCAL = aclocal -I$(PREFIX)/share/aclocal
53 ifdef HAVE_MACOSX
54 export CC
55 export CXX
56 export LD
57 endif
59 # ***************************************************************************
60 # Cross compilation variables
61 # We'll usually use --host=<platform>, except for a few libraries which
62 # don't handle it (gotta set CC/CXX/etc), and obviously FFmpeg has its own
63 # way of doing it... ;)
64 # ***************************************************************************
66 ifneq ($(CC),)
67 HOSTCC+= CC="$(CC)"
68 endif
69 ifneq ($(CXX),)
70 HOSTCC+= CXX="$(CXX)"
71 endif
72 ifneq ($(LD),)
73 HOSTCC+= LD="$(LD)"
74 endif
75 ifneq ($(RANLIB),)
76 HOSTCC+= RANLIB="$(RANLIB)"
77 endif
78 ifneq ($(AR),)
79 HOSTCC+= AR="$(AR)"
80 endif
81 ifneq ($(STRIP),)
82 HOSTCC+= STRIP="$(STRIP)"
83 endif
86 # Define ranlib on non-cross compilation setups
87 ifeq ($(RANLIB),)
88 RANLIB=ranlib
89 endif
91 # Just a shortcut for readability
92 ENABLED=1
94 # cross compiling
95 #This should be inside the if block but some config scripts are buggy
96 HOSTCONF=--target=$(HOST) --host=$(HOST) --build=$(BUILD) --program-prefix=""
97 ifneq ($(BUILD),$(HOST))
99 # Compiling for MinGW under Cygwin could be deemed as cross compiling
100 # unfortunately there isn't a complete separate GCC toolchain for MinGW under Cygwin
102 ifndef HAVE_CYGWIN
103 # We are REALLY cross compiling
104 HAVE_CROSS_COMPILE=y
105 ifndef HAVE_IOS
106 HAVE_CROSS_COMPILE_NEEDS_CROSS_PREFIX=y
107 endif
108 else
109 # We are compiling for MinGW on Cygwin
110 endif
111 endif
114 # Special target-dependant options
116 ifdef HAVE_WIN32
117 HOSTCONF+= --without-pic --disable-shared --disable-dependency-tracking
118 endif
120 ifdef HAVE_WINCE
121 HOSTCONF+= --without-pic --disable-shared
122 endif
125 ifdef HAVE_LINUX
126 ifdef HAVE_MAEMO
127 # Really, this could be done on all Linux platforms, not just Maemo.
128 # Installing statically-linked VLC plugins is so much simpler.
129 HOSTCONF += --with-pic --disable-shared
130 endif
131 endif
134 ifdef HAVE_ISA_THUMB
135 NOTHUMB ?= -mno-thumb
136 endif
138 DATE=`date +%Y-%m-%d`
140 # ***************************************************************************
141 # Standard rules
142 # ***************************************************************************
143 # Generated by ./bootstrap from default configuration in src/Distributions
145 include ../distro.mak
147 FORCE:
149 # ***************************************************************************
150 # Useful macros
151 # ***************************************************************************
153 define EXTRACT_GZ
154 rm -rf $@ || true
155 gunzip -c $< | tar xf - --exclude='[*?:<>\|]'
156 mv $(patsubst %.tar.gz,%,$(patsubst %.tgz,%,$(notdir $<))) $@ || true
157 touch $@
158 endef
160 define EXTRACT_BZ2
161 rm -rf $@ || true
162 bunzip2 -c $< | tar xf - --exclude='[*?:<>\|]'
163 mv $(patsubst %.tar.bz2,%,$(notdir $<)) $@ || true
164 touch $@
165 endef
167 define EXTRACT_ZIP
168 rm -rf $@ || true
169 unzip $<
170 mv $(patsubst %.zip,%,$(notdir $<)) $@ || true
171 touch $@
172 endef
174 ### Darwin-specific ###
175 # These macros prepare the dynamic libraries for inclusion in the Mac OS X
176 # bundle. For instance if you're building a library named libtoto.dylib,
177 # which depends on the contrib library libtata.dylib, you should have the
178 # following entry :
179 # .toto: toto_.tata
180 # cd $< ; ./configure --prefix=$(PREFIX)
181 # $(MAKE) -C $<
182 # $(MAKE) -C $< install
183 # $(INSTALL_NAME)
184 # touch $@
186 # ***************************************************************************
187 # errno
188 # ***************************************************************************
190 errno:
191 mkdir -p $@
192 $(WGET) $(ERRNO_URL)/errno.h -O $@/errno.h
194 .errno: errno
195 mkdir -p $(PREFIX)/include
196 cp $</errno.h $(PREFIX)/include
197 touch $@
199 CLEAN_FILE += .errno
200 CLEAN_PKG += errno
202 # ***************************************************************************
203 # CMake
204 # ***************************************************************************
205 cmake-$(CMAKE_VERSION).tar.gz:
206 $(WGET) $(CMAKE_URL)
208 cmake: cmake-$(CMAKE_VERSION).tar.gz
209 $(EXTRACT_GZ)
211 .cmake: cmake
212 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
213 touch $@
215 CLEAN_FILE += .cmake
216 CLEAN_PKG += cmake
218 # ***************************************************************************
219 # libtool
220 # ***************************************************************************
222 ifdef HAVE_MACOSX
223 libtool-$(LIBTOOL_VERSION).tar.gz:
224 $(WGET) $(LIBTOOL_URL)
226 libtool: libtool-$(LIBTOOL_VERSION).tar.gz
227 $(EXTRACT_GZ)
229 .libtool: libtool
230 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
231 ln -sf libtool $(PREFIX)/bin/glibtool
232 ln -sf libtoolize $(PREFIX)/bin/glibtoolize
233 touch $@
235 CLEAN_PKG += libtool
236 DISTCLEAN_PKG += libtool-$(LIBTOOL_VERSION).tar.gz
237 CLEAN_FILE += .libtool
239 endif
241 # ***************************************************************************
242 # autotools
243 # ***************************************************************************
245 autoconf-$(AUTOCONF_VERSION).tar.bz2:
246 $(WGET) $(AUTOCONF_URL)
248 autoconf: autoconf-$(AUTOCONF_VERSION).tar.bz2
249 $(EXTRACT_BZ2)
251 .autoconf: autoconf
252 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
253 touch $@
255 CLEAN_FILE += .autoconf
256 CLEAN_PKG += autoconf
257 DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.bz2
259 automake-$(AUTOMAKE_VERSION).tar.gz:
260 $(WGET) $(AUTOMAKE_URL)
262 automake: automake-$(AUTOMAKE_VERSION).tar.gz
263 $(EXTRACT_GZ)
265 .automake: automake .autoconf
266 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
267 touch $@
269 CLEAN_FILE += .automake
270 CLEAN_PKG += automake
271 DISTCLEAN_PKG += automake-$(AUTOMAKE_VERSION).tar.gz
273 # ***************************************************************************
274 # pkgconfig
275 # ***************************************************************************
277 pkg-config-$(PKGCFG_VERSION).tar.gz:
278 $(WGET) $(PKGCFG_URL)
280 pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
281 $(EXTRACT_GZ)
282 (cd $@; autoconf)
284 .pkgcfg: pkgconfig
285 (cd pkgconfig; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
286 touch $@
288 CLEAN_FILE += .pkgcfg
289 CLEAN_PKG += pkgconfig
290 DISTCLEAN_PKG += pkg-config-$(PKGCFG_VERSION).tar.gz
292 # ***************************************************************************
293 # gettext
294 # ***************************************************************************
296 gettext-$(GETTEXT_VERSION).tar.gz:
297 $(WGET) $(GETTEXT_URL)
299 gettext: gettext-$(GETTEXT_VERSION).tar.gz
300 $(EXTRACT_GZ)
301 ifdef HAVE_MACOSX
302 patch -p0 < Patches/gettext-macosx.patch
303 endif
305 .intl: gettext .iconv
306 ifdef HAVE_WIN32
307 ( cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-relocatable --disable-java --disable-native-java)
308 else
309 ( cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-java --disable-native-java --without-emacs)
310 endif
311 ifneq ($(HOST),$(BUILD))
312 ifndef HAVE_CYGWIN
313 # We'll use the installed gettext and only need to cross-compile libintl, also build autopoint and gettextsize tools need for VLC bootstrap
314 ( cd $< && make -C gettext-runtime/intl && make -C gettext-runtime/intl install && make -C gettext-tools/misc install )
315 else
316 # We are compiling for MinGW on Cygwin -- build the full current gettext
317 ( cd $< && make && make install )
318 endif
319 else
320 # Build and install the whole gettext
321 ( cd $< && make && make install )
322 endif
323 # Work around another non-sense of autoconf.
324 ifdef HAVE_WIN32
325 (cd $(PREFIX)/include; sed -i.orig '314 c #if 0' libintl.h)
326 endif
327 $(INSTALL_NAME)
328 touch $@
330 CLEAN_FILE += .intl
331 CLEAN_PKG += gettext
332 DISTCLEAN_PKG += gettext-$(GETTEXT_VERSION).tar.gz
334 # ***************************************************************************
335 # libiconv
336 # ***************************************************************************
338 libiconv-$(LIBICONV_VERSION).tar.gz:
339 $(WGET) $(LIBICONV_URL)
341 libiconv: libiconv-$(LIBICONV_VERSION).tar.gz
342 $(EXTRACT_GZ)
343 ifdef HAVE_WIN64
344 patch -p0 < Patches/libiconv-win64.patch
345 endif
346 ifdef HAVE_WINCE
347 patch -p0 < Patches/libiconv-wince.patch
348 patch -p0 < Patches/libiconv-wince-hack.patch
349 endif
351 libiconv-snowleopard.tar.bz2:
352 $(WGET) $(LIBICONVMAC_URL)
354 libiconv-snowleopard: libiconv-snowleopard.tar.bz2
355 $(EXTRACT_BZ2)
357 ifdef HAVE_MACOSX
358 ifdef HAVE_MACOSX_DARWIN_10
359 .iconv-from-os: libiconv-snowleopard
360 (cd libiconv-snowleopard && cp libiconv.* $(PREFIX)/lib/)
361 touch $@
362 else
363 .iconv-from-os:
364 touch $@
365 endif
366 endif
368 .iconv: libiconv
369 (cd libiconv; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-nls && make && make install)
370 $(INSTALL_NAME)
371 touch $@
373 CLEAN_FILE += .iconv .iconv-from-os
374 CLEAN_PKG += libiconv
375 DISTCLEAN_PKG += libiconv-$(LIBICONV_VERSION).tar.gz
377 # ***************************************************************************
378 # fontconfig
379 # ***************************************************************************
381 fontconfig-$(FONTCONFIG_VERSION).tar.gz:
382 $(WGET) $(FONTCONFIG_URL)
384 fontconfig: fontconfig-$(FONTCONFIG_VERSION).tar.gz Patches/fontconfig.patch
385 $(EXTRACT_GZ)
386 patch -p0 < Patches/fontconfig-march.patch
387 patch -p0 < Patches/fontconfig-nodocs.patch
388 ifdef HAVE_WIN32
389 patch -p0 < Patches/fontconfig.patch
390 patch -p0 < Patches/fontconfig-noxml2.patch
391 (cd $@; autoreconf -ivf)
392 endif
394 FONTCONFIG_BASE_CONF = --prefix=$(PREFIX) \
395 --with-freetype-config=$(PREFIX)/bin/freetype-config \
396 --enable-libxml2 \
397 --disable-docs
399 FONTCONFIG_CONF-$(ENABLED) = $(HOSTCONF) $(FONTCONFIG_BASE_CONF)
400 FONTCONFIG_CONF-$(HAVE_MACOSX) += $(HOSTCONF) \
401 --with-cache-dir=~/Library/Caches/fontconfig \
402 --with-confdir=/usr/X11/lib/X11/fonts \
403 --with-default-fonts=/System/Library/Fonts \
404 --with-add-fonts=/Library/Fonts,~/Library/Fonts \
405 --with-arch=$(ARCH)
407 FONTCONFIG_CONF-$(HAVE_WIN32) = --with-arch=i686 $(FONTCONFIG_BASE_CONF)
408 ifndef HAVE_CYGWIN
409 FONTCONFIG_CONF-$(HAVE_WIN32) += $(HOSTCONF)
410 endif
411 FONTCONFIG_CONF-$(HAVE_CYGWIN) += --target=$(HOST) --disable-pic --disable-shared
413 FONTCONFIG_ENV-$(ENABLED) = $(HOSTCC) LIBXML2_CFLAGS=`$(PREFIX)/bin/xml2-config --cflags`
414 FONTCONFIG_ENV-$(HAVE_MACOSX) = $(HOSTCC) LIBXML2_CFLAGS=`xml2-config --cflags` LIBXML2_LIBS=`xml2-config --libs`
415 FONTCONFIG_ENV-$(HAVE_WIN32) = $(HOSTCC)
416 FONTCONFIG_ENV-$(HAVE_CYGWIN) =
418 FONTCONFIG_INSTALL-$(ENABLED) = make install
419 FONTCONFIG_INSTALL-$(HAVE_MACOSX) = make install-exec && (cd fontconfig ; make install-data) && cp fontconfig.pc $(PKG_CONFIG_LIBDIR) && sed -e 's%/usr/lib/libiconv.la%%' -i.orig $(PREFIX)/lib/libfontconfig.la
421 .fontconfig: fontconfig .xml .freetype
422 (cd $<; $(FONTCONFIG_ENV-1) ./configure $(FONTCONFIG_CONF-1) && make && $(FONTCONFIG_INSTALL-1))
423 $(INSTALL_NAME)
424 touch $@
426 CLEAN_FILE += .fontconfig
427 CLEAN_PKG += fontconfig
428 DISTCLEAN_PKG += fontconfig-$(FONTCONFIG_VERSION).tar.gz
430 # ***************************************************************************
431 # freetype2
432 # ***************************************************************************
434 freetype-$(FREETYPE2_VERSION).tar.gz:
435 $(WGET) $(FREETYPE2_URL)
437 freetype2: freetype-$(FREETYPE2_VERSION).tar.gz
438 $(EXTRACT_GZ)
440 .freetype: freetype2
441 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
442 $(INSTALL_NAME)
443 touch $@
445 CLEAN_FILE += .freetype
446 CLEAN_PKG += freetype2
447 DISTCLEAN_PKG += freetype-$(FREETYPE2_VERSION).tar.gz
449 # ***************************************************************************
450 # fribidi
451 # ***************************************************************************
453 fribidi-$(FRIBIDI_VERSION).tar.gz:
454 $(WGET) $(FRIBIDI_URL)
456 fribidi: fribidi-$(FRIBIDI_VERSION).tar.gz
457 $(EXTRACT_GZ)
458 patch -p0 < Patches/fribidi.patch
459 ( cd $@; rm -f configure; ./bootstrap)
461 ifdef HAVE_MACOSX
462 .fribidi: fribidi .iconv-from-os
463 else
464 .fribidi: fribidi .iconv
465 endif
466 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
467 $(INSTALL_NAME)
468 touch $@
470 CLEAN_FILE += .fribidi
471 CLEAN_PKG += fribidi
472 DISTCLEAN_PKG += fribidi-$(FRIBIDI_VERSION).tar.gz
474 # ***************************************************************************
475 # liba52
476 # ***************************************************************************
478 a52dec-$(A52DEC_VERSION).tar.gz:
479 $(WGET) $(A52DEC_URL)
481 a52dec: a52dec-$(A52DEC_VERSION).tar.gz
482 $(EXTRACT_GZ)
483 ifeq ($(ARCH),armel)
484 (cd $@ ; patch -p0 < ../Patches/liba52-fixed.diff)
485 endif
486 ifdef HAVE_WIN64
487 (cd $@ ; autoreconf -if)
488 endif
490 .a52: a52dec
491 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && cd liba52 && make && make install && cd ../include && make && make install)
492 touch $@
494 CLEAN_FILE += .a52
495 CLEAN_PKG += a52dec
496 DISTCLEAN_PKG += a52dec-$(A52DEC_VERSION).tar.gz
498 # ***************************************************************************
499 # mpeg2dec
500 # ***************************************************************************
502 libmpeg2-$(LIBMPEG2_VERSION).tar.gz:
503 $(WGET) $(LIBMPEG2_URL)
505 libmpeg2: libmpeg2-$(LIBMPEG2_VERSION).tar.gz
506 $(EXTRACT_GZ)
507 patch -p0 < Patches/libmpeg2-arm-pld.patch
508 cd libmpeg2 && patch -p0 < ../Patches/libmpeg2-mc-neon.patch
509 cd libmpeg2 && ./bootstrap
511 .mpeg2: libmpeg2
512 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --without-x --disable-sdl && cd libmpeg2 && make && make install && cd ../include && make && make install)
513 touch $@
515 CLEAN_FILE += .mpeg2
516 CLEAN_PKG += libmpeg2
517 DISTCLEAN_PKG += libmpeg2-$(LIBMPEG2_VERSION).tar.gz
519 # ***************************************************************************
520 # lua
521 # ***************************************************************************
523 LUA_MAKEPLATEFORM-$(ENABLED)=generic
524 LUA_MAKEPLATEFORM-$(HAVE_BSD)=bsd
525 LUA_MAKEPLATEFORM-$(HAVE_LINUX)=linux
526 LUA_MAKEPLATEFORM-$(HAVE_MACOSX)=macosx
527 LUA_MAKEPLATEFORM-$(HAVE_WIN32)=mingw
529 lua-$(LUA_VERSION).tar.gz:
530 $(WGET) $(LUA_URL)
532 lua: lua-$(LUA_VERSION).tar.gz
533 $(EXTRACT_GZ)
534 ifdef HAVE_MACOSX
535 (cd $@; sed -e 's%gcc%$(CC)%' -e 's%LDFLAGS=%LDFLAGS=$(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)%' -i.orig src/Makefile)
536 endif
538 .lua: lua
539 ifdef HAVE_WIN32
540 ( cd $< && sed -i.orig 's/lua luac/lua.exe/' Makefile && cd src && sed -i.orig 's/CC=/#CC=/' Makefile && sed -i 's/=strip/=$(STRIP)/;s/= ranlib/= $(RANLIB)/' Makefile && cd ../..)
541 (cd $<&& $(HOSTCC) make $(LUA_MAKEPLATEFORM-1)&& cd src&& $(HOSTCC) make liblua.a&& cd ..&&$(HOSTCC) make install INSTALL_TOP=$(PREFIX)&& $(RANLIB) $(PREFIX)/lib/liblua.a)
542 (cd $<&& sed -i.orig 's@prefix= /usr/local@prefix= $(PREFIX)@' etc/lua.pc&& mkdir -p $(PREFIX)/lib/pkgconfig&& cp etc/lua.pc $(PREFIX)/lib/pkgconfig)
543 else
544 (cd $<&& patch -p1) < Patches/lua-noreadline.patch
545 (cd $<&& $(HOSTCC) make $(LUA_MAKEPLATEFORM-1) && make install INSTALL_TOP=$(PREFIX))
546 endif
547 touch $@
549 CLEAN_FILE += .lua
550 CLEAN_PKG += lua
551 DISTCLEAN_PKG += lua-$(LUA_VERSION).tar.gz
553 # ***************************************************************************
554 # libmad
555 # ***************************************************************************
557 libmad-$(LIBMAD_VERSION).tar.gz:
558 $(WGET) $(LIBMAD_URL)
560 libmad: libmad-$(LIBMAD_VERSION).tar.gz
561 $(EXTRACT_GZ)
562 ifdef HAVE_MACOSX
563 ( cd $@; sed -e 's%-march=i486%$(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)%' -e 's%-dynamiclib%-dynamiclib -arch $(ARCH)%' -i.orig configure )
564 endif
566 .mad: libmad
567 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="-O3 $(NOTHUMB)" && make && make install)
568 $(INSTALL_NAME)
569 touch $@
571 CLEAN_FILE += .mad
572 CLEAN_PKG += libmad
573 DISTCLEAN_PKG += libmad-$(LIBMAD_VERSION).tar.gz
575 # ***************************************************************************
576 # ogg
577 # ***************************************************************************
579 libogg-$(OGG_VERSION).tar.gz:
580 $(WGET) $(OGG_URL)
582 libogg: libogg-$(OGG_VERSION).tar.gz
583 $(EXTRACT_GZ)
584 patch -p0 < Patches/libogg-1.1.patch
585 ifdef HAVE_WINCE
586 patch -p0 < Patches/libogg-wince.patch
587 endif
588 (cd $@; autoconf)
590 .ogg: libogg
591 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make install)
592 $(INSTALL_NAME)
593 touch $@
595 CLEAN_FILE += .ogg
596 CLEAN_PKG += libogg
597 DISTCLEAN_PKG += libogg-$(OGG_VERSION).tar.gz
599 # ***************************************************************************
600 # vorbis
601 # ***************************************************************************
603 libvorbis-$(VORBIS_VERSION).tar.gz:
604 $(WGET) $(VORBIS_URL)
606 libvorbis: libvorbis-$(VORBIS_VERSION).tar.gz
607 $(EXTRACT_GZ)
608 patch -p0 < Patches/vorbis-noapps.patch
610 .vorbis: libvorbis .ogg
611 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
612 # $(INSTALL_NAME)
613 touch $@
615 .vorbisenc: .vorbis .ogg
616 # $(INSTALL_NAME)
617 touch $@
619 CLEAN_FILE += .vorbis .vorbisenc
620 CLEAN_PKG += libvorbis
621 DISTCLEAN_PKG += libvorbis-$(VORBIS_VERSION).tar.gz
623 # ***************************************************************************
624 # tremor
625 # ***************************************************************************
627 ifdef SVN
628 tremor:
629 $(SVN) co http://svn.xiph.org/trunk/Tremor tremor
630 (cd $@ && patch -p0 < ../Patches/tremor.patch)
631 (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)
632 else
633 tremor-$(TREMOR_VERSION).tar.bz2:
634 echo "tremor snapshot does not exist, you MUST use subversion !"
635 exit -1
636 $(WGET) $(TREMOR_URL)
638 tremor: tremor-$(TREMOR_VERSION).tar.bz2
639 $(EXTRACT_BZ2)
640 endif
642 .tremor: tremor .ogg
643 (cd $<; $(HOSTCC) ./autogen.sh $(HOSTCONF) --prefix=$(PREFIX) --disable-shared CFLAGS="$(NOTHUMB)" && make && make install)
644 $(INSTALL_NAME)
645 touch $@
647 ifdef SVN
648 tremor-source: tremor
649 tar cv --exclude=.svn tremor | bzip2 > tremor-$(DATE).tar.bz2
651 SOURCE += tremor-source
652 endif
654 CLEAN_FILE += .tremor
655 CLEAN_PKG += tremor
656 #DISTCLEAN_PKG += tremor-$(TREMOR_VERSION).tar.bz2 #no tremor snapshot
658 # ***************************************************************************
659 # theora
660 # ***************************************************************************
662 libtheora-$(THEORA_VERSION).tar.bz2:
663 $(WGET) $(THEORA_URL)
665 libtheora: libtheora-$(THEORA_VERSION).tar.bz2
666 $(EXTRACT_BZ2)
667 patch -p0 < Patches/libtheora-includes.patch
668 ifdef HAVE_WIN64
669 (cd $@ ; autoreconf -if -I m4)
670 endif
672 THEORACONF = --disable-sdltest --disable-oggtest --disable-vorbistest --disable-examples
674 ifdef HAVE_MACOSX64
675 THEORACONF += --disable-asm
676 endif
677 ifdef HAVE_WIN64
678 THEORACONF += --disable-asm
679 endif
681 .theora: libtheora .ogg
682 ifdef HAVE_MACOSX
683 cd $<; ($(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(THEORACONF) && make && make install)
684 else
685 ifdef HAVE_WIN32
686 cd $<; $(HOSTCC) ./autogen.sh $(HOSTCONF) --prefix=$(PREFIX) $(THEORACONF)
687 endif
688 if test ! -f $</config.status; then \
689 cd $< ; \
690 $(HOSTCC) ./configure $(HOSTCONF) \
691 --prefix=$(PREFIX) $(THEORACONF) ; \
693 cd $< && make && make install
694 endif
695 $(INSTALL_NAME)
696 touch $@
698 CLEAN_FILE += .theora
699 CLEAN_PKG += libtheora
700 DISTCLEAN_PKG += libtheora-$(THEORA_VERSION).tar.bz2
702 # ***************************************************************************
703 # shout
704 # ***************************************************************************
706 libshout-$(SHOUT_VERSION).tar.gz:
707 $(WGET) $(SHOUT_URL)
709 libshout: libshout-$(SHOUT_VERSION).tar.gz
710 $(EXTRACT_GZ)
711 ifdef HAVE_WIN32
712 patch -p0 < Patches/libshout-win32.patch
713 endif
715 .shout: libshout .theora .ogg .speex .vorbis
716 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install )
717 $(INSTALL_NAME)
718 touch $@
720 CLEAN_FILE += .shout
721 CLEAN_PKG += libshout
722 DISTCLEAN_PKG += libshout-$(SHOUT_VERSION).tar.gz
724 # ***************************************************************************
725 # flac
726 # ***************************************************************************
728 flac-$(FLAC_VERSION).tar.gz:
729 $(WGET) $(FLAC_URL)
731 flac: flac-$(FLAC_VERSION).tar.gz
732 $(EXTRACT_GZ)
733 ifdef HAVE_WIN32
734 patch -p0 < Patches/flac-win32.patch
735 endif
736 ifdef HAVE_MACOSX
737 ( cd $@; sed -e 's%-dynamiclib%-dynamiclib -arch $(ARCH)%' -i.orig configure )
738 endif
739 patch -p0 < Patches/libFLAC-pc.patch
741 FLAC_DISABLE_FLAGS = --disable-oggtest --disable-xmms-plugin --disable-cpplibs
742 ifdef HAVE_MACOSX_ON_INTEL
743 FLAC_DISABLE_FLAGS += --disable-asm-optimizations
744 endif
746 .flac: flac .ogg
747 cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(FLAC_DISABLE_FLAGS)
748 cd $</src && make -C libFLAC && make -C libFLAC install
749 cd $< && make -C include install
750 $(INSTALL_NAME)
751 touch $@
753 CLEAN_FILE += .flac
754 CLEAN_PKG += flac
755 DISTCLEAN_PKG += flac-$(FLAC_VERSION).tar.gz
757 # ***************************************************************************
758 # speex
759 # ***************************************************************************
761 speex-$(SPEEX_VERSION).tar.gz:
762 $(WGET) $(SPEEX_URL)
764 speex: speex-$(SPEEX_VERSION).tar.gz
765 $(EXTRACT_GZ)
766 patch -p0 < Patches/speex.patch
768 .speex: speex
769 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-ogg=no && make && make install)
770 $(INSTALL_NAME)
771 touch $@
773 CLEAN_FILE += .speex
774 CLEAN_PKG += speex
775 DISTCLEAN_PKG += speex-$(SPEEX_VERSION).tar.gz
777 # ***************************************************************************
778 # faad2
779 # ***************************************************************************
781 faad2-$(FAAD2_VERSION).tar.gz:
782 $(WGET) $(FAAD2_URL)
784 faad2: faad2-$(FAAD2_VERSION).tar.gz
785 $(EXTRACT_GZ)
786 (cd $@; echo|$(CC) -iquote . -E - || sed -i 's/-iquote /-I/' libfaad/Makefile.am; autoreconf -ivf)
787 patch -p0 < Patches/faad-arm-fixed.patch
789 .faad: faad2
790 (cd $< && $(HOSTCC) ./configure $(HOSTCONF) --disable-shared --prefix=$(PREFIX) CFLAGS="-O3 $(NOTHUMB)" && sed -i.orig "s/shrext_cmds/shrext/g" libtool && make -C libfaad && make -C libfaad install)
791 touch $@
793 CLEAN_FILE += .faad
794 CLEAN_PKG += faad2
795 DISTCLEAN_PKG += faad2-$(FAAD2_VERSION).tar.gz
797 # ***************************************************************************
798 # libebml
799 # ***************************************************************************
801 libebml-$(LIBEBML_VERSION).tar.bz2:
802 $(WGET) $(LIBEBML_URL)
804 libebml: libebml-$(LIBEBML_VERSION).tar.bz2
805 $(EXTRACT_BZ2)
807 .ebml: libebml
808 ifdef HAVE_WIN32
809 (cd $<; make -C make/mingw32 prefix=$(PREFIX) $(HOSTCC) SHARED=no && make -C make/linux install_staticlib install_headers prefix=$(PREFIX) $(HOSTCC))
810 else
811 (cd $<; make -C make/linux prefix=$(PREFIX) $(HOSTCC) staticlib && make -C make/linux install_staticlib install_headers prefix=$(PREFIX))
812 $(RANLIB) $(PREFIX)/lib/libebml.a
813 endif
814 touch $@
816 CLEAN_FILE += .ebml
817 CLEAN_PKG += libebml
818 DISTCLEAN_PKG += libebml-$(LIBEBML_VERSION).tar.bz2
820 # ***************************************************************************
821 # libmatroska
822 # ***************************************************************************
824 libmatroska-$(LIBMATROSKA_VERSION).tar.bz2:
825 $(WGET) $(LIBMATROSKA_URL)
827 libmatroska: libmatroska-$(LIBMATROSKA_VERSION).tar.bz2
828 $(EXTRACT_BZ2)
830 .matroska: libmatroska .ebml
831 ifdef HAVE_WIN32
832 (cd $<; make -C make/mingw32 prefix=$(PREFIX) $(HOSTCC) SHARED=no EBML_DLL=no libmatroska.a && make -C make/linux install_staticlib install_headers prefix=$(PREFIX) $(HOSTCC))
833 else
834 (cd $<; make -C make/linux prefix=$(PREFIX) $(HOSTCC) staticlib && make -C make/linux install_staticlib install_headers prefix=$(PREFIX))
835 $(RANLIB) $(PREFIX)/lib/libmatroska.a
836 endif
837 touch $@
840 CLEAN_FILE += .matroska
841 CLEAN_PKG += libmatroska
842 DISTCLEAN_PKG += libmatroska-$(LIBMATROSKA_VERSION).tar.bz2
845 # ***************************************************************************
846 # libvp8
847 # ***************************************************************************
849 libvpx-$(VPX_VERSION).tar.bz2:
850 $(WGET) $(VPX_URL)
852 libvpx: libvpx-$(VPX_VERSION).tar.bz2
853 $(EXTRACT_BZ2)
855 ifdef HAVE_WIN32
856 CROSS=$(HOST)-
857 endif
859 VPX_TARGET-$(ENABLED) = --target=FIXME
860 VPX_TARGET-$(HAVE_LINUX) =
861 VPX_TARGET-$(HAVE_WIN32) = --target=x86-win32-gcc
862 VPX_TARGET-$(HAVE_DARWIN_OS) = --target=ppc32-darwin9-gcc
863 VPX_TARGET-$(HAVE_MACOSX_ON_INTEL) = --target=x86-darwin9-gcc
864 VPX_TARGET-$(HAVE_MACOSX64) = --target=x86_64-darwin9-gcc
865 VPX_DEPS-$(ENABLED) =
866 VPX_DEPS-$(HAVE_MACOSX_ON_INTEL) += .yasm
868 .libvpx: libvpx $(VPX_DEPS-1)
869 (cd $<; CROSS=$(CROSS) ./configure $(VPX_TARGET-1) --disable-install-bins --disable-install-srcs --disable-install-libs --disable-install-docs --disable-examples --disable-vp8-decoder && make && make install)
870 (rm -rf $(PREFIX)/include/vpx/ && mkdir -p $(PREFIX)/include/vpx/; cd $< && cp vpx/*.h vpx_ports/*.h $(PREFIX)/include/vpx/) # Of course, why the hell would one expect it to be listed or in make install?
871 rm $(PREFIX)/include/vpx/config.h
872 (cd $<; $(RANLIB) libvpx.a && mkdir -p $(PREFIX)/lib && cp libvpx.a $(PREFIX)/lib/) # Of course, why the hell would one expect it to be listed or in make install?
873 touch $@
875 CLEAN_FILE += .libvpx
876 CLEAN_PKG += libvpx
877 DISTCLEAN_PKG += libvpx-$(VPX_VERSION).tar.bz2
879 # ***************************************************************************
880 # lame
881 # ***************************************************************************
883 lame-$(LAME_VERSION).tar.gz:
884 $(WGET) $(LAME_URL)
886 lame: lame-$(LAME_VERSION).tar.gz
887 $(EXTRACT_GZ)
889 .lame: lame
890 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-analyser-hooks --disable-decoder --disable-shared --disable-gtktest --disable-frontend && make && make install)
891 touch $@
893 CLEAN_FILE += .lame
894 CLEAN_PKG += lame
895 DISTCLEAN_PKG += lame-$(LAME_VERSION).tar.gz
898 # ***************************************************************************
899 # libamrnb
900 # ***************************************************************************
902 amrnb-$(LIBAMR_NB_VERSION).tar.bz2:
903 $(WGET) $(LIBAMR_NB)
905 libamrnb: amrnb-$(LIBAMR_NB_VERSION).tar.bz2
906 $(EXTRACT_BZ2)
908 .libamrnb: libamrnb
909 (cd $<; $(HOSTCC) ./configure --prefix=$(PREFIX) --enable-shared && make && make install)
910 touch $@
912 CLEAN_FILE += .libamrnb
913 CLEAN_PKG += libamrnb
914 DISTCLEAN_PKG += amrnb-$(LIBAMR_NB_VERSION).tar.bz2
916 # ***************************************************************************
917 # libamrwb
918 # ***************************************************************************
920 amrwb-$(LIBAMR_WB_VERSION).tar.bz2:
921 $(WGET) $(LIBAMR_WB)
923 libamrwb: amrwb-$(LIBAMR_WB_VERSION).tar.bz2
924 $(EXTRACT_BZ2)
926 .libamrwb: libamrwb
927 (cd $<; $(HOSTCC) ./configure --prefix=$(PREFIX) --enable-shared && make && make install)
928 touch $@
931 CLEAN_FILE += .libamrwb
932 CLEAN_PKG += libamrwb
933 DISTCLEAN_PKG += amrwb-$(LIBAMR_WB_VERSION).tar.bz2
935 # ***************************************************************************
936 # ffmpeg
937 # ***************************************************************************
939 #Common configuration
940 FFMPEGCONF = --disable-doc \
941 --disable-decoder=libvpx \
942 --disable-debug \
943 --enable-gpl \
944 --enable-postproc \
945 --disable-ffprobe \
946 --disable-ffserver \
947 --disable-ffmpeg \
948 --disable-ffplay \
949 --disable-avconv \
950 --disable-devices \
951 --disable-protocols \
952 --disable-avfilter \
953 --disable-network
955 FFMPEGCONFSMALL = --disable-encoders --disable-muxers
956 FFMPEGCONFNEON = --cpu=cortex-a8 --disable-runtime-cpudetect --enable-neon
958 #Cross-Compilation
959 ifdef HAVE_CROSS_COMPILE
960 FFMPEGCONF += --enable-cross-compile
961 endif
963 ifdef HAVE_CROSS_COMPILE_NEEDS_CROSS_PREFIX
964 ifndef HAVE_ANDROID
965 ifndef HAVE_SYMBIAN
966 FFMPEGCONF += --cross-prefix=$(HOST)-
967 else
968 FFMPEGCONF += --cross-prefix=arm-none-symbianelf- --arch=armv6 --disable-asm --target-os=none
969 FFMPEGCONF += $(FFMPEGCONFSMALL)
970 endif
971 else
972 FFMPEGCONF += --cross-prefix=arm-linux-androideabi- --arch=armv6
973 FFMPEGCONF += $(FFMPEGCONFSMALL)
974 endif
975 endif
977 ifdef CC
978 FFMPEGCONF += --cc="$(CC)"
979 endif
982 # Special target-dependant options
984 ifndef HAVE_UCLIBC
985 ifndef HAVE_WINCE
986 ifndef HAVE_IOS
987 ifndef HAVE_ANDROID
988 FFMPEGCONF+= --enable-libmp3lame --enable-libgsm
989 endif
990 endif
991 endif
992 endif
994 # MacOS X
995 ifdef HAVE_MACOSX_ON_INTEL
996 FFMPEGCONF += --enable-memalign-hack
997 endif
999 ifdef HAVE_DARWIN_OS
1000 FFMPEGCONF += --arch=$(ARCH) --target-os=darwin
1001 endif
1003 ifdef HAVE_MACOSX32
1004 FFMPEGCONF += --enable-libvpx
1005 FFMPEGCONF += --cc=gcc-4.2
1006 endif
1008 ifdef HAVE_MACOSX64
1009 FFMPEGCONF += --enable-libvpx
1010 FFMPEGCONF += --cc=gcc-4.2
1011 FFMPEGCONF += --cpu=core2
1012 endif
1014 ifdef HAVE_MACOSX_ON_INTEL
1015 FFMPEG_CFLAGS += -DHAVE_LRINTF
1016 endif
1018 ifdef HAVE_IOS
1019 FFMPEGCONF += --sysroot=${IOS_SDK_ROOT}
1020 ifeq ($(ARCH),arm)
1021 FFMPEGCONF += $(FFMPEGCONFNEON)
1022 else
1023 FFMPEGCONF += --disable-mmx
1024 endif
1025 endif #IOS
1027 # Linux
1028 ifdef HAVE_LINUX
1029 FFMPEGCONF += --target-os=linux --enable-pic
1030 endif
1032 ifdef HAVE_MAEMO
1033 ifneq ($(filter -m%=cortex-a8, $(EXTRA_CFLAGS)),)
1034 FFMPEGCONF += $(FFMPEGCONFNEON)
1035 endif
1036 endif
1038 ifdef HAVE_ANDROID
1039 ifdef HAVE_NEON
1040 FFMPEGCONF += $(FFMPEGCONFNEON)
1041 FFMPEG_CFLAGS +=-mfloat-abi=softfp -mfpu=neon
1042 endif
1043 endif
1045 ifdef HAVE_UCLIBC
1046 ifdef HAVE_BIGENDIAN
1047 FFMPEGCONF+= --arch=armeb --enable-armv5te --enable-iwmmxt
1048 else
1049 FFMPEGCONF+= --arch=armv4l
1050 endif
1051 FFMPEGCONF+= --enable-small --disable-mpegaudio-hp
1052 FFMPEG_CFLAGS += -DHAVE_LRINTF --std=c99
1053 endif
1055 # Win32
1056 ifdef HAVE_WIN32
1057 FFMPEGCONF+= --target-os=mingw32 --arch=x86 --enable-memalign-hack
1058 FFMPEGCONF += --disable-bzlib --disable-decoder=dca --disable-encoder=vorbis \
1059 --enable-libmp3lame --enable-w32threads --disable-bsfs
1060 ifdef HAVE_WIN64
1061 FFMPEGCONF += --disable-dxva2
1062 FFMPEGCONF+= --cpu=athlon64 --arch=x86_64
1063 else # !WIN64
1064 FFMPEGCONF += --enable-dxva2 --enable-libvpx
1065 FFMPEGCONF+= --cpu=i686
1066 endif
1067 endif
1069 # WinCE
1070 ifdef HAVE_WINCE
1071 FFMPEGCONF+= --target-os=mingw32ce --arch=armv4l --cpu=armv4t \
1072 --disable-decoder=snow --disable-decoder=vc9 \
1073 --disable-decoder=wmv3 --disable-decoder=vorbis \
1074 --disable-decoder=dvdsub --disable-decoder=dvbsub
1075 FFMPEGCONF += $(FFMPEGCONFSMALL)
1076 endif
1078 ifndef HAVE_WIN32
1079 FFMPEGCONF += --enable-pthreads
1080 FFMPEG_CFLAGS += --std=gnu99
1081 endif
1083 ifdef GIT
1085 ffmpeg:
1086 $(GIT) clone $(FFMPEG_GIT)
1087 ifdef HAVE_ISA_THUMB
1088 patch -p0 < Patches/ffmpeg-avcodec-no-thumb.patch
1089 endif
1090 ifdef HAVE_UCLIBC
1091 patch -p0 < Patches/ffmpeg-svn-uclibc.patch
1092 patch -p0 < Patches/ffmpeg-svn-internal-define.patch
1093 patch -p0 < Patches/ffmpeg-svn-libavformat.patch
1094 endif
1095 ifdef HAVE_WIN32
1096 sed -i "s/std=c99/std=gnu99/" ffmpeg/configure
1097 endif
1098 touch $@
1100 else
1102 ffmpeg:
1103 echo "ffmpeg snapshot is too old, you MUST use git !"
1104 exit 1
1106 endif
1108 ifeq ($(ARCH),armel)
1109 HAVE_ARMELF=1
1110 endif
1112 FFMPEG_DEPS-$(ENABLED) = .lame .gsm .libvpx .zlib
1113 FFMPEG_DEPS-$(HAVE_WINCE) = .zlib
1114 FFMPEG_DEPS-$(HAVE_UCLIBC) =
1115 FFMPEG_DEPS-$(HAVE_IOS) =
1116 FFMPEG_DEPS-$(HAVE_WIN64) = .lame .gsm .zlib
1117 FFMPEG_DEPS-$(HAVE_ARMELF) = .lame .gsm .zlib
1118 FFMPEG_DEPS-$(HAVE_MACOSX) += .yasm
1119 FFMPEG_DEPS-$(HAVE_WIN32) += .dshow_headers
1120 FFMPEG_DEPS-$(HAVE_ANDROID) =
1121 FFMPEG_DEPS-$(HAVE_SYMBIAN) =
1123 .ffmpeg: ffmpeg $(FFMPEG_DEPS-1)
1124 (cd ffmpeg; $(HOSTCC) ./configure --prefix=$(PREFIX) --extra-cflags="$(FFMPEG_CFLAGS) -DHAVE_STDINT_H" --extra-ldflags="$(LDFLAGS)" $(FFMPEGCONF) --disable-shared --enable-static && make && make install-libs install-headers)
1125 touch $@
1127 ifdef GIT
1128 ffmpeg-source: ffmpeg
1129 tar cv --exclude=.git ffmpeg | bzip2 > ffmpeg-$(DATE).tar.bz2
1131 SOURCE += ffmpeg-source
1132 endif
1134 CLEAN_FILE += .ffmpeg
1135 CLEAN_PKG += ffmpeg
1137 # ***************************************************************************
1138 # libdvdcss
1139 # ***************************************************************************
1141 libdvdcss-$(LIBDVDCSS_VERSION).tar.bz2:
1142 $(WGET) $(LIBDVDCSS_URL)
1144 # ifdef SVN
1145 # libdvdcss:
1146 # $(SVN) co svn://svn.videolan.org/libdvdcss/trunk libdvdcss
1147 # cd $@ && sh bootstrap
1148 # else
1149 libdvdcss: libdvdcss-$(LIBDVDCSS_VERSION).tar.bz2
1150 $(EXTRACT_BZ2)
1151 # endif
1153 .dvdcss: libdvdcss
1154 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --disable-doc --prefix=$(PREFIX) && make && make install)
1155 $(INSTALL_NAME)
1156 touch $@
1158 # ifdef SVN
1159 # libdvdcss-source: libdvdcss
1160 # tar cv --exclude=.svn libdvdcss | bzip2 > libdvdcss-$(DATE).tar.bz2
1162 # SOURCE += libdvdcss-source
1163 # endif
1165 CLEAN_FILE += .dvdcss
1166 CLEAN_PKG += libdvdcss
1167 DISTCLEAN_PKG += libdvdcss-$(LIBDVDCSS_VERSION).tar.bz2
1169 # ***************************************************************************
1170 # libdvdread: We use dvdnav's dvdread
1171 # ***************************************************************************
1172 libdvdread-$(LIBDVDREAD_VERSION).tar.bz2:
1173 $(WGET) $(LIBDVDREAD_URL)
1175 libdvdread: libdvdread-$(LIBDVDREAD_VERSION).tar.bz2
1176 $(EXTRACT_BZ2)
1177 (cd $@; patch -p 0 < ../Patches/libdvdread-dvdcss-static.patch)
1178 ifdef HAVE_WIN32
1179 (cd $@; patch -p 0 < ../Patches/libdvdread-win32.patch)
1180 endif
1181 (cd $@; sh autogen.sh noconfig)
1183 .libdvdread: libdvdread .dvdcss
1184 (cd libdvdread; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --with-libdvdcss=$(PREFIX) && make && make install)
1185 $(INSTALL_NAME)
1186 touch $@
1188 CLEAN_FILE += .libdvdread
1189 CLEAN_PKG += libdvdread
1190 DISTCLEAN_PKG += libdvdread-$(LIBDVDREAD_VERSION).tar.bz2
1192 # ***************************************************************************
1193 # libdvdnav
1194 # ***************************************************************************
1196 libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2:
1197 $(WGET) $(LIBDVDNAV_URL)
1199 libdvdnav: libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2
1200 $(EXTRACT_BZ2)
1201 patch -p0 < Patches/libdvdnav.patch
1202 (cd $@; ./autogen.sh noconfig)
1204 .dvdnav: libdvdnav .libdvdread
1205 ifdef HAVE_WIN32
1206 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --enable-static --prefix=$(PREFIX) && make && make install)
1207 else
1208 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --enable-static --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" && make && make install)
1209 endif
1210 $(INSTALL_NAME)
1211 touch $@
1213 CLEAN_FILE += .dvdnav
1214 CLEAN_PKG += libdvdnav
1215 DISTCLEAN_PKG += libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2
1217 # ***************************************************************************
1218 # libbluray
1219 # ***************************************************************************
1221 libbluray:
1222 $(GIT) clone git://git.videolan.org/libbluray.git
1224 .libbluray: libbluray
1225 (cd $<; ./bootstrap; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1226 $(INSTALL_NAME)
1227 touch $@
1229 CLEAN_FILE += .libbluray
1230 CLEAN_PKG += libbluray
1233 # ***************************************************************************
1234 # libdvbpsi
1235 # ***************************************************************************
1237 libdvbpsi-$(LIBDVBPSI_VERSION).tar.gz:
1238 $(WGET) $(LIBDVBPSI_URL)
1240 libdvbpsi: libdvbpsi-$(LIBDVBPSI_VERSION).tar.gz
1241 $(EXTRACT_GZ)
1242 patch -p0 < Patches/libdvbpsi_example.patch
1244 .dvbpsi: libdvbpsi
1245 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-release && cd src && make && make install)
1246 touch $@
1248 CLEAN_FILE += .dvbpsi
1249 CLEAN_PKG += libdvbpsi
1250 DISTCLEAN_PKG += libdvbpsi-$(LIBDVBPSI_VERSION).tar.gz
1252 # ***************************************************************************
1253 # live
1254 # ***************************************************************************
1256 live555-$(LIVEDOTCOM_VERSION).tar.gz:
1257 $(WGET) $(LIVEDOTCOM_URL)
1259 live: live555-$(LIVEDOTCOM_VERSION).tar.gz
1260 $(EXTRACT_GZ)
1261 chmod -R u+w live
1262 patch -p0 < Patches/live-uselocale.patch
1263 patch -p0 < Patches/live-inet_ntop.patch
1264 ifdef HAVE_WIN64
1265 patch -p0 < Patches/live-win64.patch
1266 endif
1267 ifndef HAVE_WIN32
1268 ifndef HAVE_WINCE
1269 patch -p0 < Patches/live-getaddrinfo.patch
1270 endif
1271 endif
1273 LIVE_TARGET-$(ENABLED) = linux
1274 LIVE_TARGET-$(HAVE_WIN32) = mingw
1275 LIVE_TARGET-$(HAVE_WINCE) = mingw
1276 LIVE_TARGET-$(HAVE_DARWIN_OS) = macosx
1278 ifeq ($(ARCH)$(HAVE_MAEMO),armel)
1279 LIVE_TARGET-$(ENABLED) = armlinux
1280 endif
1282 ifdef HAVE_BIGENDIAN
1283 LIVE_TARGET-$(HAVE_UCLIBC) = armeb-uclib
1284 endif
1286 LIVE_PATCH-$(ENABLED) =
1287 LIVE_PATCH-$(HAVE_WINCE) = sed -e 's/-lws2_32/-lws2/g' -i.orig config.mingw
1288 LIVE_PATCH-$(HAVE_DARWIN_OS) = sed -e 's%-DBSD=1%-DBSD=1\ $(EXTRA_CFLAGS)\ $(EXTRA_LDFLAGS)%' -e 's%cc%$(CC)%' -e 's%c++%$(CXX)\ $(EXTRA_LDFLAGS)%' -i.orig config.macosx
1289 LIVE_PATCH-$(HAVE_LINUX) = sed -e 's/=/= EXTRA_CPPFLAGS/' -e 's%EXTRA_CPPFLAGS%-I/include%' -i.orig groupsock/Makefile.head
1291 ifndef HAVE_UCLIBC
1292 ifneq ($(ARCH)$(HAVE_MAEMO),armel)
1293 LIVE_PATCH-$(HAVE_LINUX) += ; sed -e 's%-D_FILE_OFFSET_BITS=64%-D_FILE_OFFSET_BITS=64\ -fPIC\ -DPIC%' -i.orig config.linux
1294 endif
1295 endif
1297 .live: live
1298 (cd $<; $(LIVE_PATCH-1) )
1299 (cd $<; ./genMakefiles $(LIVE_TARGET-1) && make $(HOSTCC))
1300 mkdir -p $(PREFIX)/lib $(PREFIX)/include
1301 cp $</groupsock/libgroupsock.a $(PREFIX)/lib
1302 cp $</liveMedia/libliveMedia.a $(PREFIX)/lib
1303 cp $</UsageEnvironment/libUsageEnvironment.a $(PREFIX)/lib
1304 cp $</BasicUsageEnvironment/libBasicUsageEnvironment.a $(PREFIX)/lib
1305 cp $</groupsock/include/*.hh $</groupsock/include/*.h $(PREFIX)/include
1306 cp $</liveMedia/include/*.hh $(PREFIX)/include
1307 cp $</UsageEnvironment/include/*.hh $(PREFIX)/include
1308 cp $</BasicUsageEnvironment/include/*.hh $(PREFIX)/include
1309 touch $@
1311 CLEAN_FILE += .live
1312 CLEAN_PKG += live
1313 DISTCLEAN_PKG += live555-$(LIVEDOTCOM_VERSION).tar.gz
1315 # ***************************************************************************
1316 # goom2k4
1317 # ***************************************************************************
1319 goom$(GOOM2k4_VERSION).tar.gz:
1320 $(WGET) $(GOOM2k4_URL)
1321 mv goom-$(GOOM2k4_VERSION)-src.tar.gz goom$(GOOM2k4_VERSION).tar.gz
1323 goom: goom$(GOOM2k4_VERSION).tar.gz
1324 $(EXTRACT_GZ)
1325 ifdef HAVE_WIN32
1326 (cd $@; fromdos configure.in)
1327 patch -p0 < Patches/goom2k4-0-win32.patch
1328 else
1329 patch -p0 < Patches/goom2k4-0-mmx.patch
1330 endif
1331 patch -p0 < Patches/goom2k4-0-memleaks.patch
1332 patch -p0 < Patches/goom2k4-autotools.patch
1333 ifdef HAVE_MACOSX
1334 patch -p0 < Patches/goom2k4-osx.patch
1335 endif
1336 patch -p0 < Patches/goom2k4-noxmmx.patch
1337 patch -p0 < Patches/goom2k4-xmmslibdir.patch
1338 (cd $@; rm -f configure; autoreconf -ivf)
1340 .goom2k4: goom
1341 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static --disable-glibtest --disable-gtktest && make && make install)
1342 touch $@
1344 CLEAN_FILE += .goom2k4
1345 CLEAN_PKG += goom
1346 DISTCLEAN_PKG += goom$(GOOM2k4_VERSION).tar.gz
1348 # ***************************************************************************
1349 # libcaca
1350 # ***************************************************************************
1352 libcaca-$(LIBCACA_VERSION).tar.gz:
1353 $(WGET) $(LIBCACA_URL)
1355 libcaca: libcaca-$(LIBCACA_VERSION).tar.gz
1356 $(EXTRACT_GZ)
1357 ifdef HAVE_MACOSX
1358 patch -p0 < Patches/libcaca-osx-sdkofourchoice.patch
1359 (cd $@; sed -e 's%/Developer/SDKs/MacOSX10.4u.sdk%$(MACOSX_SDK)%' -i.orig configure)
1360 endif
1361 ifdef HAVE_WIN32
1362 patch -p0 < Patches/libcaca-win32-static.patch
1363 endif
1366 .caca: libcaca
1367 ifdef HAVE_MACOSX
1368 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-imlib2 --disable-doc --disable-ruby --disable-csharp --disable-cxx --disable-x11 && cd caca && make && make install)
1369 else
1370 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-imlib2 --disable-doc --disable-ruby --disable-csharp --disable-cxx && cd caca && make && make install)
1371 endif
1372 touch $@
1374 CLEAN_FILE += .caca
1375 CLEAN_PKG += libcaca
1376 DISTCLEAN_PKG += libcaca-$(LIBCACA_VERSION).tar.gz
1378 # ***************************************************************************
1379 # libdca
1380 # ***************************************************************************
1382 libdca-$(LIBDCA_VERSION).tar.bz2:
1383 $(WGET) $(LIBDCA_URL)
1385 libdca: libdca-$(LIBDCA_VERSION).tar.bz2
1386 $(EXTRACT_BZ2)
1387 ifdef HAVE_MACOSX_DARWIN_9
1388 ( cd $@; patch -p0 < ../Patches/libdca-llvm-gcc.patch )
1389 endif
1391 .dca: libdca
1392 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1393 $(INSTALL_NAME)
1394 touch $@
1396 CLEAN_FILE += .dca
1397 CLEAN_PKG += libdca
1398 DISTCLEAN_PKG += libdca-$(LIBDCA_VERSION).tar.bz2
1400 # ***************************************************************************
1401 # libx264
1402 # ***************************************************************************
1404 ifdef HAVE_MACOSX
1405 X264CONF =--host=$(HOST)
1406 X264CONF += --enable-pic
1407 ifdef HAVE_MACOSX64
1408 X264CONF +=--host=x86_64-apple-darwin10
1409 endif
1410 endif
1412 ifdef HAVE_CROSS_COMPILE_NEEDS_CROSS_PREFIX
1413 X264CONF=--host=$(HOST)
1414 endif
1416 ifdef HAVE_LINUX
1417 X264CONF += --enable-pic
1418 endif
1420 X264CONF += --disable-avs --disable-lavf --disable-ffms --enable-static --disable-cli
1422 x264-$(X264_VERSION).tar.gz:
1423 $(WGET) $(X264_URL)
1425 ifdef GIT
1426 x264:
1427 $(GIT) clone git://git.videolan.org/x264.git
1428 else
1429 x264:
1430 echo "x264 snapshot is too old, you MUST use Git !"
1431 exit -1
1433 endif
1435 ifdef HAVE_WIN32
1436 .x264: x264
1437 (cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" --enable-win32thread && make && make install)
1438 else
1439 ifdef HAVE_MACOSX_ON_INTEL
1440 .x264: x264 .yasm
1441 (cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" && make && make install)
1442 else
1443 .x264: x264
1444 (cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" && make && make install)
1445 endif
1446 endif
1447 touch $@
1449 ifdef GIT
1450 x264-source: x264
1451 cd x264 && \
1452 git archive --format=tar HEAD | bzip2 > ../x264-$(DATE).tar.bz2
1454 SOURCE += x264-source
1455 endif
1457 CLEAN_FILE += .x264
1458 CLEAN_PKG += x264
1459 DISTCLEAN_PKG += x264-$(X264_VERSION).tar.gz
1461 # ***************************************************************************
1462 # libmodplug
1463 # ***************************************************************************
1465 libmodplug-$(MODPLUG_VERSION).tar.gz:
1466 $(WGET) $(MODPLUG_URL)
1468 libmodplug: libmodplug-$(MODPLUG_VERSION).tar.gz
1469 $(EXTRACT_GZ)
1471 .mod: libmodplug
1472 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
1473 touch $@
1475 CLEAN_FILE += .mod
1476 CLEAN_PKG += libmodplug
1477 DISTCLEAN_PKG += libmodplug-$(MODPLUG_VERSION).tar.gz
1479 # ***************************************************************************
1480 # libcddb
1481 # ***************************************************************************
1483 libcddb-$(CDDB_VERSION).tar.bz2:
1484 $(WGET) $(CDDB_URL)
1486 libcddb: libcddb-$(CDDB_VERSION).tar.bz2
1487 $(EXTRACT_BZ2)
1488 ifneq ($(HOST),$(BUILD))
1489 (cd $@; patch -p0 < ../Patches/libcddb-cross.patch )
1490 (cd $@; autoreconf -fisv)
1491 endif
1492 ifdef HAVE_WIN32
1493 (cd $@; patch -p0 < ../Patches/libcddb-win32.patch )
1494 endif
1495 ifdef HAVE_DARWIN_OS
1496 (cd $@; patch -p0 < ../Patches/libcddb-darwin.patch )
1497 endif
1498 patch -p0 < Patches/libcddb-getenv-crash.patch
1500 ifdef HAVE_WIN32
1501 .cddb: libcddb .regex
1502 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static --without-iconv CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" && make && make install)
1503 else
1504 ifdef HAVE_DARWIN_OS
1505 .cddb: libcddb
1506 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static --without-iconv CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" LDFLAGS="$(LDFLAGS)" && make && make install)
1507 else
1508 .cddb: libcddb
1509 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" LDFLAGS="$(LDFLAGS) -liconv" && make && make install)
1510 endif
1511 endif
1512 touch $@
1514 CLEAN_FILE += .cddb
1515 CLEAN_PKG += libcddb
1516 DISTCLEAN_PKG += libcddb-$(CDDB_VERSION).tar.bz2
1518 # ***************************************************************************
1519 # vcdimager
1520 # ***************************************************************************
1522 vcdimager-$(VCDIMAGER_VERSION).tar.gz:
1523 $(WGET) $(VCDIMAGER_URL)
1525 vcdimager: vcdimager-$(VCDIMAGER_VERSION).tar.gz
1526 $(EXTRACT_GZ)
1528 .vcdimager: vcdimager .cdio
1529 ifdef HAVE_MACOSX
1530 (cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static LDFLAGS="$(LDFLAGS) -framework CoreFoundation -framework IOKit" && make && make install)
1531 else
1532 (cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
1533 endif
1534 touch $@
1536 CLEAN_FILE += .vcdimager
1537 CLEAN_PKG += vcdimager
1538 DISTCLEAN_PKG += vcdimager-$(VCDIMAGER_VERSION).tar.gz
1540 # ***************************************************************************
1541 # libcdio
1542 # ***************************************************************************
1544 libcdio-$(CDIO_VERSION).tar.gz:
1545 $(WGET) $(CDIO_URL)
1547 libcdio: libcdio-$(CDIO_VERSION).tar.gz
1548 $(EXTRACT_GZ)
1549 patch -p0 < Patches/libcdio-install-cdparanoia-pc.patch
1550 ifdef HAVE_MACOSX
1551 patch -p0 < Patches/libcdio-modernOSX.patch
1552 endif
1554 .cdio: libcdio
1555 ifdef HAVE_DARWIN_OS
1556 (cd $<; ./configure --prefix=$(PREFIX) --without-vcdinfo --disable-shared && make && make install && sed -e 's%/usr/lib/libiconv.la%%' -i.orig $(PREFIX)/lib/libcdio.la && sed -e 's%/usr/lib/libiconv.la%%' -i.orig $(PREFIX)/lib/libiso9660.la)
1557 else
1558 (cd $<; sed -e 's%@ENABLE_CPP_TRUE@SUBDIRS = C++%@ENABLE_CPP_TRUE@SUBDIRS = %' -i.orig example/Makefile.in && autoreconf -fisv && ./configure --prefix=$(PREFIX) --without-vcdinfo --disable-shared && make && make install)
1559 endif
1560 touch $@
1562 CLEAN_FILE += .cdio
1563 CLEAN_PKG += libcdio
1564 DISTCLEAN_PKG += libcdio-$(CDIO_VERSION).tar.gz
1566 # ***************************************************************************
1567 # qt4 (win32 binary)
1568 # ***************************************************************************
1570 qt4-$(QT4_VERSION)-win32-bin.tar.bz2:
1571 $(WGET) $(QT4_URL)
1573 qt4_win32: qt4-$(QT4_VERSION)-win32-bin.tar.bz2
1574 $(EXTRACT_BZ2)
1575 chmod -R 755 qt4_win32
1577 .qt4_win32: qt4_win32
1578 (cd qt4_win32;mkdir -p $(PREFIX)/bin; mkdir -p $(PREFIX)/include;mkdir -p $(PREFIX)/lib/pkgconfig;rm -f $(PREFIX)/lib/pkgconfig/Qt*; sed 's,@@PREFIX@@,$(PREFIX),' lib/pkgconfig/QtCore.pc.in > $(PREFIX)/lib/pkgconfig/QtCore.pc;sed 's,@@PREFIX@@,$(PREFIX),' lib/pkgconfig/QtGui.pc.in > $(PREFIX)/lib/pkgconfig/QtGui.pc;cp -r include/* $(PREFIX)/include;cp lib/*a $(PREFIX)/lib)
1579 ifeq ($(BUILD),i686-pc-cygwin)
1580 (cd qt4_win32;cp bin/*.exe $(PREFIX)/bin)
1581 else
1582 (cd qt4_win32;cp bin/* $(PREFIX)/bin)
1583 endif
1584 touch $@
1586 CLEAN_FILE += .qt4_win32
1587 CLEAN_PKG += qt4_win32
1588 DISTCLEAN_PKG += qt4-$(QT4_VERSION)-win32-bin.tar.bz2
1590 # ***************************************************************************
1591 # qt4 (Mac)
1592 # ***************************************************************************
1594 qt-mac-opensource-$(QT4_MAC_VERSION).dmg:
1595 $(WGET) $(QT4_MAC_URL)
1597 qt4_mac: qt-mac-opensource-$(QT4_MAC_VERSION).dmg
1599 .qt4_mac: qt4_mac
1600 cp Patches/QtCoreMac.pc.in $(PREFIX)/lib/pkgconfig/QtCore.pc
1601 cp Patches/QtGuiMac.pc.in $(PREFIX)/lib/pkgconfig/QtGui.pc
1602 touch $@
1604 CLEAN_FILE += .qt4_mac
1605 CLEAN_PKG += qt4_mac
1606 DISTCLEAN_PKG += qt-mac-opensource-$(QT4_MAC_VERSION).dmg
1608 # ***************************************************************************
1609 # zlib
1610 # ***************************************************************************
1612 zlib-$(ZLIB_VERSION).tar.gz:
1613 $(WGET) $(ZLIB_URL)
1615 zlib: zlib-$(ZLIB_VERSION).tar.gz
1616 $(EXTRACT_GZ)
1617 patch -p0 < Patches/zlib-wince.patch
1618 patch -p0 < Patches/zlib-static.patch
1620 .zlib: zlib
1621 (cd zlib; $(HOSTCC) ./configure --prefix=$(PREFIX) --static && make install)
1622 $(INSTALL_NAME)
1623 touch $@
1625 CLEAN_FILE += .zlib
1626 CLEAN_PKG += zlib
1627 DISTCLEAN_PKG += zlib-$(ZLIB_VERSION).tar.gz
1629 # ***************************************************************************
1630 # PortAudio
1631 # ***************************************************************************
1633 pa_stable_v$(PORTAUDIO_VERSION).tgz:
1634 $(WGET) $(PORTAUDIO_URL)
1636 portaudio: pa_stable_v$(PORTAUDIO_VERSION).tgz
1637 $(EXTRACT_GZ)
1638 ifneq ($(HOST),$(BUILD))
1639 (patch -p0 < Patches/portaudio-cross.patch;cd $@; autoconf)
1640 endif
1642 .portaudio: portaudio
1643 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1644 $(INSTALL_NAME)
1645 touch $@
1647 CLEAN_FILE += .portaudio
1648 CLEAN_PKG += portaudio
1649 DISTCLEAN_PKG += pa_stable_v$(PORTAUDIO_VERSION).tgz
1651 # ***************************************************************************
1652 # xml
1653 # ***************************************************************************
1655 libxml2-$(XML_VERSION).tar.gz:
1656 $(WGET) $(XML_URL)
1658 xml: libxml2-$(XML_VERSION).tar.gz
1659 $(EXTRACT_GZ)
1660 ifdef HAVE_UCLIBC
1661 patch -p0 < Patches/xml2-uclibc.patch
1662 endif
1664 XMLCONF = --with-minimal --with-catalog --with-reader --with-tree --with-push --with-xptr --with-valid --with-xpath --with-xinclude --with-sax1 --without-zlib --without-iconv --without-http --without-ftp --without-debug --without-docbook --without-regexps --without-python
1666 .xml: xml
1667 ifdef HAVE_CYGWIN
1668 (cd xml; ac_cv_header_pthread_h="no" CFLAGS="-DLIBXML_STATIC" $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(XMLCONF) && make && make install)
1669 else
1670 (cd xml; CFLAGS="-DLIBXML_STATIC" $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(XMLCONF) && make && make install)
1671 endif
1672 ifndef HAVE_MACOSX
1673 $(INSTALL_NAME)
1674 endif
1675 touch $@
1677 CLEAN_FILE += .xml
1678 CLEAN_PKG += xml
1679 DISTCLEAN_PKG += libxml2-$(XML_VERSION).tar.gz
1681 # ***************************************************************************
1682 # twolame
1683 # ***************************************************************************
1685 twolame-$(TWOLAME_VERSION).tar.gz:
1686 $(WGET) $(TWOLAME_URL)
1688 twolame: twolame-$(TWOLAME_VERSION).tar.gz
1689 $(EXTRACT_GZ)
1690 ifdef HAVE_WIN32
1691 (cd twolame/win32; $(WGET) "http://twolame.svn.sourceforge.net/viewvc/*checkout*/twolame/trunk/win32/winutil.h")
1692 endif
1694 .twolame: twolame
1695 (cd twolame; $(HOSTCC) CFLAGS="${CFLAGS} -DLIBTWOLAME_STATIC" ./configure $(HOSTCONF) --prefix=$(PREFIX) && cd libtwolame && make && make install && cd .. && make install-data)
1696 $(INSTALL_NAME)
1697 touch $@
1699 CLEAN_FILE += .twolame
1700 CLEAN_PKG += twolame
1701 DISTCLEAN_PKG += twolame-$(TWOLAME_VERSION).tar.gz
1703 # ***************************************************************************
1704 # libpng
1705 # ***************************************************************************
1707 libpng-$(PNG_VERSION).tar.bz2:
1708 $(WGET) $(PNG_URL)
1710 libpng: libpng-$(PNG_VERSION).tar.bz2
1711 $(EXTRACT_BZ2)
1712 ifdef HAVE_WIN32
1713 (cd $@; cat ../Patches/libpng-win32.patch | sed s,??PREFIX??,$(PREFIX), | patch -p0)
1714 else
1715 (cat Patches/libpng-osx.patch | sed -e 's%??PREFIX??%$(PREFIX)%' -e 's%??EXTRA_CFLAGS??%$(EXTRA_CFLAGS)%' -e 's%??EXTRA_LDFLAGS??%$(EXTRA_LDFLAGS)%' | patch -p0)
1716 endif
1717 (patch -p0 < Patches/libpng-makefile.patch)
1719 .png: libpng .zlib
1720 ifdef HAVE_MACOSX
1721 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1722 else
1723 ifdef HAVE_WIN32
1724 (cd $<; rm -f INSTALL; cp scripts/makefile.cygwin Makefile && make $(HOSTCC) && make install-static)
1725 else
1726 ifeq ($(PNG_VERSION),1.2.8)
1727 (cd $<; PREFIX=$(PREFIX) DESTDIR=$(PREFIX) cp scripts/makefile.linux Makefile && make && make install)
1728 else
1729 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1730 endif
1731 endif
1732 endif
1733 $(INSTALL_NAME)
1734 touch $@
1736 CLEAN_FILE += .png
1737 CLEAN_PKG += libpng
1738 DISTCLEAN_PKG += libpng-$(PNG_VERSION).tar.bz2
1740 # ***************************************************************************
1741 # libzvbi
1742 # ***************************************************************************
1744 zvbi-$(ZVBI_VERSION).tar.bz2:
1745 $(WGET) $(ZVBI_URL)
1747 zvbi: zvbi-$(ZVBI_VERSION).tar.bz2
1748 $(EXTRACT_BZ2)
1749 ifdef HAVE_WIN32
1750 (cd $@; patch -p1 < ../Patches/zvbi-win32.patch; patch -p1 < ../Patches/zvbi-makefile.patch; autoreconf -ivf)
1751 endif
1753 ifdef HAVE_WIN32
1754 .zvbi: zvbi .pthreads
1755 else
1756 .zvbi: zvbi
1757 endif
1758 ifdef HAVE_MACOSX
1759 (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -fnested-functions" && make && make install)
1760 else
1761 ifdef HAVE_WIN32
1762 (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -DPTW32_STATIC_LIB --std=gnu99" && make && make install)
1763 else
1764 (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" && make -C src && make -C src install)
1765 endif
1766 endif
1767 $(INSTALL_NAME)
1768 touch $@
1770 CLEAN_FILE += .zvbi
1771 CLEAN_PKG += zvbi
1772 DISTCLEAN_PKG += zvbi-$(ZVBI_VERSION).tar.bz2
1774 # ***************************************************************************
1775 # libraw1394
1776 # ***************************************************************************
1778 libraw1394-$(LIBRAW1394_VERSION).tar.gz:
1779 $(WGET) $(LIBRAW1394_URL)
1781 libraw1394: libraw1394-$(LIBRAW1394_VERSION).tar.gz
1782 $(EXTRACT_GZ)
1784 .raw1394: libraw1394
1785 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
1786 # sed 's/^typedef u_int8_t byte_t;/\/* typedef u_int8_t byte_t;\*\//'
1787 touch $@
1789 CLEAN_FILE += .raw1394
1790 CLEAN_PKG += libraw1394
1791 DISTCLEAN_PKG += libraw1394-$(LIBRAW1394_VERSION).tar.gz
1793 # ***************************************************************************
1794 # libdc1394
1795 # ***************************************************************************
1797 libdc1394-$(LIBDC1394_VERSION).tar.gz:
1798 $(WGET) $(LIBDC1394_URL)
1800 libdc1394: libdc1394-$(LIBDC1394_VERSION).tar.gz
1801 $(EXTRACT_GZ)
1803 .dc1394: libdc1394
1804 (cd $<; ./configure --prefix=$(PREFIX) && \
1805 patch -p1 < ../Patches/libdc1394-noexamples.patch && \
1806 make && make DESTDIR=$(PREFIX) install)
1807 touch $@
1809 CLEAN_FILE += .dc1394
1810 CLEAN_PKG += libdc1394
1811 DISTCLEAN_PKG += libdc1394-$(LIBDC1394_VERSION).tar.gz
1813 # ***************************************************************************
1814 # gpg-error
1815 # ***************************************************************************
1817 libgpg-error-$(GPGERROR_VERSION).tar.bz2:
1818 $(WGET) $(GPGERROR_URL)
1820 libgpg-error: libgpg-error-$(GPGERROR_VERSION).tar.bz2
1821 $(EXTRACT_BZ2)
1822 ifdef HAVE_WIN32
1823 # patch -p 0 < Patches/libgpg-error-win32.patch
1824 # (cd $@; ./autogen.sh)
1825 endif
1827 .gpg-error: libgpg-error
1828 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-nls --disable-shared --disable-languages && make && make install)
1829 # $(INSTALL_NAME)
1830 touch $@
1832 CLEAN_FILE += .gpg-error
1833 CLEAN_PKG += libgpg-error
1834 DISTCLEAN_PKG += libgpg-error-$(GPGERROR_VERSION).tar.bz2
1836 # ***************************************************************************
1837 # libgcrypt
1838 # ***************************************************************************
1840 libgcrypt-$(GCRYPT_VERSION).tar.bz2:
1841 $(WGET) $(GCRYPT_URL)
1843 libgcrypt: libgcrypt-$(GCRYPT_VERSION).tar.bz2
1844 $(EXTRACT_BZ2)
1845 patch -p0 < Patches/gcrypt.patch
1847 CIPHDIG= --enable-ciphers=aes,des,rfc2268,arcfour --enable-digests=sha1,md5,rmd160 --enable-publickey-digests=dsa
1849 ifdef HAVE_WIN64
1850 ac_cv_sys_symbol_underscore=no
1851 endif
1852 .gcrypt: libgcrypt .gpg-error
1853 ifdef HAVE_WIN32
1854 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --target=i586-mingw32msvc --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(CIPHDIG) --disable-shared --enable-static --disable-nls ac_cv_sys_symbol_underscore=$(ac_cv_sys_symbol_underscore) && make && make install)
1855 else
1856 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS) -lgpg-error" $(CIPHDIG) && make && make install)
1857 endif
1858 $(INSTALL_NAME)
1859 touch $@
1861 CLEAN_FILE += .gcrypt
1862 CLEAN_PKG += libgcrypt
1863 DISTCLEAN_PKG += libgcrypt-$(GCRYPT_VERSION).tar.bz2
1865 # ***************************************************************************
1866 # opencdk (requires by gnutls 2.x)
1867 # ***************************************************************************
1869 opencdk-$(OPENCDK_VERSION).tar.bz2:
1870 $(WGET) $(OPENCDK_URL)
1872 opencdk: opencdk-$(OPENCDK_VERSION).tar.bz2
1873 $(EXTRACT_BZ2)
1875 .opencdk: opencdk
1876 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(HOSTCC) && make && make install)
1877 touch $@
1879 CLEAN_FILE += .opencdk
1880 CLEAN_PKG += opencdk
1881 DISTCLEAN_PKG += opencdk-$(OPENCDK_VERSION).tar.bz2
1883 # ***************************************************************************
1884 # gnutls
1885 # ***************************************************************************
1887 gnutls-$(GNUTLS_VERSION).tar.bz2:
1888 $(WGET) $(GNUTLS_URL)
1890 gnutls: gnutls-$(GNUTLS_VERSION).tar.bz2
1891 $(EXTRACT_BZ2)
1892 ifdef HAVE_WIN32
1893 patch -p0 < Patches/gnutls-win32.patch
1894 (cd $@; autoreconf)
1895 endif
1897 .gnutls: gnutls .gcrypt .gpg-error
1898 ifdef HAVE_WIN32
1899 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --with-libgcrypt --target=i586-mingw32msvc --disable-cxx -disable-shared --enable-static --disable-nls --with-included-opencdk --with-included-libtasn1 && cd gl && make && cd ../lib && make && make install )
1900 else
1901 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --with-libgcrypt --disable-cxx --with-included-opencdk --disable-guile && make && make install)
1902 endif
1903 $(INSTALL_NAME)
1904 touch $@
1906 CLEAN_FILE += .gnutls
1907 CLEAN_PKG += gnutls
1908 DISTCLEAN_PKG += gnutls-$(GNUTLS_VERSION).tar.bz2
1910 # ***************************************************************************
1911 # libopendaap
1912 # ***************************************************************************
1914 libopendaap-$(DAAP_VERSION).tar.bz2:
1915 $(WGET) $(DAAP_URL)
1917 libopendaap: libopendaap-$(DAAP_VERSION).tar.bz2
1918 $(EXTRACT_BZ2)
1919 patch -p0 < Patches/daap.patch
1921 .opendaap: libopendaap
1922 (cd $<; ./configure --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" && make install)
1923 $(INSTALL_NAME)
1924 touch $@
1926 CLEAN_FILE += .opendaap
1927 CLEAN_PKG += libopendaap
1928 DISTCLEAN_PKG += libopendaap-$(DAAP_VERSION).tar.bz2
1930 # ***************************************************************************
1931 # Gecko SDK
1932 # ***************************************************************************
1934 gecko-sdk:
1935 $(SVN) co $(NPAPI_HEADERS_SVN_URL) -r $(NPAPI_HEADERS_SVN_REVISION) gecko-sdk/include
1937 .gecko: gecko-sdk
1938 rm -rf $(PREFIX)/gecko-sdk
1939 mv gecko-sdk $(PREFIX)
1940 mkdir gecko-sdk #creating an empty dir is faster than copying the whole dir
1941 (cd $<)
1942 touch $@
1944 CLEAN_FILE += .gecko
1945 CLEAN_PKG += gecko-sdk
1946 DISTCLEAN_PKG += gecko-sdk
1948 # ***************************************************************************
1949 # libjpeg
1950 # ***************************************************************************
1952 jpegsrc.v$(JPEG_VERSION).tar.gz:
1953 $(WGET) $(JPEG_URL)
1955 jpeg-$(JPEG_VERSION): jpegsrc.v$(JPEG_VERSION).tar.gz
1956 $(EXTRACT_GZ)
1958 .jpeg: jpeg-$(JPEG_VERSION)
1959 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(HOSTCC) && make && make install)
1960 $(RANLIB) $(PREFIX)/lib/libjpeg.a
1961 touch $@
1963 CLEAN_FILE += .jpeg
1964 CLEAN_PKG += jpeg-$(JPEG_VERSION)
1965 DISTCLEAN_PKG += jpegsrc.v$(JPEG_VERSION).tar.gz
1967 # ***************************************************************************
1968 # tiff
1969 # ***************************************************************************
1971 tiff-$(TIFF_VERSION).tar.gz:
1972 $(WGET) $(TIFF_URL)
1974 tiff: tiff-$(TIFF_VERSION).tar.gz
1975 $(EXTRACT_GZ)
1977 .tiff: tiff
1978 ifdef HAVE_WIN32
1979 (cd $<; ./configure --target=i586-mingw32msvc --with-CFLAGS="$(CFLAGS)" --with-JPEG=no --with-ZIP=no --prefix=$(PREFIX) --host=$(HOST) &&make -C port && make -C libtiff && make -C libtiff install)
1980 else
1981 (cd $<; ./configure --with-CFLAGS="$(CFLAGS)" --with-JPEG=no --with-ZIP=no --prefix=$(PREFIX) && make -C port &&make -C libtiff && make -C libtiff install)
1982 endif
1983 $(INSTALL_NAME)
1984 touch $@
1986 CLEAN_FILE += .tiff
1987 CLEAN_PKG += tiff
1988 DISTCLEAN_PKG += tiff-$(TIFF_VERSION).tar.gz
1990 # ***************************************************************************
1991 # LibSDL
1992 # ***************************************************************************
1994 ifndef HAVE_MACOSX
1995 SDL-$(SDL_VERSION).tar.gz:
1996 $(WGET) $(SDL_URL)
1998 SDL: SDL-$(SDL_VERSION).tar.gz
1999 $(EXTRACT_GZ)
2000 else
2001 SDL:
2002 $(SVN) co http://svn.libsdl.org/trunk/SDL -r 4444 SDL
2003 (cd $@; sh autogen.sh)
2004 endif
2006 .SDL: SDL
2007 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --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)
2008 $(INSTALL_NAME)
2009 touch $@
2011 CLEAN_FILE += .SDL
2012 CLEAN_PKG += SDL
2013 DISTCLEAN_PKG += SDL-$(SDL_VERSION).tar.gz
2015 # ***************************************************************************
2016 # SDL_image
2017 # ***************************************************************************
2019 SDL_image-$(SDL_IMAGE_VERSION).tar.gz:
2020 $(WGET) $(SDL_IMAGE_URL)
2022 SDL_image: SDL_image-$(SDL_IMAGE_VERSION).tar.gz
2023 $(EXTRACT_GZ)
2024 patch -p0 < Patches/SDL_image.patch
2026 .SDL_image: SDL_image .SDL .png .jpeg .tiff
2027 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --enable-tif --disable-sdltest && make && make install)
2028 $(INSTALL_NAME)
2029 touch $@
2031 CLEAN_FILE += .SDL_image
2032 CLEAN_PKG += SDL_image
2033 DISTCLEAN_PKG += SDL_image-$(SDL_IMAGE_VERSION).tar.gz
2035 # ***************************************************************************
2036 # Musepack decoder library (libmpcdec)
2037 # ***************************************************************************
2039 mpcdec:
2040 $(SVN) co $(MUSE_SVN) -r 468 mpcdec
2041 (cd $@; patch -p0 < ../Patches/libmpc-simple.patch)
2042 ifdef HAVE_MACOSX
2043 (cd $@; sed -e 's%-O3 -Wall%-O3 -Wall $(CFLAGS)%' -i.orig CMakeLists.txt)
2044 endif
2046 .mpcdec: mpcdec
2047 (cd $<; cmake . -DCMAKE_TOOLCHAIN_FILE=../../toolchain.cmake -DCMAKE_INSTALL_PREFIX=$(PREFIX) && make install)
2048 ifdef HAVE_WIN32
2049 (cd $<; mkdir -p $(PREFIX)/lib && cp libmpcdec/libmpcdec_static.a $(PREFIX)/lib/libmpcdec.a)
2050 endif
2051 ifdef HAVE_MACOSX
2052 (cd $<; mkdir -p $(PREFIX)/lib && cp libmpcdec/libmpcdec.dylib $(PREFIX)/lib/libmpcdec.dylib)
2053 (install_name_tool -id $(PREFIX)/lib/libmpcdec.dylib $(PREFIX)/lib/libmpcdec.dylib)
2054 endif
2055 touch $@
2057 CLEAN_FILE += .mpcdec
2058 CLEAN_PKG += mpcdec
2059 DISTCLEAN_PKG += libmpcdec-$(MUSE_VERSION).tar.bz2
2061 # ***************************************************************************
2062 # Dirac
2063 # ***************************************************************************
2065 dirac-$(DIRAC_VERSION).tar.gz:
2066 $(WGET) $(DIRAC_URL)
2068 dirac: dirac-$(DIRAC_VERSION).tar.gz
2069 $(EXTRACT_GZ)
2070 ifdef HAVE_CYGWIN
2071 # incorrect compile warning with cygwin compiler 3.4.4
2072 patch -p0 < Patches/dirac-cygwin.patch
2073 endif
2074 patch -p0 < Patches/dirac-noutils.patch
2075 patch -p0 < Patches/dirac-autotools.patch
2076 (cd $@; autoreconf -ivf)
2078 DIRAC_SUBDIRS = libdirac_byteio libdirac_common libdirac_motionest libdirac_encoder libdirac_decoder
2080 ifdef HAVE_WIN32
2081 DIRAC_SUBDIRS += win32
2082 endif
2084 .dirac: dirac
2085 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" && DOC_DIR="" make $(DIRAC_SUBDIRS) && DOC_DIR="" make install)
2086 touch $@
2088 # for MacOS X, dirac is split into two libraries, which needs be installed using two targets
2089 .dirac_encoder: .dirac
2090 $(INSTALL_NAME)
2091 touch $@
2093 .dirac_decoder: .dirac
2094 $(INSTALL_NAME)
2095 touch $@
2097 CLEAN_FILE += .dirac
2098 CLEAN_PKG += dirac
2099 DISTCLEAN_PKG += dirac-$(DIRAC_VERSION).tar.gz
2101 # *************************************************************************
2102 # DirectX headers
2103 # *************************************************************************
2104 directx-oss.tar.bz2:
2105 $(WGET) $(DX_HEADERS_URL)
2106 .dx_headers: directx-oss.tar.bz2
2107 mkdir -p $(PREFIX)/include
2108 tar xjf $< -C $(PREFIX)/include
2109 touch $@
2110 CLEAN_FILE += .dx_headers
2111 DISTCLEAN_PKG += directx-oss.tar.bz2
2113 # *************************************************************************
2114 # DirectShow headers
2115 # *************************************************************************
2116 dshow-headers-oss.tar.bz2:
2117 $(WGET) $(DSHOW_HEADERS_URL)
2119 dxva2api.h:
2120 $(WGET) $(DXVA2_URL)
2122 CLEAN_FILE += dxva2api.h
2124 d2d_headers.tar.gz:
2125 $(WGET) $(D2D_URL) -O $@
2127 .dshow_headers: dshow-headers-oss.tar.bz2 dxva2api.h d2d_headers.tar.gz
2128 mkdir -p $(PREFIX)/include
2129 tar xjf $< -C $(PREFIX)/include --wildcards --no-anchored '*.h' --strip-components=1
2130 tar xzf d2d_headers.tar.gz -C $(PREFIX)/include --wildcards --no-anchored '*.h' --strip-components=1
2131 cp dxva2api.h $(PREFIX)/include
2132 touch $@
2134 CLEAN_FILE += .dshow_headers
2135 DISTCLEAN_PKG += dshow-headers-oss.tar.bz2 dxva2api.h
2137 # ***************************************************************************
2138 # libexpat
2139 # ***************************************************************************
2141 expat-$(EXPAT_VERSION).tar.gz:
2142 $(WGET) $(EXPAT_URL)
2144 expat: expat-$(EXPAT_VERSION).tar.gz
2145 $(EXTRACT_GZ)
2147 .expat: expat
2148 (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
2149 touch $@
2151 CLEAN_FILE += .expat
2152 CLEAN_PKG += expat
2153 DISTCLEAN_PKG += expat-$(EXPAT_VERSION).tar.gz
2155 # ***************************************************************************
2156 # YASM assembler
2157 # ***************************************************************************
2159 yasm-$(YASM_VERSION).tar.gz:
2160 $(WGET) $(YASM_URL)
2162 yasm: yasm-$(YASM_VERSION).tar.gz
2163 $(EXTRACT_GZ)
2165 .yasm: yasm
2166 (cd $< && $(HOSTCC) ./configure --prefix=$(PREFIX) --host=$(HOST) && make && make install)
2167 touch $@
2169 CLEAN_FILE += .yasm
2170 CLEAN_PKG += yasm
2171 DISTCLEAN_PKG += yasm-$(YASM_VERSION).tar.gz
2173 # ***************************************************************************
2174 # kate
2175 # ***************************************************************************
2177 libkate-$(KATE_VERSION).tar.gz:
2178 $(WGET) $(KATE_URL)
2180 libkate: libkate-$(KATE_VERSION).tar.gz
2181 $(EXTRACT_GZ)
2183 .kate: libkate .ogg
2184 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-valgrind --disable-doc && make && make install)
2185 $(INSTALL_NAME)
2186 touch $@
2188 CLEAN_FILE += .kate
2189 CLEAN_PKG += libkate
2190 DISTCLEAN_PKG += libkate-$(KATE_VERSION).tar.gz
2192 # ***************************************************************************
2193 # tiger
2194 # ***************************************************************************
2196 libtiger-$(TIGER_VERSION).tar.gz:
2197 $(WGET) $(TIGER_URL)
2199 libtiger: libtiger-$(TIGER_VERSION).tar.gz
2200 $(EXTRACT_GZ)
2202 .tiger: libtiger .kate
2203 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-valgrind --disable-doc && make && make install)
2204 $(INSTALL_NAME)
2205 touch $@
2207 CLEAN_FILE += .tiger
2208 CLEAN_PKG += libtiger
2209 DISTCLEAN_PKG += libtiger-$(TIGER_VERSION).tar.gz
2211 # ***************************************************************************
2212 # TagLib read and editing of tags of popular audio formats
2213 # ***************************************************************************
2215 taglib-$(TAGLIB_VERSION).tar.gz:
2216 $(WGET) $(TAGLIB_URL)
2218 taglib: taglib-$(TAGLIB_VERSION).tar.gz
2219 $(EXTRACT_GZ)
2220 ifdef HAVE_ANDROID
2221 patch -p0 < Patches/taglib-android.patch
2222 endif
2223 ifdef HAVE_WIN32
2224 patch -p0 < Patches/taglib-static.patch
2225 endif
2226 ifdef HAVE_CYGWIN
2227 patch -p0 < Patches/taglib-cygwin.patch
2228 endif
2230 ifdef HAVE_WIN64
2231 TAGLIB_CMAKE_OPTS=-DCMAKE_SYSTEM_NAME=Generic
2232 else
2233 TAGLIB_CMAKE_OPTS=
2234 endif
2235 .tag: taglib
2236 (cd $<; $(HOSTCC) CPPFLAGS="$(CPPFLAGS)" cmake . -DCMAKE_TOOLCHAIN_FILE=../../toolchain.cmake -DCMAKE_INSTALL_PREFIX=$(PREFIX) -DENABLE_STATIC:BOOL=ON -DWITH_ASF:BOOL=ON -DWITH_MP4:BOOL=ON $(TAGLIB_CMAKE_OPTS) && make && make install)
2237 $(INSTALL_NAME)
2238 touch $@
2240 CLEAN_FILE += .tag
2241 CLEAN_PKG += taglib
2242 DISTCLEAN_PKG += taglib-$(TAGLIB_VERSION).tar.gz
2244 # ***************************************************************************
2245 # pthreads for win32
2246 # ***************************************************************************
2248 ifdef HAVE_CROSS_COMPILE_NEEDS_CROSS_PREFIX
2249 PTHREADSCONF=CROSS="$(HOST)-"
2250 endif
2252 pthreads-w32-$(PTHREADS_VERSION)-release.tar.gz:
2253 $(WGET) $(PTHREADS_URL)
2255 pthreads: pthreads-w32-$(PTHREADS_VERSION)-release.tar.gz
2256 $(EXTRACT_GZ)
2257 (cd $@; patch -p0 < ../Patches/pthreads-detach.patch)
2258 sed -i 's/^CROSS.*=/CROSS ?=/' $@/GNUmakefile
2259 ifdef HAVE_WIN64
2260 (patch -p0 < Patches/pthreads-win64.patch)
2261 endif
2263 .pthreads: pthreads
2264 (cd $<; $(HOSTCC) $(PTHREADSCONF) make MAKEFLAGS=-j1 GC GC-static && mkdir -p $(PREFIX)/include && cp -v pthread.h sched.h semaphore.h $(PREFIX)/include/ && sed -i 's/#if HAVE_CONFIG_H/#if 0 \&\& HAVE_CONFIG_H/' $(PREFIX)/include/pthread.h && mkdir -p $(PREFIX)/lib && cp -v *.a *.dll $(PREFIX)/lib/)
2265 $(INSTALL_NAME)
2266 touch $@
2268 CLEAN_FILE += .pthreads
2269 CLEAN_PKG += pthreads
2270 DISTCLEAN_PKG += pthreads-w32-$(PTHREADS_VERSION)-release.tar.gz
2272 # ***************************************************************************
2273 # ncurses library (with wide chars support)
2274 # ***************************************************************************
2276 ncurses-$(NCURSES_VERSION).tar.gz:
2277 $(WGET) $(NCURSES_URL)
2279 ncurses: ncurses-$(NCURSES_VERSION).tar.gz
2280 $(EXTRACT_GZ)
2282 .ncurses: ncurses
2283 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=/usr --without-debug --enable-widec --without-develop --without-shared && make -C ncurses && make -C include && make -C ncurses DESTDIR=$(PREFIX) install && make -C include DESTDIR=$(PREFIX) install)
2284 (cp -R $(PREFIX)/usr/* $(PREFIX) && rm -rf $(PREFIX)/usr)
2285 touch $@
2287 CLEAN_FILE += .ncurses
2288 CLEAN_PKG += ncurses
2289 DISTCLEAN_PKG += ncurses-$(NCURSES_VERSION).tar.gz
2291 # ***************************************************************************
2292 # FluidSynth library (Midi)
2293 # ***************************************************************************
2295 fluidsynth-$(FLUID_VERSION).tar.gz:
2296 $(WGET) $(FLUID_URL)
2298 fluidsynth: fluidsynth-$(FLUID_VERSION).tar.gz
2299 $(EXTRACT_GZ)
2300 ifdef HAVE_WIN32
2301 patch -p0 < Patches/fluid-win32.patch
2302 cd $@; ./autogen.sh || true
2303 endif
2305 .fluid: fluidsynth
2306 cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) \
2307 --disable-ladspa \
2308 --disable-oss-support \
2309 --disable-alsa-support \
2310 --disable-pulse-support \
2311 --disable-midishare \
2312 --disable-jack-support \
2313 --disable-coreaudio \
2314 --disable-lash \
2315 --disable-ladcca \
2316 --disable-portaudio-support \
2317 --without-readline
2318 cd $< && make
2319 cd $< && make install
2320 touch $@
2322 CLEAN_FILE += .fluid
2323 CLEAN_PKG += fluidsynth
2324 DISTCLEAN_PKG += fluidsynth-$(FLUID_VERSION).tar.gz
2326 # ***************************************************************************
2327 # liboil
2328 # ***************************************************************************
2330 orc-$(ORC_VERSION).tar.gz:
2331 $(WGET) $(ORC_URL)
2333 orc: orc-$(ORC_VERSION).tar.gz
2334 $(EXTRACT_GZ)
2335 patch -p0 < Patches/orc-stdint.patch
2337 .orc: orc
2338 ifdef HAVE_MACOSX
2339 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)")
2340 else
2341 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX))
2342 endif
2343 (cd $<; make && make install)
2344 touch $@
2346 CLEAN_FILE += .orc
2347 CLEAN_PKG += orc
2348 DISTCLEAN_PKG += orc-$(ORC_VERSION).tar.gz
2350 # ***************************************************************************
2351 # Schroedinger library
2352 # ***************************************************************************
2354 schroedinger-$(SCHROED_VERSION).tar.gz:
2355 $(WGET) $(SCHROED_URL)
2357 schroedinger: schroedinger-$(SCHROED_VERSION).tar.gz
2358 $(EXTRACT_GZ)
2359 patch -p0 < Patches/schroedinger-notests.patch
2360 (cd $@; autoreconf -iv)
2362 .schroedinger: schroedinger .orc
2363 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --with-thread=none --disable-gtk-doc --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -O3" && make && make install)
2364 touch $@
2366 CLEAN_FILE += .schroedinger
2367 CLEAN_PKG += schroedinger
2368 DISTCLEAN_PKG += schroedinger-$(SCHROED_VERSION).tar.gz
2370 # ***************************************************************************
2371 # libass
2372 # ***************************************************************************
2374 libass-$(ASS_VERSION).tar.gz:
2375 $(WGET) $(ASS_URL)
2377 libass: libass-$(ASS_VERSION).tar.gz
2378 $(EXTRACT_GZ)
2379 (cd $@; autoreconf -ivf)
2381 .libass: libass .freetype .fontconfig .fribidi
2382 (cd $<; $(HOSTCC) ./configure --disable-shared $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -O3" && make && make install)
2383 touch $@
2385 CLEAN_FILE += .libass
2386 CLEAN_PKG += libass
2387 DISTCLEAN_PKG += libass-$(ASS_VERSION).tar.gz
2389 # ***************************************************************************
2390 # Sparkle
2391 # ***************************************************************************
2393 Sparkle-$(SPARKLE_VERSION).zip:
2394 $(WGET) $(SPARKLE_URL)
2396 .Sparkle: Sparkle-$(SPARKLE_VERSION).zip
2397 rm -rf $@ || true
2398 unzip $<
2399 rm -rf $(PREFIX)/Sparkle
2400 mv Sparkle $(PREFIX)
2401 touch $@
2403 CLEAN_FILE += .Sparkle
2404 CLEAN_PKG += Sparkle
2405 DISTCLEAN_PKG += Sparkle-$(SPARKLE_VERSION).zip
2407 # ***************************************************************************
2408 # BGHUDAppKit
2409 # ***************************************************************************
2411 BGHUDAppKit-$(BGHUDAPPKIT_VERSION).zip:
2412 $(WGET) $(BGHUDAPPKIT_URL)
2414 .BGHUDAppKit: BGHUDAppKit-$(BGHUDAPPKIT_VERSION).zip
2415 rm -rf $@ || true
2416 (mkdir BGHUDAppKit && cd BGHUDAppKit && unzip ../$<)
2417 rm -rf $(PREFIX)/BGHUDAppKit
2418 mv BGHUDAppKit $(PREFIX)
2419 touch $@
2421 CLEAN_FILE += .BGHUDAppKit
2422 CLEAN_PKG += BGHUDAppKit
2423 DISTCLEAN_PKG += BGHUDAppKit-$(BGHUDAPPKIT_VERSION).zip
2425 # ***************************************************************************
2426 # Growl
2427 # ***************************************************************************
2429 Growl-$(GROWL_VERSION).zip:
2430 $(WGET) $(GROWL_URL)
2432 .Growl: Growl-$(GROWL_VERSION).zip
2433 rm -rf $@ || true
2434 (mkdir Growl && cd Growl && unzip ../$<)
2435 rm -rf $(PREFIX)/Growl
2436 mv Growl $(PREFIX)
2437 touch $@
2439 CLEAN_FILE += .Growl
2440 CLEAN_PKG += Growl
2441 DISTCLEAN_PKG += Growl-$(GROWL_VERSION).zip
2443 # ***************************************************************************
2444 # UPNP library
2445 # ***************************************************************************
2447 libupnp-$(UPNP_VERSION).tar.bz2:
2448 $(WGET) $(UPNP_URL)
2450 libupnp: libupnp-$(UPNP_VERSION).tar.bz2
2451 $(EXTRACT_BZ2)
2452 ifdef HAVE_WIN32
2453 patch -p0 < Patches/libupnp-configure.patch
2454 patch -p0 < Patches/libupnp-win32.patch
2455 patch -p0 < Patches/libupnp-win64.patch
2456 endif
2457 cd $@; libtoolize && autoreconf
2459 ifdef HAVE_WIN32
2460 LIBUPNP_ECFLAGS=-DPTW32_STATIC_LIB
2461 endif
2463 ifdef HAVE_WIN32
2464 .libupnp: libupnp .pthreads
2465 else
2466 .libupnp: libupnp
2467 endif
2468 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-samples --without-documentation --enable-static --disable-webserver CFLAGS="$(CFLAGS) -O3 -DUPNP_STATIC_LIB $(LIBUPNP_ECFLAGS)" && make && make install)
2469 touch $@
2471 CLEAN_FILE += .libupnp
2472 CLEAN_PKG += libupnp
2473 DISTCLEAN_PKG += libupnp-$(UPNP_VERSION).tar.bz2
2475 # ***************************************************************************
2476 # GSM
2477 # ***************************************************************************
2478 gsm-$(GSM_VERSION).tar.gz:
2479 $(WGET) $(GSM_URL)
2481 gsm: gsm-$(GSM_VERSION).tar.gz
2482 rm -rf $@ || true
2483 gunzip -c $< | tar xf - --exclude='[*?:<>\|]'
2484 mv gsm-1.0-* gsm || true
2485 ifneq ($(HOST),$(BUILD))
2486 (patch -p0 < Patches/gsm-cross.patch)
2487 endif
2488 ifdef HAVE_MACOSX
2489 (cd $@; sed -e 's%-O2%-O2\ $(EXTRA_CFLAGS)\ $(EXTRA_LDFLAGS)%' -e 's%# LDFLAGS =%LDFLAGS = $(EXTRA_LDFLAGS)%' -e 's%gcc%$(CC)%' -i.orig Makefile)
2490 endif
2491 (cd $@; sed -i -e 's%-O2%-O2 -fPIC%' Makefile)
2493 .gsm: gsm
2494 (cd $<; $(HOSTCC) make && mkdir -p $(PREFIX)/include/gsm && cp inc/gsm.h $(PREFIX)/include/gsm && cp lib/libgsm.a $(PREFIX)/lib)
2495 touch $@
2497 CLEAN_FILE += .gsm
2498 CLEAN_PKG += gsm
2499 DISTCLEAN_PKG += gsm-$(GSM_VERSION).tar.gz
2501 # ***************************************************************************
2502 ### GLEW
2503 # ***************************************************************************
2504 glew-$(GLEW_VERSION)-src.tgz:
2505 $(WGET) $(GLEW_URL)
2507 glew: glew-$(GLEW_VERSION)-src.tgz
2508 $(EXTRACT_GZ)
2509 (patch -p0 < Patches/glew-win32.patch)
2511 .glew: glew
2512 (cd $<; $(HOSTCC) CFLAGS="$(CFLAGS) -DGLEW_STATIC" make && $(HOSTCC) GLEW_DEST=$(PREFIX) make install)
2513 ifdef HAVE_WIN32
2514 rm -rf $(PREFIX)/lib/libglew32.dll*
2515 endif
2516 touch $@
2518 CLEAN_FILE += .glew
2519 CLEAN_PKG += glew
2520 DISTCLEAN_PKG += glew-$(GLEW_VERSION)-src.tgz
2523 # ***************************************************************************
2524 # projectM
2525 # ***************************************************************************
2526 projectM-$(LIBPROJECTM_VERSION)-Source.tar.gz:
2527 $(WGET) $(LIBPROJECTM_URL)
2529 libprojectM: projectM-$(LIBPROJECTM_VERSION)-Source.tar.gz
2530 rm -rf $@ || true
2531 gunzip -c $< | tar xf - --exclude='[*?:<>\|]'
2532 mv projectM-$(LIBPROJECTM_VERSION)-Source $@ || true
2533 patch -p0 < Patches/libprojectM-win32.patch
2534 -cd $@; rm CMakeCache.txt
2536 .libprojectM: libprojectM .glew
2537 (cd $<; $(HOSTCC) CPPFLAGS="$(CPPFLAGS)" cmake . -DCMAKE_TOOLCHAIN_FILE=../../toolchain.cmake -DINCLUDE-PROJECTM-LIBVISUAL:BOOL=OFF -DDISABLE_NATIVE_PRESETS:BOOL=ON -DUSE_FTGL:BOOL=OFF -DINCLUDE-PROJECTM-PULSEAUDIO:BOOL=OFF -DINCLUDE-PROJECTM-QT:BOOL=OFF -DBUILD_PROJECTM_STATIC:BOOL=ON -DCMAKE_INSTALL_PREFIX=$(PREFIX) && make install)
2538 ifdef HAVE_WIN32
2539 (cd $<;cp Renderer/libRenderer.a MilkdropPresetFactory/libMilkdropPresetFactory.a $(PREFIX)/lib)
2540 endif
2541 touch $@
2543 CLEAN_FILE += .libprojectM
2544 CLEAN_PKG += libprojectM
2545 DISTCLEAN_PKG += libprojectM-$(LIBPROJECTM_VERSION)-Source.tar.gz
2547 # ***************************************************************************
2548 # X11 C Bindings
2549 # ***************************************************************************
2551 libxcb-$(XCB_VERSION).tar.bz2:
2552 $(WGET) $(XCB_URL)/$@
2554 libxcb: libxcb-$(XCB_VERSION).tar.bz2
2555 -rm -rf $@
2556 bzcat $< | tar xf -
2557 mv libxcb-$(XCB_VERSION) $@
2558 touch $@
2560 .xcb: libxcb
2561 cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) \
2562 --disable-shared \
2563 --disable-composite \
2564 --disable-damage \
2565 --disable-dpms \
2566 --disable-glx \
2567 --enable-randr \
2568 --disable-record \
2569 --enable-render \
2570 --disable-resource \
2571 --disable-screensaver \
2572 --disable-shape \
2573 --enable-shm \
2574 --disable-sync \
2575 --disable-xevie \
2576 --disable-xfixes \
2577 --disable-xfree86-dri \
2578 --disable-xinerama \
2579 --disable-xinput \
2580 --disable-xprint \
2581 --disable-selinux \
2582 --disable-xtest \
2583 --enable-xv \
2584 --disable-xvmc \
2585 --disable-build-docs
2586 cd $< && make
2587 cd $< && sed -i -e s,^Requires.private:,Requires:,g xcb.pc
2588 cd $< && make install
2589 touch $@
2591 xcb-util-$(XCB_UTIL_VERSION).tar.bz2:
2592 $(WGET) $(XCB_UTIL_URL)/$@
2594 xcb-util: xcb-util-$(XCB_UTIL_VERSION).tar.bz2
2595 -rm -rf $@
2596 bzcat $< | tar xf -
2597 mv xcb-util-$(XCB_UTIL_VERSION) $@
2598 touch $@
2600 .xcb-util: xcb-util .xcb
2601 cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)
2602 cd $< && make install
2603 touch $@
2605 CLEAN_FILE += .xcb-util .xcb
2606 CLEAN_PKG += xcb-util xcb
2607 DISTCLEAN_PKG += xcb-util-$(XCB_UTIL_VERSION).tar.bz2 libxcb-$(XCB_VERSION).tar.bz2
2609 # ***************************************************************************
2610 # Peflags utility (Windows only)
2611 # ***************************************************************************
2613 peflags/peflags.c:
2614 mkdir -p peflags
2615 cd peflags && $(WGET) $(PEFLAGS_URL)/peflags.c
2617 .peflags: peflags/peflags.c
2618 cd peflags && gcc peflags.c -o peflags
2619 install -d $(PREFIX)/bin
2620 cd peflags && install ./peflags $(PREFIX)/bin
2621 touch $@
2623 CLEAN_PKG += peflags
2624 CLEAN_FILE += .peflags
2626 # ***************************************************************************
2627 # Regex
2628 # ***************************************************************************
2629 regex-$(REGEX_VERSION).tar.gz:
2630 $(WGET) $(REGEX_URL)
2632 regex: regex-$(REGEX_VERSION).tar.gz
2633 $(EXTRACT_GZ)
2635 .regex: regex
2636 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make subirs= && $(AR) ru libregex.a regex.o && $(RANLIB) libregex.a && cp -v regex.h $(PREFIX)/include && cp -v libregex.a $(PREFIX)/lib )
2637 touch $@
2639 CLEAN_FILE += .regex
2640 CLEAN_PKG += regex
2641 DISTCLEAN_PKG += regex-$(REGEX_VERSION).tar.gz
2643 # ***************************************************************************
2644 # SQLite
2645 # ***************************************************************************
2646 sqlite-amalgamation-$(SQLITE_VERSION).tar.gz:
2647 $(WGET) $(SQLITE_URL)
2649 sqlite-$(SQLITE_VERSION): sqlite-amalgamation-$(SQLITE_VERSION).tar.gz
2650 $(EXTRACT_GZ)
2652 .sqlite3: sqlite-$(SQLITE_VERSION)
2653 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install )
2654 touch $@
2656 CLEAN_FILE += .sqlite3
2657 CLEAN_PKG += sqlite-$(SQLITE_VERSION)
2658 DISTCLEAN_PKG += sqlite-amalgamation-$(SQLITE_VERSION).tar.gz
2660 # *****************************
2661 # GME
2662 # *****************************
2663 game-music-emu-$(GME_VERSION).tbz2:
2664 $(WGET) $(GME_URL)
2666 game-music-emu-$(GME_VERSION): game-music-emu-$(GME_VERSION).tbz2
2667 $(EXTRACT_BZ2)
2668 patch -p0 < Patches/gme-static.patch
2670 .gme: game-music-emu-$(GME_VERSION)
2671 (cd $<; $(HOSTCC) CPPFLAGS="$(CPPFLAGS)" cmake . -DCMAKE_TOOLCHAIN_FILE=../../toolchain.cmake -DCMAKE_INSTALL_PREFIX=$(PREFIX) && make && make install )
2672 touch $@
2674 CLEAN_FILE += .gme
2675 CLEAN_PKG += game-music-emu-$(GME_VERSION)
2676 DISTCLEAN_PKG += game-music-emu-$(GME_VERSION).tbz2
2678 # ********************************
2679 # SidPlay2
2680 # ********************************
2681 sidplay-libs-2.1.1.tar.gz:
2682 $(WGET) $(SID_URL)
2684 sidplay-2.1.1: sidplay-libs-2.1.1.tar.gz
2685 $(EXTRACT_GZ)
2686 (cd $@; patch -p1 < ../Patches/sidplay2-openmode.patch)
2687 (cd $@; patch -p1 < ../Patches/sidplay2-endian.patch)
2688 (cd $@; patch -p1 < ../Patches/sidplay2-smartprt.patch)
2689 (cd $@; patch -p1 < ../Patches/sidplay2-noutils.patch)
2690 (cd $@; patch -p1 < ../Patches/sidplay2-string.patch)
2691 (cd $@; autoreconf -ivf)
2693 .sidplay: sidplay-2.1.1
2694 (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
2695 (cp -f $(PREFIX)/lib/sidplay/builders/* $(PREFIX)/lib/)
2696 touch $@
2698 CLEAN_FILE += .sidplay
2699 CLEAN_PKG += sidplay-2.1.1
2700 DISTCLEAN_PKG += sidplay-libs-2.1.1.tar.gz
2703 ###################################
2705 tools: $(TOOLS)
2707 # ***************************************************************************
2708 # Some cleaning
2709 # ***************************************************************************
2711 clean-dots: FORCE
2712 rm -f $(CLEAN_FILE)
2714 clean: clean-dots
2715 rm -rf $(CLEAN_PKG)
2717 clean-src: clean
2718 rm -rf $(DISTCLEAN_PKG)
2720 clean-svn:
2721 rm -rf ffmpeg tremor x264 libdca pa_stable_v$(PORTAUDIO_VERSION).tar.gz portaudio live555-$(LIVEDOTCOM_VERSION).tar.gz live libass
2723 distclean: clean-src
2725 # ***************************************************************************
2726 # Download all the sources and package unversionned copies of subversion trees
2727 # ***************************************************************************
2729 source: $(SOURCE) $(DISTCLEAN_PKG)