Makefile 76.7 KB
Newer Older
1
#***************************************************************************
2 3
# src/Makefile : Dearchive and compile all files necessary
# ***************************************************************************
4
# Copyright (C) 2003 - 2008 the VideoLAN team
5 6 7 8
# $Id$
#
# Authors: Christophe Massiot <massiot@via.ecp.fr>
#          Derk-Jan Hartman <hartman at videolan dot org>
9
#          Eric Petit <titer@m0k.org>
10
#          Felix Paul Kühne <fkuehne@videolan.org>
Christophe Mutricy's avatar
Christophe Mutricy committed
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>
15 16 17 18 19 20 21 22 23 24 25 26 27
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
Antoine Cellerier's avatar
Antoine Cellerier committed
28
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
29 30 31 32 33 34 35 36 37
# ***************************************************************************

include ../config.mak
include ./packages.mak

# ***************************************************************************
# Set a clean environment
# ***************************************************************************

38 39
export PATH := $(PREFIX)/bin:$(EXTRA_PATH):$(PATH)
export PKG_CONFIG_PATH
40
export PKG_CONFIG_LIBDIR = $(PREFIX)/lib/pkgconfig
41
export MACOSX_DEPLOYMENT_TARGET = $(SDK_TARGET)
42
export LIBRARY_PATH := $(PREFIX)/lib:$(LIBRARY_PATH)
43 44 45
export CFLAGS = -I$(PREFIX)/include $(EXTRA_CFLAGS) $(EXTRA_CPPFLAGS)
export CPPFLAGS = -I$(PREFIX)/include $(EXTRA_CFLAGS) $(EXTRA_CPPFLAGS)
export CXXFLAGS = -I$(PREFIX)/include $(EXTRA_CFLAGS) $(EXTRA_CPPFLAGS)
46 47 48 49 50 51 52 53 54
export LDFLAGS = -L$(PREFIX)/lib $(EXTRA_LDFLAGS)

# ***************************************************************************
# Cross compilation variables
# We'll usually use --host=<platform>, except for a few libraries which
# don't handle it (gotta set CC/CXX/etc), and obviously FFmpeg has its own
# way of doing it... ;)
# ***************************************************************************

55 56
ifneq ($(CC),)
HOSTCC+= CC="$(CC)"
57
FFMPEGCONF += --cc=$(CC)
58 59 60 61
endif
ifneq ($(CXX),)
HOSTCC+= CXX="$(CXX)"
endif
62 63 64
ifneq ($(LD),)
HOSTCC+= LD="$(LD)"
endif
65 66 67 68 69 70
ifneq ($(RANLIB),)
HOSTCC+= RANLIB="$(RANLIB)"
endif
ifneq ($(AR),)
HOSTCC+= AR="$(AR)"
endif
71 72 73 74
ifneq ($(STRIP),)
HOSTCC+= STRIP="$(STRIP)"
endif

75

76 77 78 79 80
# Define ranlib on non-cross compilation setups
ifeq ($(RANLIB),)
RANLIB=ranlib
endif

81 82 83
# For libebml/libmatroska. Grrr.
ifneq ($(AR),)
HOSTCC2=$(HOSTCC) AR="$(AR) rcvu"
84 85
else
HOSTCC2=$(HOSTCC)
86 87
endif

88
FFMPEGCONF=
89 90

# cross compiling
91 92
#This should be inside the if block but some config scripts are buggy
HOSTCONF=--target=$(HOST) --host=$(HOST) --build=$(BUILD) --program-prefix=""
93 94 95 96 97
ifneq ($(BUILD),$(HOST))
    #
    # Compiling for MinGW under Cygwin could be deemed as cross compiling
    # unfortunately there isn't a complete separate GCC toolchain for MinGW under Cygwin
    #
98
    ifndef HAVE_CYGWIN
99
        # We are REALLY cross compiling
100
        FFMPEGCONF+=--cross-prefix=$(HOST)- --enable-cross-compile
101
        X264CONF=--host=$(HOST)
102
        PTHREADSCONF="CROSS=$(HOST)-"
103 104
    else
        # We are compiling for MinGW on Cygwin
105
        PTHREADSCONF=$(HOSTCC)
106
    endif
107
endif
108 109

#
110
# Special target-dependant options
111
#
112
ifdef HAVE_WIN32
113
HOSTCONF+= --without-pic --disable-shared --enable-msw --disable-dependency-tracking
114
FFMPEGCONF+= --target-os=mingw32 --enable-memalign-hack --cpu=i686 --arch=i686 --disable-debug
115 116 117 118
endif

ifdef HAVE_WINCE
HOSTCONF+= --without-pic --disable-shared
119
FFMPEGCONF+= --enable-mingwce --cpu=armv4l --disable-debug --disable-encoders --disable-muxers --disable-mpegaudio-hp --disable-decoder=snow --disable-decoder=vc9 --disable-decoder=wmv3 --disable-decoder=vorbis --disable-decoder=dvdsub --disable-decoder=dvbsub --disable-protocols
120 121 122
endif

ifdef HAVE_UCLIBC
123
ifdef HAVE_BIGENDIAN
124
FFMPEGCONF+= --arch=armeb --enable-armv5te --enable-iwmmxt
125 126 127
else
FFMPEGCONF+= --arch=armv4l
endif
128
FFMPEGCONF+= --enable-small --disable-debug --disable-mpegaudio-hp
129
FFMPEG_CFLAGS += -DHAVE_LRINTF --std=c99
130
else
131
FFMPEGCONF+= --enable-libmp3lame --enable-libfaac --enable-swscale
132 133
endif

134
ifdef HAVE_BEOS
135
FFMPEGCONF+= --cpu=x86 --disable-debug --disable-audio-beos
136 137
endif

138
ifdef HAVE_DARWIN_OS_ON_INTEL
139
FFMPEGCONF += --enable-memalign-hack --cpu=pentium-m
140 141 142
endif

ifdef HAVE_DARWIN_OS
143
X264CONF += --enable-pic
144
ifdef HAVE_DARWIN_OS_ON_INTEL
145 146
FFMPEG_CFLAGS += -DHAVE_LRINTF
endif
147 148
endif

149
ifdef HAVE_AMR
150
FFMPEGCONF+= --enable-libamr-nb --enable-libamr-wb --enable-nonfree
151 152
endif

153 154
DATE=`date +%Y-%m-%d`

155 156 157
# ***************************************************************************
# Standard rules
# ***************************************************************************
158 159 160
# Generated by ./bootstrap from default configuration in src/Distributions
# 
include ../distro.mak
161 162 163 164 165 166 167 168

FORCE:

# ***************************************************************************
# Useful macros
# ***************************************************************************

define EXTRACT_GZ
169
	rm -rf $@ || true
Christophe Mutricy's avatar
oups  
Christophe Mutricy committed
170
	gunzip -c $< | tar xf - --exclude='[*?:<>\|]' 
171 172
	mv $(patsubst %.tar.gz,%,$(patsubst %.tgz,%,$(notdir $<))) $@ || true
	touch $@
173 174 175
endef

define EXTRACT_BZ2
176 177 178 179
	rm -rf $@ || true
	bunzip2 -c $< | tar xf - --exclude='[*?:<>\|]' 
	mv $(patsubst %.tar.bz2,%,$(notdir $<)) $@ || true
	touch $@
180 181
endef

182
define EXTRACT_ZIP
183 184 185 186
	rm -rf $@ || true
	unzip $<
	mv $(patsubst %.zip,%,$(notdir $<)) $@ || true
	touch $@
187 188
endef

189 190 191 192 193 194
### Darwin-specific ###
# These macros prepare the dynamic libraries for inclusion in the Mac OS X
# bundle. For instance if you're building a library named libtoto.dylib,
# which depends on the contrib library libtata.dylib, you should have the
# following entry :
# .toto: toto_directory .tata
195 196 197 198 199
#	cd $< ; ./configure --prefix=$(PREFIX)
#	$(MAKE) -C $<
#	$(MAKE) -C $< install
#	$(INSTALL_NAME)
#	touch $@
200 201 202 203 204

ifeq ($(HOST),i586-pc-beos)
# We test if the file actually exists, as sometimes (but not always)
# libtool won't accept to build the shared library
define INSTALL_NAME
205 206 207 208 209
	if test -f $(PREFIX)/lib/lib$(patsubst .%,%,$@).so ; then \
		mkdir -p $(PREFIX)/vlc-lib ; \
		cp $(PREFIX)/lib/lib$(patsubst .%,%,$@).so \
		  $(PREFIX)/vlc-lib/ ; \
	fi
210 211 212 213 214 215 216 217 218
endef
endif

# ***************************************************************************
# perl
# ***************************************************************************

ifeq ($(BUILD),i586-pc-beos)
perl-$(PERL_VERSION).tar.gz:
219
	$(WGET) $(PERL_URL)
220 221

perl: perl-$(PERL_VERSION).tar.gz
222 223
	$(EXTRACT_GZ)
	sed -i.orig 's%prefix="/boot/home/config"%prefix="$(PREFIX)"%'  perl/hints/beos.sh
224 225

.perl: perl
226 227
	(cd $<; ./Configure -d -e && make && make install && ln -sf perl5/$(PERL_VERSION)/BePC-beos/CORE/libperl.so $(PREFIX)/lib/libperl.so)
	touch $@
228 229 230 231 232 233 234 235 236 237

CLEAN_FILE += .perl
CLEAN_PKG += perl
DISTCLEAN_PKG += perl-$(PERL_VERSION).tar.gz
endif

# ***************************************************************************
# autoconf
# ***************************************************************************

238
autoconf-$(AUTOCONF_VERSION).tar.bz2:
239
	$(WGET) $(AUTOCONF_URL)
240

241
autoconf: autoconf-$(AUTOCONF_VERSION).tar.bz2
242
	$(EXTRACT_BZ2)
243 244

.autoconf: autoconf
245 246
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
247 248 249

CLEAN_FILE += .autoconf
CLEAN_PKG += autoconf
250
DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.bz2
251

252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273
# ***************************************************************************
# gnumake
# ***************************************************************************

make-$(GNUMAKE_VERSION).tar.bz2:
	$(WGET) $(GNUMAKE_URL)

gnumake: make-$(GNUMAKE_VERSION).tar.bz2
	$(EXTRACT_BZ2)

.gnumake: gnumake
ifdef HAVE_DARWIN_OS
ifndef HAVE_DARWIN_9
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
endif
endif
	touch $@

CLEAN_FILE += .gnumake
CLEAN_PKG += gnumake
DISTCLEAN_PKG += make-$(GNUMAKE_VERSION).tar.bz2

274 275 276
# ***************************************************************************
# CMake
# ***************************************************************************
Rafaël Carré's avatar
Rafaël Carré committed
277 278 279 280 281
cmake-$(CMAKE_VERSION).tar.gz:
	$(WGET) $(CMAKE_URL)

cmake: cmake-$(CMAKE_VERSION).tar.gz
	$(EXTRACT_GZ)
282
	
Rafaël Carré's avatar
Rafaël Carré committed
283 284
#cmake:
#	cvs -d :pserver:anonymous:cmake@www.cmake.org:/cvsroot/CMake co -d cmake CMake
285 286

.cmake: cmake
287 288 289 290 291 292
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@

CLEAN_FILE += .cmake
CLEAN_PKG += cmake

293 294 295 296 297
# ***************************************************************************
# libtool
# ***************************************************************************

ifdef HAVE_DARWIN_OS
298 299 300 301 302 303 304 305
libtool-$(LIBTOOL_VERSION).tar.gz:
	$(WGET) $(LIBTOOL_URL)

libtool: libtool-$(LIBTOOL_VERSION).tar.gz
	$(EXTRACT_GZ)

.libtool: libtool
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
306 307
	ln -sf libtool $(PREFIX)/bin/glibtool
	ln -sf libtoolize $(PREFIX)/bin/glibtoolize
308
	touch $@
309 310 311

CLEAN_PKG += libtool
DISTCLEAN_PKG += libtool-$(LIBTOOL_VERSION).tar.gz
312 313
CLEAN_FILE += .libtool

314 315 316 317
endif

ifeq ($(BUILD),i586-pc-beos)
libtool-$(LIBTOOL_VERSION).tar.gz:
318
	$(WGET) $(LIBTOOL_URL)
319 320

libtool: libtool-$(LIBTOOL_VERSION).tar.gz
321
	$(EXTRACT_GZ)
322 323

.libtool: libtool
324 325
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
326 327 328 329 330

CLEAN_PKG += libtool
DISTCLEAN_PKG += libtool-$(LIBTOOL_VERSION).tar.gz
CLEAN_FILE += .libtool

331 332
endif

333 334 335 336 337
# ***************************************************************************
# automake
# ***************************************************************************

automake-$(AUTOMAKE_VERSION).tar.gz:
338
	$(WGET) $(AUTOMAKE_URL)
339 340

automake: automake-$(AUTOMAKE_VERSION).tar.gz
341
	$(EXTRACT_GZ)
342 343

.automake: automake
344 345
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
346 347 348 349 350 351 352 353 354

CLEAN_FILE += .automake
CLEAN_PKG += automake
DISTCLEAN_PKG += automake-$(AUTOMAKE_VERSION).tar.gz

# ***************************************************************************
# pkgconfig
# ***************************************************************************

355
pkg-config-$(PKGCFG_VERSION).tar.gz:
356
	$(WGET) $(PKGCFG_URL)
357

358
pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
359 360 361
	$(EXTRACT_GZ)
	patch -d pkgconfig/glib-1.2.8 -p 1 < Patches/glib.patch
	patch -d pkgconfig -p0 < Patches/pkgcfg.patch
362
	(cd $@; autoconf)
363 364

.pkgcfg: pkgconfig
365
	(cd pkgconfig; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
366
	touch $@
367 368 369

CLEAN_FILE += .pkgcfg
CLEAN_PKG += pkgconfig
370
DISTCLEAN_PKG += pkg-config-$(PKGCFG_VERSION).tar.gz
371 372 373 374 375 376

# ***************************************************************************
# gettext
# ***************************************************************************

gettext-$(GETTEXT_VERSION).tar.gz:
377
	$(WGET) $(GETTEXT_URL)
378 379

gettext: gettext-$(GETTEXT_VERSION).tar.gz
380
	$(EXTRACT_GZ)
381
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
382
	patch -p0 < Patches/gettext-win32.patch
383
endif
VideoLAN's avatar
VideoLAN committed
384 385 386
ifdef HAVE_DARWIN_OS
	patch -p0 < Patches/gettext-macosx.patch
endif
387

388
.intl: gettext .iconv
389
ifdef HAVE_WIN32
390
	( cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-relocatable --with-iconv-prefix=$(PREFIX) --disable-java --disable-native-java)
391
else
392
	( cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-java --disable-native-java --without-emacs)
393
endif
394 395 396
ifeq ($(BUILD),i586-pc-beos)
# The ugliest kludge ever - so libtool correctly links shared libraries
# on BeOS. Sorry, I just can't figure out how libtool works
397
	( cd $< && for f in `find . -name libtool`; do  sed -e 's/ -shared / -nostart /' -e 's/^predep_objects.*/predep_objects=""/' -i  $$f; chmod +x $$f; done )
398 399
endif
ifneq ($(HOST),$(BUILD))
400 401
  ifndef HAVE_CYGWIN
    # We'll use the installed gettext and only need to cross-compile libintl, also build autopoint and gettextsize tools need for VLC bootstrap
402
	( cd $< && make -C gettext-runtime/intl && patch -p1 < ../Patches/libintl.patch && make -C gettext-runtime/intl install && make -C gettext-tools/misc install )
403 404 405 406
  else
    # We are compiling for MinGW on Cygwin -- build the full current gettext
	( cd $< && make && patch -p1 < ../Patches/libintl.patch && make install )
  endif
407 408
else
# Build and install the whole gettext
409
	( cd $< && make && patch -p1 < ../Patches/libintl.patch && make install )
410 411 412
endif
# Work around another non-sense of autoconf.
ifdef HAVE_WIN32
413
	(cd ../include; sed -i.orig '311 c #if 0' libintl.h)
414
endif
415 416
	$(INSTALL_NAME)
	touch $@
417 418 419 420 421 422 423 424 425 426

CLEAN_FILE += .intl
CLEAN_PKG += gettext
DISTCLEAN_PKG += gettext-$(GETTEXT_VERSION).tar.gz

# ***************************************************************************
# libiconv
# ***************************************************************************

libiconv-$(LIBICONV_VERSION).tar.gz:
427
	$(WGET) $(LIBICONV_URL)
428 429

libiconv: libiconv-$(LIBICONV_VERSION).tar.gz
430
	$(EXTRACT_GZ)
431
ifdef HAVE_DARWIN_OS
Rafaël Carré's avatar
Rafaël Carré committed
432
	patch -p0 < Patches/libiconv.patch
433
endif
434
	patch -p0 < Patches/libiconv-autoconf-uclibc.patch
435

436
ifdef HAVE_DARWIN_OS
437
.iconv:
438
	touch $@
439
else
440
.iconv: libiconv
441 442 443
	(cd libiconv; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-nls && make && make install)
	$(INSTALL_NAME)
	touch $@
444
endif
445 446 447 448 449

CLEAN_FILE += .iconv
CLEAN_PKG += libiconv
DISTCLEAN_PKG += libiconv-$(LIBICONV_VERSION).tar.gz

450 451 452 453 454 455 456
# ***************************************************************************
# fontconfig
# ***************************************************************************

fontconfig-$(FONTCONFIG_VERSION).tar.gz:
	$(WGET) $(FONTCONFIG_URL)

457
fontconfig: fontconfig-$(FONTCONFIG_VERSION).tar.gz Patches/fontconfig.patch
458 459
	$(EXTRACT_GZ)
	patch -p0 < Patches/fontconfig.patch
460
	patch -p0 < Patches/fontconfig-nodocs.patch
461
	(cd $@; autoreconf)
462

Rafaël Carré's avatar
Rafaël Carré committed
463
.fontconfig: fontconfig .xml .freetype
464 465
ifdef HAVE_WIN32
  ifdef HAVE_CYGWIN
466
	(cd $<; LIBXML2_CFLAGS=`$(PREFIX)/bin/xml2-config --cflags` ./configure --target=$(HOST) --disable-pic --disable-shared --disable-docs --with-cache-dir=WINDOWSTEMPDIR --with-arch=i686 --with-default-fonts=C:\\windows\fonts --with-add-fonts=C:\\winnt\fonts --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --enable-libxml2 && make && make install)
467
  else
468
	(cd $<; $(HOSTCC) LIBXML2_CFLAGS=`$(PREFIX)/bin/xml2-config --cflags` ./configure $(HOSTCONF) --with-cache-dir=WINDOWSTEMPDIR --with-arch=i686 --with-default-fonts=C:\\windows\fonts --with-add-fonts=C:\\winnt\fonts --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --enable-libxml2 --disable-docs && make && make install)
469 470
  endif
else
471
  ifdef HAVE_DARWIN_OS
472
	(cd $<; $(HOSTCC) LIBXML2_CFLAGS=`xml2-config --cflags` LIBXML2_LIBS=`xml2-config --libs` ./configure $(HOSTCONF) --with-cache-dir=/usr/X11/var/cache/fontconfig --with-confdir=/usr/X11/lib/X11/fonts --with-default-fonts=/System/Library/Fonts --with-add-fonts=/Library/Fonts,~/Library/Fonts --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --enable-libxml2 --disable-docs && make && make install-exec && (cd fontconfig ; make install-data) && cp fontconfig.pc $(PKG_CONFIG_LIBDIR))
473
  else
474
	(cd $<; $(HOSTCC) LIBXML2_CFLAGS=`$(PREFIX)/bin/xml2-config --cflags` ./configure $(HOSTCONF) --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --enable-libxml2 --disable-docs && make && make install)
475
  endif
476 477 478 479 480 481 482 483
endif
	$(INSTALL_NAME)
	touch $@

CLEAN_FILE += .fontconfig
CLEAN_PKG += fontconfig
DISTCLEAN_PKG += fontconfig-$(FONTCONFIG_VERSION).tar.gz

484 485 486 487 488
# ***************************************************************************
# freetype2
# ***************************************************************************

freetype-$(FREETYPE2_VERSION).tar.gz:
489
	$(WGET) $(FREETYPE2_URL)
490 491

freetype2: freetype-$(FREETYPE2_VERSION).tar.gz
492
	$(EXTRACT_GZ)
493 494

.freetype: freetype2
495
ifdef HAVE_CYGWIN
496
	(cd $<; ./configure --target=$(HOST) --disable-pic --disable-shared --prefix=$(PREFIX) && make && make install)
497
else
498
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
499
endif
500 501
	$(INSTALL_NAME)
	touch $@
502 503 504 505 506 507 508 509 510

CLEAN_FILE += .freetype
CLEAN_PKG += freetype2
DISTCLEAN_PKG += freetype-$(FREETYPE2_VERSION).tar.gz

# ***************************************************************************
# fribidi
# ***************************************************************************

511
fribidi-$(FRIBIDI_VERSION).tar.gz:
512
	$(WGET) $(FRIBIDI_URL)
513

514 515
fribidi: fribidi-$(FRIBIDI_VERSION).tar.gz
	$(EXTRACT_GZ)
516
	patch -p0 < Patches/fribidi.patch
517
	( cd $@; rm -f configure; ./bootstrap)
518

519
.fribidi: fribidi .iconv
520
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)  && make && make install)
521 522
	$(INSTALL_NAME)
	touch $@
523 524 525

CLEAN_FILE += .fribidi
CLEAN_PKG += fribidi
526
DISTCLEAN_PKG += fribidi-$(FRIBIDI_VERSION).tar.gz
527 528 529 530 531 532

# ***************************************************************************
# liba52
# ***************************************************************************

a52dec-$(A52DEC_VERSION).tar.gz:
533
	$(WGET) $(A52DEC_URL)
534 535

a52dec: a52dec-$(A52DEC_VERSION).tar.gz
536
	$(EXTRACT_GZ)
537 538

.a52: a52dec
539 540
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && cd liba52 && make && make install && cd ../include && make && make install)
	touch $@
541 542 543 544 545 546 547 548 549 550

CLEAN_FILE += .a52
CLEAN_PKG += a52dec
DISTCLEAN_PKG += a52dec-$(A52DEC_VERSION).tar.gz

# ***************************************************************************
# mpeg2dec
# ***************************************************************************

#mpeg2dec:
551 552 553 554
#	@echo "*** Please press return here : ***"
#	cvs -d $(MPEG2DEC_CVSROOT) login
#	cvs -d $(MPEG2DEC_CVSROOT) co mpeg2dec
#	(cd $@; ./bootstrap)
555

Christophe Mutricy's avatar
Christophe Mutricy committed
556 557
libmpeg2-$(LIBMPEG2_VERSION).tar.gz:
	$(WGET) $(LIBMPEG2_URL)
558 559

# It is easier to use bootstrapped versions...
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
560
#mpeg2dec-$(MPEG2DEC_VERSION).tar.gz:
561 562
#	$(WGET) $(MPEG2DEC_SNAPSHOT)
#	mv mpeg2dec-$(MPEG2DEC_DATE).tar.gz $@
563

Christophe Mutricy's avatar
Christophe Mutricy committed
564
libmpeg2: libmpeg2-$(LIBMPEG2_VERSION).tar.gz
565
	$(EXTRACT_GZ)
566

Christophe Mutricy's avatar
Christophe Mutricy committed
567
.mpeg2: libmpeg2
568 569
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --without-x --disable-sdl && cd libmpeg2 && make && make install && cd ../include && make && make install)
	touch $@
570 571

CLEAN_FILE += .mpeg2
Christophe Mutricy's avatar
Christophe Mutricy committed
572
CLEAN_PKG += libmpeg2
573
#DISTCLEAN_PKG += mpeg2dec-$(MPEG2DEC_VERSION)-cvs.tar.gz
Christophe Mutricy's avatar
Christophe Mutricy committed
574
DISTCLEAN_PKG += libmpeg2-$(LIBMPEG2_VERSION).tar.gz
575 576 577 578 579 580

# ***************************************************************************
# libid3tag
# ***************************************************************************

libid3tag-$(LIBID3TAG_VERSION).tar.gz:
581
	$(WGET) $(LIBID3TAG_URL)
582 583

libid3tag: libid3tag-$(LIBID3TAG_VERSION).tar.gz
584
	$(EXTRACT_GZ)
585
	patch -d libid3tag -p0 < Patches/libid3tag-0.15.1b-fix-CVE-2008-2109.patch
586 587

.id3tag: libid3tag
588 589 590
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
	$(INSTALL_NAME)
	touch $@
591 592 593 594 595

CLEAN_FILE += .id3tag
CLEAN_PKG += libid3tag
DISTCLEAN_PKG += libid3tag-$(LIBID3TAG_VERSION).tar.gz

596 597 598 599 600 601 602 603 604 605 606
# ***************************************************************************
# pcre
# ***************************************************************************

pcre-$(PCRE_VERSION).tar.bz2:
	$(WGET) $(PCRE_URL)

pcre: pcre-$(PCRE_VERSION).tar.bz2
	$(EXTRACT_BZ2)

.pcre: pcre
Rafaël Carré's avatar
Rafaël Carré committed
607
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared && make && make install )
608 609 610 611 612 613
	touch $@

CLEAN_FILE += .pcre
CLEAN_PKG += pcre
DISTCLEAN_PKG += pcre-$(PCRE_VERSION).tar.bz2

614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642
# ***************************************************************************
# lua
# ***************************************************************************

ifdef HAVE_WIN32
LUA_MAKEPLATEFORM=mingw
else
ifdef HAVE_DARWIN_OS
LUA_MAKEPLATEFORM=macosx
else
ifdef HAVE_LINUX
LUA_MAKEPLATEFORM=linux
else
ifdef HAVE_BSD
LUA_MAKEPLATEFORM=bsd
else
LUA_MAKEPLATEFORM=generic
endif
endif
endif
endif

lua-$(LUA_VERSION).tar.gz:
	$(WGET) $(LUA_URL)

lua: lua-$(LUA_VERSION).tar.gz
	$(EXTRACT_GZ)

.lua: lua
643
ifdef HAVE_WIN32
644
	( cd $<; sed -i.orig 's/lua luac/lua.exe/' Makefile ; cd src; sed -i.orig 's/CC=/#CC=/' Makefile; cd ../..;)
645 646
	(cd $<; $(HOSTCC) make $(LUA_MAKEPLATEFORM); cd src; $(HOSTCC) make liblua.a; cd ..;$(HOSTCC) make install INSTALL_TOP=$(PREFIX); $(RANLIB) $(PREFIX)/lib/liblua.a)
	(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)
647
else 
648
	(cd $<; $(HOSTCC) make $(LUA_MAKEPLATEFORM) && make install INSTALL_TOP=$(PREFIX))
649
endif
650 651 652 653 654 655
	touch $@

CLEAN_FILE += .lua
CLEAN_PKG += lua
DISTCLEAN_PKG += lua-$(LUA_VERSION).tar.gz

656 657 658 659 660
# ***************************************************************************
# libmad
# ***************************************************************************

libmad-$(LIBMAD_VERSION).tar.gz:
661
	$(WGET) $(LIBMAD_URL)
662 663

libmad: libmad-$(LIBMAD_VERSION).tar.gz
664
	$(EXTRACT_GZ)
665 666

.mad: libmad
667 668 669
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="-O3" && make && make install)
	$(INSTALL_NAME)
	touch $@
670 671 672 673 674 675 676 677 678 679

CLEAN_FILE += .mad
CLEAN_PKG += libmad
DISTCLEAN_PKG += libmad-$(LIBMAD_VERSION).tar.gz

# ***************************************************************************
# ogg
# ***************************************************************************

libogg-$(OGG_VERSION).tar.gz:
680
	$(WGET) $(OGG_URL)
681 682

libogg: libogg-$(OGG_VERSION).tar.gz
683
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
684 685
	patch -p0 < Patches/ogg.patch
	patch -p0 < Patches/libogg-1.1.patch
686
ifdef HAVE_WINCE
Rafaël Carré's avatar
Rafaël Carré committed
687
	patch -p0 < Patches/libogg-wince.patch
688
endif
689
	(cd $@; autoconf)
690 691

.ogg: libogg
692 693 694
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make install)
	$(INSTALL_NAME)
	touch $@
695 696 697 698 699 700 701 702 703 704

CLEAN_FILE += .ogg
CLEAN_PKG += libogg
DISTCLEAN_PKG += libogg-$(OGG_VERSION).tar.gz

# ***************************************************************************
# vorbis
# ***************************************************************************

#vorbis:
705 706 707 708
#	@echo "*** Please type \"anoncvs\" here : ***"
#	cvs -d $(OGG_CVSROOT) login
#	cvs -d $(OGG_CVSROOT) co vorbis
#	(cd $@; ./autogen.sh)
709 710

libvorbis-$(VORBIS_VERSION).tar.gz:
711
	$(WGET) $(VORBIS_URL)
712 713

libvorbis: libvorbis-$(VORBIS_VERSION).tar.gz
714
	$(EXTRACT_GZ)
715
	patch -p0 < Patches/libvorbis.patch
716 717 718
	patch -d libvorbis -p0 < Patches/libvorbis-r14598-CVE-2008-1420.patch
	patch -d libvorbis -p0 < Patches/libvorbis-r14602-CVE-2008-1419.patch
	patch -d libvorbis -p0 < Patches/libvorbis-r14602-CVE-2008-1423.patch
719
	(cd $@; autoconf)
720 721

.vorbis: libvorbis .ogg
722
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
723 724
#	$(INSTALL_NAME)
	touch $@
725 726

.vorbisenc: .vorbis .ogg
727 728
#	$(INSTALL_NAME)
	touch $@
729 730 731 732 733

CLEAN_FILE += .vorbis .vorbisenc
CLEAN_PKG += libvorbis
DISTCLEAN_PKG += libvorbis-$(VORBIS_VERSION).tar.gz

734 735 736 737 738 739
# ***************************************************************************
# tremor
# ***************************************************************************

ifdef SVN
tremor: 
740
	$(SVN) co http://svn.xiph.org/trunk/Tremor tremor
741 742
	(cd $@ && patch -p0 < ../Patches/tremor.patch)
	(cd $@; rm -f ogg.h && echo "#include <ogg/ogg.h>" > ogg.h && rm -f os_types.h && echo "#include <ogg/os_types.h>" > os_types.h && ./autogen.sh)
743 744
else
tremor-$(TREMOR_VERSION).tar.bz2:
745 746
	echo "tremor snapshot does not exist, you MUST use subversion !"
	exit -1
747
	$(WGET) $(TREMOR_URL)
748 749

tremor: tremor-$(TREMOR_VERSION).tar.bz2
750
	$(EXTRACT_BZ2)
751 752 753
endif

.tremor: tremor .ogg
754 755 756
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared && make && make install)
	$(INSTALL_NAME)
	touch $@
757

758 759
ifdef SVN
tremor-source: tremor
760
	tar cfvz tremor-$(DATE).tar.gz tremor
761 762 763 764

SOURCE += tremor-source
endif

765 766
CLEAN_FILE += .tremor
CLEAN_PKG += tremor
767
#DISTCLEAN_PKG += tremor-$(TREMOR_VERSION).tar.bz2 #no tremor snapshot
768

769 770 771 772 773
# ***************************************************************************
# theora
# ***************************************************************************

libtheora-$(THEORA_VERSION).tar.bz2:
774
	$(WGET) $(THEORA_URL)
775 776

libtheora: libtheora-$(THEORA_VERSION).tar.bz2
777 778
	$(EXTRACT_BZ2)
	patch -p0 < Patches/theora.patch
779
	patch -p0 < Patches/libtheora-includes.patch
780 781 782
ifdef HAVE_WIN32
	patch -p0 < Patches/theora-doc.patch
endif
783
	(cd $@; autoconf)
784

785
THEORACONF = --disable-sdltest --disable-oggtest --disable-vorbistest --disable-examples
786 787 788
ifdef HAVE_WIN32
THEORACONF += --disable-docs
endif
789

790
.theora: libtheora .ogg
791
ifdef HAVE_BEOS
792
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(THEORACONF) --disable-asm && make && make install)
793
else
794
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(THEORACONF)&& make && make install)
795
endif
796 797
	$(INSTALL_NAME)
	touch $@
798 799 800 801 802

CLEAN_FILE += .theora
CLEAN_PKG += libtheora
DISTCLEAN_PKG += libtheora-$(THEORA_VERSION).tar.bz2

Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
803 804 805 806 807
# ***************************************************************************
# shout
# ***************************************************************************

libshout-$(SHOUT_VERSION).tar.gz:
808
	$(WGET) $(SHOUT_URL)
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
809 810

libshout: libshout-$(SHOUT_VERSION).tar.gz
811
	$(EXTRACT_GZ)
Christophe Mutricy's avatar
Christophe Mutricy committed
812
ifdef HAVE_WIN32
813
	patch -p0 < Patches/libshout-win32.patch
814
	(cd $@; autoreconf && automake)
Christophe Mutricy's avatar
Christophe Mutricy committed
815 816
endif
  
817
.shout: libshout .theora .ogg .speex .vorbis
818 819 820
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) &&  make && make install )
	$(INSTALL_NAME)
	touch $@
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
821 822 823 824 825

CLEAN_FILE += .shout
CLEAN_PKG += libshout
DISTCLEAN_PKG += libshout-$(SHOUT_VERSION).tar.gz

826 827 828 829 830
# ***************************************************************************
# flac
# ***************************************************************************

flac-$(FLAC_VERSION).tar.gz:
831
	$(WGET) $(FLAC_URL)
832 833

flac: flac-$(FLAC_VERSION).tar.gz
834
	$(EXTRACT_GZ)
835
ifdef HAVE_WIN32
836
	patch -p0 < Patches/flac-win32.patch
837
endif
838 839

FLAC_DISABLE_FLAGS = --disable-oggtest --disable-xmms-plugin --disable-cpplibs
840

Damien Fouilleul's avatar
Damien Fouilleul committed
841
.flac: flac .ogg 
842
ifdef HAVE_WIN32
843
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(FLAC_DISABLE_FLAGS) && cd src&& make -C libFLAC&& make -C libFLAC install && cd .. && make -C include install)
844
else
845
ifdef HAVE_DARWIN_OS
846
ifdef HAVE_DARWIN_OS_ON_INTEL
847
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-asm-optimizations && cd src && make -C libFLAC && make -C libFLAC install  && cd .. && make -C include install)
848
else
849
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(FLAC_DISABLE_FLAGS) && cd src && make -C libFLAC && make -C libFLAC install  && cd .. && make -C include install)
850
endif
851
else
852
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)  $(FLAC_DISABLE_FLAGS) && cd src && make -C libFLAC && make -C libFLAC install  && cd .. && make -C include install)
853
endif
854
endif
855 856
	$(INSTALL_NAME)
	touch $@
857

Damien Fouilleul's avatar
Damien Fouilleul committed
858
CLEAN_FILE += .flac
859 860 861 862 863 864 865 866
CLEAN_PKG += flac
DISTCLEAN_PKG += flac-$(FLAC_VERSION).tar.gz

# ***************************************************************************
# speex
# ***************************************************************************

speex-$(SPEEX_VERSION).tar.gz:
867
	$(WGET) $(SPEEX_URL)
868 869

speex: speex-$(SPEEX_VERSION).tar.gz
870 871
	$(EXTRACT_GZ)
	patch -p0 < Patches/speex.patch
872
ifdef HAVE_BEOS
873
	patch -p0 < Patches/speex-BeOS.patch
874
endif
875 876

.speex: speex
877 878 879
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-ogg=no && make && make install)
	$(INSTALL_NAME)
	touch $@
880 881 882 883 884 885 886 887 888

CLEAN_FILE += .speex
CLEAN_PKG += speex
DISTCLEAN_PKG += speex-$(SPEEX_VERSION).tar.gz

# ***************************************************************************
# faad2
# ***************************************************************************

889
faad2-$(FAAD2_VERSION).tar.gz:
890
	$(WGET) $(FAAD2_URL)
891

892 893 894
faad2: faad2-$(FAAD2_VERSION).tar.gz
	$(EXTRACT_GZ)
	(cd $@; ./bootstrap)
895

896
.faad: faad2
897
	(cd $< && $(HOSTCC) ./configure $(HOSTCONF) --disable-shared --prefix=$(PREFIX) CFLAGS="-O3" && sed -i.orig "s/shrext_cmds/shrext/g" libtool && make -C libfaad && make -C libfaad install)
898
	touch $@
899 900

CLEAN_FILE += .faad
901 902
CLEAN_PKG += faad2
DISTCLEAN_PKG += faad2-$(FAAD2_VERSION).tar.gz
903 904 905 906 907

# ***************************************************************************
# faac
# ***************************************************************************

908
faac-$(FAAC_VERSION).tar.gz:
909
	$(WGET) $(FAAC_URL)
910

911 912
faac: faac-$(FAAC_VERSION).tar.gz
	$(EXTRACT_GZ)
913 914

.faac: faac
915
	(cd $<; ./bootstrap && $(HOSTCC) ./configure $(HOSTCONF) --without-mp4v2 --prefix=$(PREFIX) --disable-shared && make && make install)
916
	touch $@
917 918 919

CLEAN_FILE += .faac
CLEAN_PKG += faac
920
DISTCLEAN_PKG += faac-$(FAAC_VERSION).tar.gz
921 922 923 924 925 926

# ***************************************************************************
# lame
# ***************************************************************************

lame-$(LAME_VERSION).tar.gz:
927
	$(WGET) $(LAME_URL)
928 929

lame: lame-$(LAME_VERSION).tar.gz
930
	$(EXTRACT_GZ)
931 932

.lame: lame
933 934
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-analyser-hooks --disable-decoder --disable-shared --disable-gtktest --disable-frontend && make && make install)
	touch $@
935 936 937 938 939 940 941 942 943 944

CLEAN_FILE += .lame
CLEAN_PKG += lame
DISTCLEAN_PKG += lame-$(LAME_VERSION).tar.gz

# ***************************************************************************
# libebml
# ***************************************************************************

libebml-$(LIBEBML_VERSION).tar.bz2:
945
	$(WGET) $(LIBEBML_URL)
946

947 948 949
## No reasons to use SVN anymore
#ifdef SVN
#libebml:
950
#	$(SVN) co http://svn.matroska.org/svn/matroska/trunk/libebml libebml
951
#else
952
libebml: libebml-$(LIBEBML_VERSION).tar.bz2
953
	$(EXTRACT_BZ2)
954
#endif
955
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
956
	(cd $@; patch -p0 < ../Patches/libebml-svn-win32.patch)
957
endif
958 959

.ebml: libebml
960
ifdef HAVE_WIN32
961
	(cd $<; make -C make/mingw32 prefix=$(PREFIX) $(HOSTCC2) CFLAGS="$(CFLAGS) -DWIN32" SHARED=no && make -C make/linux install_staticlib install_headers prefix=$(PREFIX) $(HOSTCC2))
962
else
963 964 965 966
	(cd $<; make -C make/linux prefix=$(PREFIX) $(HOSTCC2) staticlib && make -C make/linux install_staticlib install_headers prefix=$(PREFIX))
	$(RANLIB) $(PREFIX)/lib/libebml.a
endif	
	touch $@
967 968 969 970 971 972
## No reasons to use SVN anymore
#ifdef SVN
#libebml-source: libebml
#	tar cfvz  libebml-$(DATE).tar.gz libebml
#SOURCE += libebml-source	
#endif
973

974 975 976 977 978 979 980 981
CLEAN_FILE += .ebml
CLEAN_PKG += libebml
DISTCLEAN_PKG += libebml-$(LIBEBML_VERSION).tar.bz2

# ***************************************************************************
# libmatroska
# ***************************************************************************

982 983 984
libmatroska-$(LIBMATROSKA_VERSION).tar.bz2:
	$(WGET) $(LIBMATROSKA_URL)

985 986 987
## No reasons to use SVN anymore
#if SVN
#libmatroska:
988
#	$(SVN) co http://svn.matroska.org/svn/matroska/trunk/libmatroska libmatroska
989
#else
990
libmatroska: libmatroska-$(LIBMATROSKA_VERSION).tar.bz2
991
	$(EXTRACT_BZ2)
992
#endif 
993
	patch -p0 < ./Patches/libmatroska-kaxblock.patch
994
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
995
	(cd $@; patch -p0 < ../Patches/libmatroska-win32.patch)
996
endif
997

998 999
.matroska: libmatroska .ebml
ifdef HAVE_WIN32
1000
	(cd $<; make -C make/mingw32 prefix=$(PREFIX) $(HOSTCC2) SHARED=no EBML_DLL=no libmatroska.a && make -C make/linux install_staticlib install_headers prefix=$(PREFIX) $(HOSTCC2))
1001
else
1002 1003
	(cd $<; make -C make/linux prefix=$(PREFIX) $(HOSTCC2) staticlib && make -C make/linux install_staticlib install_headers prefix=$(PREFIX))
	$(RANLIB) $(PREFIX)/lib/libmatroska.a
1004
endif
1005
	touch $@
1006

1007 1008 1009 1010 1011 1012 1013
## No reasons to use SVN anymore
#ifdef SVN
#libmatroska-source: libmatroska
#	tar cfvz libmatroska-$(DATE).tar.gz libmatroska
#
#SOURCE += libmatroska-source
#endif
1014

1015 1016 1017 1018 1019
CLEAN_FILE += .matroska
CLEAN_PKG += libmatroska
DISTCLEAN_PKG += libmatroska-$(LIBMATROSKA_VERSION).tar.bz2

# ***************************************************************************
1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053
# libamrnb
# ***************************************************************************

amrnb-$(LIBAMR_NB_VERSION).tar.bz2:
	$(WGET) $(LIBAMR_NB)

libamrnb: amrnb-$(LIBAMR_NB_VERSION).tar.bz2
	$(EXTRACT_BZ2)

.libamrnb: libamrnb
	(cd $<; $(HOSTCC) ./configure --prefix=$(PREFIX) --enable-shared && make && make install)
	touch $@

CLEAN_FILE += .libamrnb
CLEAN_PKG += libamrnb
DISTCLEAN_PKG += amrnb-$(LIBAMR_NB_VERSION).tar.bz2

# ***************************************************************************
# libamrwb
# ***************************************************************************

amrwb-$(LIBAMR_WB_VERSION).tar.bz2:
	$(WGET) $(LIBAMR_WB)

libamrwb: amrwb-$(LIBAMR_WB_VERSION).tar.bz2
	$(EXTRACT_BZ2)

.libamrwb: libamrwb
	(cd $<; $(HOSTCC) ./configure --prefix=$(PREFIX) --enable-shared && make && make install)
	touch $@


CLEAN_FILE += .libamrwb
CLEAN_PKG += libamrwb
1054
DISTCLEAN_PKG += amrwb-$(LIBAMR_WB_VERSION).tar.bz2
1055 1056 1057

# ***************************************************************************

1058 1059 1060
# ffmpeg
# ***************************************************************************

1061
ifdef SVN
1062
ffmpeg:
1063
	$(SVN) co $(FFMPEG_SVN) ffmpeg
1064
ifeq ($(HOST),i586-pc-beos)
Rafaël Carré's avatar
Rafaël Carré committed
1065
	(cd $@; patch -p0 < ../Patches/ffmpeg-svn-beos.patch)
1066
endif
1067
ifdef HAVE_WINCE
Rafaël Carré's avatar
Rafaël Carré committed
1068
	patch -p1 < Patches/ffmpeg-svn-wince.patch
1069
endif
1070 1071 1072
ifdef HAVE_BEOS
	(cd $@; patch -p0 < ../Patches/ffmpeg-alignment.patch)
endif
1073
ifdef HAVE_DARWIN_OS_ON_INTEL
1074
	(cd $@; patch -p0 < ../Patches/ffmpeg-macosx-intel-mmx.patch)
1075
endif
1076
ifdef HAVE_UCLIBC
1077 1078
	patch -p0 < Patches/ffmpeg-svn-uclibc.patch
	patch -p0 < Patches/ffmpeg-svn-internal-define.patch
1079
	patch -p0 < Patches/ffmpeg-svn-libavformat.patch
1080
endif
1081 1082 1083
ifdef HAVE_WIN32
	(cd $@; patch -p0 < ../Patches/ffmpeg-svn-win32.patch)
endif
1084 1085 1086 1087
ifdef NO_TEXT_RELOCATION
	echo "Broken LD. Fix your tools."
	exit -1
endif
1088
else
1089
ffmpeg-$(FFMPEG_VERSION).tar.gz:
1090 1091
	echo "ffmpeg snapshot is too old, you MUST use subversion !"
	exit -1
1092
	$(WGET) $(FFMPEG_URL)
1093

1094 1095 1096
ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz
	$(EXTRACT_GZ)
endif
1097

1098 1099 1100 1101
FFMPEGCONF += --enable-gpl --enable-postproc --disable-vhook --disable-ffserver --disable-ffmpeg --disable-ffplay --disable-devices --disable-protocols --disable-network --enable-swscale
ifdef HAVE_WIN32
FFMPEGCONF += --disable-bzlib
endif
1102

1103
ifdef HAVE_WINCE
1104
.ffmpeg: ffmpeg .zlib
1105
else
1106 1107 1108
ifdef HAVE_UCLIBC
.ffmpeg: ffmpeg
else
1109 1110
.ffmpeg: ffmpeg .faac .lame
endif
1111
endif
1112
	(cd $<; $(HOSTCC) ./configure $(FFMPEGCONF) --prefix=$(PREFIX) --extra-cflags="$(CFLAGS) $(FFMPEG_CFLAGS) -DRUNTIME_CPUDETECT" --extra-ldflags="$(LDFLAGS)" $(FFMPEGCONF) --disable-shared --enable-static && make && make install-libs install-headers)
1113
	touch $@
1114

1115 1116
ifdef SVN
ffmpeg-source: ffmpeg
1117
	tar cfvz ffmpeg-$(DATE).tar.gz ffmpeg
1118 1119 1120 1121

SOURCE += ffmpeg-source
endif

1122
CLEAN_FILE += .ffmpeg
1123
CLEAN_PKG += ffmpeg
1124 1125 1126 1127 1128 1129
DISTCLEAN_PKG += ffmpeg-$(FFMPEG_VERSION).tar.gz

# ***************************************************************************
# libdvdcss
# ***************************************************************************

1130 1131 1132
libdvdcss-$(LIBDVDCSS_VERSION).tar.gz:
	$(WGET) $(LIBDVDCSS_URL)

1133 1134
ifdef SVN
libdvdcss: 
1135
	$(SVN) co svn://svn.videolan.org/libdvdcss/trunk libdvdcss
1136
	cd $@ && sh bootstrap
1137
else
1138
libdvdcss: libdvdcss-$(LIBDVDCSS_VERSION).tar.gz
1139
	$(EXTRACT_GZ)
1140
endif
1141 1142

.dvdcss: libdvdcss
1143 1144 1145
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --disable-doc --prefix=$(PREFIX) && make && make install)
	$(INSTALL_NAME)
	touch $@
1146

1147 1148
ifdef SVN
libdvdcss-source: libdvdcss
1149
	tar cfvz libdvdcss-$(DATE).tar.gz libdvdcss
1150 1151 1152 1153

SOURCE += libdvdcss-source
endif

1154 1155 1156 1157
CLEAN_FILE += .dvdcss
CLEAN_PKG += libdvdcss
DISTCLEAN_PKG += libdvdcss-$(LIBDVDCSS_VERSION).tar.gz

1158 1159 1160
# ***************************************************************************
# dummy dvdread to trigger the INSTALL_NAME script
# ***************************************************************************
1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171
# .dvdread: .dvdnav
# 	$(INSTALL_NAME)
# 	touch $@
# 
# CLEAN_FILE += .dvdread

# ***************************************************************************
# libdvdread: We use dvdnav's dvdread
# ***************************************************************************


1172 1173 1174
libdvdread: 
	$(SVN) co $(LIBDVDREAD_SVN)  libdvdread
	(cd $@; patch  -p 0 < ../Patches/libdvdread.patch)
1175
ifdef HAVE_WIN32
1176
	(cd $@; patch  -p 0 < ../Patches/libdvdread-win32.patch)
1177
endif
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1178
	(cd $@; sh autogen.sh noconfig)
1179 1180

.libdvdread: libdvdread .dvdcss
1181
	(cd libdvdread; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --with-libdvdcss=$(PREFIX) && make && make install)
1182 1183
	$(INSTALL_NAME)
	touch $@
1184

1185 1186
CLEAN_FILE += .libdvdread
CLEAN_PKG += libdvdread
1187
#DISTCLEAN_PKG += libdvdread-$(LIBDVDREAD_VERSION).tar.gz
1188 1189 1190 1191 1192

# ***************************************************************************
# libdvdnav
# ***************************************************************************

1193 1194
ifdef SVN
libdvdnav:
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1195
	$(SVN) co $(LIBDVDNAV_SVN)  libdvdnav
1196
	patch -d libdvdnav -p0 < Patches/libdvdnav.patch
1197 1198
	(cd $@; ./autogen.sh noconfig)
else
1199
libdvdnav-$(LIBDVDNAV_VERSION).tar.gz:
1200
	$(WGET) $(LIBDVDNAV_URL)
1201

1202 1203
libdvdnav: libdvdnav-$(LIBDVDNAV_VERSION).tar.gz
	$(EXTRACT_GZ)
1204
	patch -p0 < Patches/libdvdnav.patch
1205 1206 1207
ifdef HAVE_WIN32
	patch -p0 < Patches/libdvdnav-win32.patch
endif
1208
	(cd $@; ./autogen.sh noconfig)
1209
endif
1210

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1211
.dvdnav: libdvdnav .libdvdread
1212
ifdef HAVE_WIN32	
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1213
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --enable-static --prefix=$(PREFIX) && make && make install)
1214
else
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1215
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --enable-static --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -Dlseek64=lseek -Doff64_t=off_t" && make && make install)
1216
endif
1217 1218
	$(INSTALL_NAME)
	touch $@
1219 1220 1221

CLEAN_FILE += .dvdnav
CLEAN_PKG += libdvdnav
1222
DISTCLEAN_PKG += libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2
1223 1224 1225 1226 1227

# ***************************************************************************
# libdvbpsi
# ***************************************************************************

1228
libdvbpsi5-$(LIBDVBPSI_VERSION).tar.gz:
1229
	$(WGET) $(LIBDVBPSI_URL)
1230

1231
libdvbpsi: libdvbpsi5-$(LIBDVBPSI_VERSION).tar.gz
1232
	$(EXTRACT_GZ)
1233 1234

.dvbpsi: libdvbpsi
1235 1236 1237
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && cd src && make && make install)
	$(INSTALL_NAME)
	touch $@
1238 1239 1240

CLEAN_FILE += .dvbpsi
CLEAN_PKG += libdvbpsi
1241
DISTCLEAN_PKG += libdvbpsi5-$(LIBDVBPSI_VERSION).tar.gz
1242 1243 1244 1245 1246

# ***************************************************************************
# live
# ***************************************************************************

1247
live555-$(LIVEDOTCOM_VERSION).tar.gz:
1248
	$(WGET) $(LIVEDOTCOM_URL)
1249

1250
live: live555-$(LIVEDOTCOM_VERSION).tar.gz
1251
	$(EXTRACT_GZ)
1252
	patch -p0 < Patches/live-noapps.patch
1253
	patch -p0 < Patches/live-uselocale.patch
1254 1255

.live: live
1256 1257 1258
ifdef HAVE_WIN32  
	(cd $<;./genMakefiles mingw && make $(HOSTCC)) 
else 
1259
ifdef HAVE_DARWIN_OS
1260 1261
	(cd $<; sed -e 's%EXTRA_CFLAGS%$(EXTRA_CFLAGS)%' -e 's%EXTRA_LDFLAGS%$(EXTRA_LDFLAGS)%' -i.orig  config.macosx)
	(cd $<; ./genMakefiles macosx && make)
1262
else
1263
	(cd $<; sed -e 's/=/= EXTRA_CPPFLAGS/' -e 's%EXTRA_CPPFLAGS%-I/include%' -i.orig groupsock/Makefile.head)
1264 1265 1266 1267 1268
ifdef HAVE_UCLIBC
ifdef HAVE_BIGENDIAN
	(cd $<; ./genMakefiles armeb-uclibc && make $(HOSTCC))
endif
else
1269
	(cd $<; ./genMakefiles linux && make $(HOSTCC))
1270
endif
1271
endif
1272
endif
1273 1274 1275 1276 1277 1278 1279 1280
	cp $</groupsock/libgroupsock.a $(PREFIX)/lib
	cp $</liveMedia/libliveMedia.a $(PREFIX)/lib
	cp $</UsageEnvironment/libUsageEnvironment.a $(PREFIX)/lib
	cp $</BasicUsageEnvironment/libBasicUsageEnvironment.a $(PREFIX)/lib
	cp $</groupsock/include/*.hh $</groupsock/include/*.h $(PREFIX)/include
	cp $</liveMedia/include/*.hh $(PREFIX)/include
	cp $</UsageEnvironment/include/*.hh $(PREFIX)/include
	cp $</BasicUsageEnvironment/include/*.hh $(PREFIX)/include
1281
	touch $@
1282 1283 1284

CLEAN_FILE += .live
CLEAN_PKG += live
1285
DISTCLEAN_PKG += live555-$(LIVEDOTCOM_VERSION).tar.gz
1286 1287 1288 1289 1290 1291

# ***************************************************************************
# goom2k4
# ***************************************************************************

goom$(GOOM2k4_VERSION).tar.gz:
1292 1293
	$(WGET) $(GOOM2k4_URL)
	mv goom-$(GOOM2k4_VERSION)-src.tar.gz goom$(GOOM2k4_VERSION).tar.gz
1294 1295

goom: goom$(GOOM2k4_VERSION).tar.gz
1296
	$(EXTRACT_GZ)
1297
ifdef HAVE_DARWIN_OS
Rafaël Carré's avatar
Rafaël Carré committed
1298
	patch -p0 < Patches/goom.patch
1299 1300
endif
ifdef HAVE_WIN32
1301
	(cd $@; dos2unix configure.in)
Rafaël Carré's avatar
Rafaël Carré committed
1302
	patch -p0 < Patches/goom2k4-0-win32.patch
1303 1304
else
	patch -p0 < Patches/goom2k4-0-mmx.patch
1305
endif
1306 1307

.goom2k4: goom
1308
ifdef HAVE_DARWIN_OS
1309
	(cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
1310
else
1311
	(cd $< && rm -f configure; aclocal -I m4/ && automake --add-missing && autoconf configure.in > configure && $(HOSTCC) sh ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static --disable-glibtest --disable-gtktest && make && make install)
1312
endif
1313
	touch $@
1314 1315 1316

CLEAN_FILE += .goom2k4
CLEAN_PKG += goom
1317
DISTCLEAN_PKG += goom$(GOOM2k4_VERSION).tar.gz
1318 1319 1320 1321 1322 1323

# ***************************************************************************
# libcaca
# ***************************************************************************

libcaca-$(LIBCACA_VERSION).tar.gz:
1324
	$(WGET) $(LIBCACA_URL)
1325 1326

libcaca: libcaca-$(LIBCACA_VERSION).tar.gz
1327
	$(EXTRACT_GZ)
1328 1329 1330 1331
ifdef HAVE_DARWIN_OS
	#remove me at next libcaca upgrade
	patch -p0 < Patches/caca_driver_cocoa.diff
	patch -p0 < Patches/caca_macosx.diff
1332 1333 1334
ifndef HAVE_DARWIN_OS_ON_INTEL
	patch -p0 < Patches/caca-osx-ppc.patch
endif
1335
endif
1336 1337

.caca: libcaca
1338
ifdef HAVE_WIN32
1339
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-win32 --disable-x11 --disable-imlib2 --disable-doc --disable-ruby --disable-csharp --disable-cxx && make && make install)
1340
else
1341
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-imlib2 --disable-doc --disable-ruby --disable-csharp --disable-cxx && make && make install)
1342
endif
1343
	touch $@
1344 1345 1346 1347 1348 1349

CLEAN_FILE += .caca
CLEAN_PKG += libcaca
DISTCLEAN_PKG += libcaca-$(LIBCACA_VERSION).tar.gz

# ***************************************************************************
Antoine Cellerier's avatar
Antoine Cellerier committed
1350
# libdca
1351 1352
# ***************************************************************************

1353 1354 1355 1356 1357
libdca-$(LIBDCA_VERSION).tar.bz2:
	$(WGET) $(LIBDCA_URL)

libdca: libdca-$(LIBDCA_VERSION).tar.bz2
	$(EXTRACT_BZ2)
1358

1359
.dca: libdca
1360
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1361
	$(INSTALL_NAME)
1362
	touch $@
1363

1364
CLEAN_FILE += .dca
Antoine Cellerier's avatar
Antoine Cellerier committed
1365
CLEAN_PKG += libdca
1366
DISTCLEAN_PKG += libdca-$(LIBDCA_VERSION).tar.bz2
1367

1368
# ***************************************************************************
1369
# libx264
1370 1371
# ***************************************************************************

1372 1373 1374
x264-$(X264_VERSION).tar.gz:
	$(WGET) $(X264_URL)

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387
ifdef GIT
x264:
	$(GIT) clone git://git.videolan.org/x264.git
	patch -p0 < Patches/x264-svn-info-threads.patch
ifdef HAVE_WIN32
	(cd x264; patch -p0 < ../Patches/x264-svn-win32.patch )
endif
ifdef HAVE_DARWIN_OS
	(cd $@; patch -p0 < ../Patches/x264-svn-darwin.patch )
endif

else

1388
x264: x264-$(X264_VERSION).tar.gz
1389
	$(EXTRACT_GZ)
1390
ifdef HAVE_WIN32
1391
  ifndef HAVE_CYGWIN
Rafaël Carré's avatar
Rafaël Carré committed
1392
	(cd x264;patch -p0 <../Patches/x264-20050624-win32.patch)
1393
  endif
1394
else
Rafaël Carré's avatar
Rafaël Carré committed
1395
	patch -p0 < Patches/x264.patch
1396
	rm x264/x264.c
1397
endif
1398
endif
1399

1400 1401
ifdef HAVE_WIN32
.x264: x264 .pthreads
1402 1403 1404
  ifdef HAVE_CYGWIN
	(cd $<; $(HOSTCC) RANLIB="ranlib" AR="ar" STRIP="strip" ./configure $(X264CONF) --prefix="$(PREFIX)" --extra-cflags="-I$(PREFIX)/include" --extra-ldflags="-L$(PREFIX)/lib" && make && make install)
  else
1405
	(cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" --disable-pthread && make && make install)
1406
  endif
1407
else
1408 1409 1410 1411 1412
ifdef HAVE_DARWIN_OS_ON_INTEL
  .x264: x264 .yasm
	(cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" && make && make install)
else
  .x264: x264
1413
	(cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" && make && make install)
1414
endif
1415
endif
1416
	touch $@
1417

1418
ifdef SVN
1419 1420
x264-source: x264
	tar cfvz x264-$(DATE).tar.gz x264
1421

1422
SOURCE += x264-source
1423 1424
endif

1425 1426 1427 1428
CLEAN_FILE += .x264
CLEAN_PKG += x264
DISTCLEAN_PKG += x264-$(X264_VERSION).tar.gz

1429 1430 1431 1432 1433
# ***************************************************************************
# libmodplug
# ***************************************************************************

libmodplug-$(MODPLUG_VERSION).tar.gz:
1434
	$(WGET) $(MODPLUG_URL)
1435 1436

libmodplug: libmodplug-$(MODPLUG_VERSION).tar.gz
1437
	$(EXTRACT_GZ)
1438
ifdef HAVE_WIN32
1439
	patch -p0 < Patches/libmodplug-win32.patch
1440
	(cd $@; autoreconf)
1441
endif
1442 1443

.mod: libmodplug
1444 1445
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
	touch $@
1446 1447 1448 1449 1450 1451 1452 1453 1454

CLEAN_FILE += .mod
CLEAN_PKG += libmodplug
DISTCLEAN_PKG += libmodplug-$(MODPLUG_VERSION).tar.gz

# ***************************************************************************
# libcddb
# ***************************************************************************

1455
libcddb-$(CDDB_VERSION).tar.bz2:
1456
	$(WGET) $(CDDB_URL)
1457

1458
libcddb: libcddb-$(CDDB_VERSION).tar.bz2
1459
	$(EXTRACT_BZ2)
1460 1461

.cddb: libcddb
1462 1463
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" LDFLAGS="$(LDFLAGS) -liconv" && make && make install)
	touch $@
1464 1465 1466

CLEAN_FILE += .cddb
CLEAN_PKG += libcddb
1467
DISTCLEAN_PKG += libcddb-$(CDDB_VERSION).tar.bz2
1468 1469 1470 1471 1472 1473

# ***************************************************************************
# vcdimager
# ***************************************************************************

vcdimager-$(VCDIMAGER_VERSION).tar.gz:
1474
	$(WGET) $(VCDIMAGER_URL)
1475 1476

vcdimager: vcdimager-$(VCDIMAGER_VERSION).tar.gz
1477
	$(EXTRACT_GZ)
1478 1479 1480

ifdef HAVE_DARWIN_OS
.vcdimager: vcdimager
1481 1482
	(cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static LDFLAGS="$(LDFLAGS) -framework CoreFoundation -framework IOKit" && make && make install)
	touch $@
1483 1484
else
.vcdimager: vcdimager
1485 1486
	(cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
	touch $@
1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497
endif

CLEAN_FILE += .vcdimager
CLEAN_PKG += vcdimager
DISTCLEAN_PKG += vcdimager-$(VCDIMAGER_VERSION).tar.gz

# ***************************************************************************
# libcdio
# ***************************************************************************

libcdio-$(CDIO_VERSION).tar.gz:
1498
	$(WGET) $(CDIO_URL)
1499 1500

libcdio: libcdio-$(CDIO_VERSION).tar.gz
1501
	$(EXTRACT_GZ)
1502
	patch -p0 < Patches/libcdio-install-cdparanoia-pc.patch
1503 1504

.cdio: libcdio
1505
	(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)
1506
	touch $@
1507 1508 1509 1510 1511

CLEAN_FILE += .cdio
CLEAN_PKG += libcdio
DISTCLEAN_PKG += libcdio-$(CDIO_VERSION).tar.gz

1512 1513 1514 1515 1516
# ***************************************************************************
# wxWidgets
# ***************************************************************************

wxWidgets-$(WXWIDGETS_VERSION).tar.gz:
1517
	$(WGET) $(WXWIDGETS_URL)
1518 1519

wxwidgets: wxWidgets-$(WXWIDGETS_VERSION).tar.gz
1520 1521
	$(EXTRACT_GZ)
	(cd wxwidgets; patch -p0 < ../Patches/wxwidgets_uri.patch)
1522 1523

.wxwidgets: wxwidgets
1524 1525 1526
	(cd wxwidgets; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-optimise --disable-debug --enable-unicode --disable-threads --disable-gif --disable-pcx --disable-iff --disable-pnm --without-zlib  --without-libpng --without-libjpeg --without-libtiff --without-regex  --disable-zipstream --disable-fs_zip --enable-no_rtti  --enable-no_exceptions --disable-exceptions --disable-stl --disable-html --without-expat --disable-protocols --disable-protocol --disable-xrc --disable-sound --disable-dialupman --disable-mediactrl  --disable-joystick --disable-grid --disable-datepick --disable-postscript--disable-filesystem --disable-fileproto --disable-ipc --disable-sockets --disable-precomp-headers && make && make install)
	$(INSTALL_NAME)
	touch $@
1527 1528 1529 1530 1531

CLEAN_FILE += .wxwidgets
CLEAN_PKG += wxwidgets
DISTCLEAN_PKG += wxWidgets-$(WXWIDGETS_VERSION).tar.gz

1532 1533 1534 1535
# ***************************************************************************
# qt4 (win32 binary)
# ***************************************************************************

1536
qt4-$(QT4_VERSION)-win32-bin.tar.bz2:
1537
	$(WGET) $(QT4_URL)
Clément Stenac's avatar
Clément Stenac committed
1538

1539
qt4_win32: qt4-$(QT4_VERSION)-win32-bin.tar.bz2
1540
	$(EXTRACT_BZ2)
1541
	chmod -R 755 qt4_win32
Clément Stenac's avatar
Clément Stenac committed
1542

1543
.qt4_win32: qt4_win32
1544
	(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)
1545
ifeq ($(BUILD),i686-pc-cygwin)
1546
	(cd qt4_win32;cp bin/*.exe $(PREFIX)/bin)
1547
else
1548
	(cd qt4_win32;cp bin/* $(PREFIX)/bin)
1549
endif
1550
	touch $@
Clément Stenac's avatar
Clément Stenac committed
1551

1552 1553
CLEAN_FILE += .qt4_win32
CLEAN_PKG += qt4_win32
1554
DISTCLEAN_PKG += qt4-$(QT4_VERSION)-win32-bin.tar.bz2
Clément Stenac's avatar
Clément Stenac committed
1555

1556 1557 1558 1559 1560 1561 1562
# ***************************************************************************
# qt4 (trolltech binaries)
# ***************************************************************************

qt-win-opensource-$(QT4T_VERSION)-mingw.exe:
	wget $(QT4T_URL)

1563
Qt_win32: qt-win-opensource-$(QT4T_VERSION)-mingw.exe
1564
	mkdir Qt
1565
	7z -oQt x qt-win-opensource-$(QT4T_VERSION)-mingw.exe \$$OUTDIR/bin\ /bin \$$OUTDIR/bin\ /lib \$$OUTDIR/bin\ /include/QtCore \$$OUTDIR/bin\ /include/QtGui \$$OUTDIR/bin\ /src/gui \$$OUTDIR/bin\ /src/corelib \$$OUTDIR/bin\ /translations
1566 1567 1568
	mv Qt/\$$OUTDIR/bin\ /* Qt/ && rmdir Qt/\$$OUTDIR/bin\  Qt/\$$OUTDIR
	find Qt -name '* ' -exec sh -c "mv \"{}\" `echo {}`" \;
	find Qt/src -name '*.cpp' -exec rm {} \;
1569
	find Qt/translations -type f -a ! -name 'qt_*.qm' -exec rm {} \;
1570 1571 1572 1573
	find Qt/include -name '*.h' -exec sh -c "mv {} {}.tmp; sed 's,..\/..\/src,..\/src,' {}.tmp > {}; rm -f {}.tmp" \;
	mkdir Qt/lib/pkgconfig
	sed -e s,@@VERSION@@,$(QT4T_VERSION), -e s,@@PREFIX@@,$(PREFIX), Patches/QtCore.pc.in > Qt/lib/pkgconfig/QtCore.pc
	sed -e s,@@VERSION@@,$(QT4T_VERSION), -e s,@@PREFIX@@,$(PREFIX), Patches/QtGui.pc.in > Qt/lib/pkgconfig/QtGui.pc
1574

1575
.Qt_win32: Qt_win32
1576
	mkdir -p $(PREFIX)/bin $(PREFIX)/include/qt4/src $(PREFIX)/lib/pkgconfig $(PREFIX)/share/qt4/translations
1577 1578 1579 1580
	cp Qt/bin/moc.exe Qt/bin/rcc.exe Qt/bin/uic.exe $(PREFIX)/bin
	cp -r Qt/include/QtCore Qt/include/QtGui $(PREFIX)/include/qt4
	cp -r Qt/src/corelib Qt/src/gui $(PREFIX)/include/qt4/src
	cp Qt/lib/libQtCore4.a Qt/lib/libQtGui4.a $(PREFIX)/lib
1581 1582
	cp Qt/lib/pkgconfig/* $(PREFIX)/lib/pkgconfig
	cp Qt/translations/* $(PREFIX)/share/qt4/translations 
1583
	touch $@
1584

1585 1586
CLEAN_FILE += .Qt_win32
CLEAN_PKG += Qt_win32
1587
DISTCLEAN_PKG += qt-win-opensource-$(QT4T_VERSION)-mingw.exe
1588

1589 1590 1591 1592
# ***************************************************************************
# qt4 (source-code compilation for Mac)
# ***************************************************************************

1593
qt-mac-opensource-src-$(QT4_MAC_VERSION).tar.gz:
1594 1595
	$(WGET) $(QT4_MAC_URL)

1596
qt4_mac: qt-mac-opensource-src-$(QT4_MAC_VERSION).tar.gz
1597 1598 1599
	$(EXTRACT_GZ)

.qt4_mac: qt4_mac
1600
	(cd qt4_mac; ./configure -prefix $(PREFIX) -release -fast -no-qt3support -nomake "examples demos" -sdk $(MACOSX_SDK) -no-framework && make && make install)
1601 1602 1603 1604
	touch $@

CLEAN_FILE += .qt4_mac
CLEAN_PKG += qt4_mac
1605
DISTCLEAN_PKG += qt-mac-opensource-src-$(QT4_MAC_VERSION).tar.gz
1606

1607 1608 1609 1610 1611
# ***************************************************************************
# zlib
# ***************************************************************************

zlib-$(ZLIB_VERSION).tar.gz:
1612
	$(WGET) $(ZLIB_URL)
1613 1614

zlib: zlib-$(ZLIB_VERSION).tar.gz
1615
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
1616
	patch -p0 < Patches/zlib.patch
1617 1618

.zlib: zlib
1619 1620 1621
	(cd zlib; $(HOSTCC2) ./configure --prefix=$(PREFIX) && make install)
	$(INSTALL_NAME)
	touch $@
1622 1623 1624 1625 1626

CLEAN_FILE += .zlib
CLEAN_PKG += zlib
DISTCLEAN_PKG += zlib-$(ZLIB_VERSION).tar.gz

1627 1628 1629 1630 1631
# ***************************************************************************
# PortAudio 
# ***************************************************************************

pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz:
1632
	$(WGET) $(PORTAUDIO_URL)
1633 1634

portaudio: pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz
1635
	$(EXTRACT_GZ)
1636
ifneq ($(HOST),$(BUILD))
Rafaël Carré's avatar
Rafaël Carré committed
1637
	(patch -p0 < Patches/portaudio-cross.patch;cd $@;  autoconf)
1638
endif
1639 1640

.portaudio: portaudio 
1641 1642 1643
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make  install)
	$(INSTALL_NAME)
	touch $@
1644 1645 1646

CLEAN_FILE += .portaudio
CLEAN_PKG += portaudio
1647
DISTCLEAN_PKG += pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz
1648

1649 1650 1651 1652 1653
# ***************************************************************************
# xml
# ***************************************************************************

libxml2-$(XML_VERSION).tar.gz:
1654
	$(WGET) $(XML_URL)
1655 1656

xml: libxml2-$(XML_VERSION).tar.gz
1657
	$(EXTRACT_GZ)
Jean-Paul Saman's avatar
Jean-Paul Saman committed
1658 1659 1660
ifdef HAVE_UCLIBC
	patch -p0 < Patches/xml2-uclibc.patch
endif
1661

1662
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
1663

1664
.xml: xml
1665
  ifdef HAVE_CYGWIN
1666
	(cd xml; ac_cv_header_pthread_h="no" CFLAGS="-DLIBXML_STATIC" $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(XMLCONF) && make && make install)
1667
  else
1668
	(cd xml; CFLAGS="-DLIBXML_STATIC" $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(XMLCONF) && make && make install)
1669
  endif
1670
ifndef HAVE_DARWIN_OS
1671
	$(INSTALL_NAME)
1672
endif
1673
	touch $@
1674 1675 1676 1677 1678

CLEAN_FILE += .xml
CLEAN_PKG += xml
DISTCLEAN_PKG += libxml2-$(XML_VERSION).tar.gz

1679 1680 1681 1682 1683
# ***************************************************************************
# twolame
# ***************************************************************************

twolame-$(TWOLAME_VERSION).tar.gz:
1684
	$(WGET) $(TWOLAME_URL)
1685 1686

twolame: twolame-$(TWOLAME_VERSION).tar.gz
1687
	$(EXTRACT_GZ)
1688
ifdef HAVE_BEOS
Rafaël Carré's avatar
Rafaël Carré committed
1689
	patch -p0 < Patches/twolame-BeOS.patch
1690
endif
Christophe Mutricy's avatar
Christophe Mutricy committed
1691
ifdef HAVE_WIN32
1692
	(cd twolame/win32; $(WGET) "http://twolame.svn.sourceforge.net/viewvc/*checkout*/twolame/trunk/win32/winutil.h")
Christophe Mutricy's avatar
Christophe Mutricy committed
1693
endif	
1694 1695

.twolame: twolame
1696
	(cd twolame; $(HOSTCC) CFLAGS="${CFLAGS}  -DLIBTWOLAME_STATIC" ./configure $(HOSTCONF) --prefix=$(PREFIX) && cd libtwolame &&  make && make install)
1697 1698
	$(INSTALL_NAME)
	touch $@
1699 1700 1701

CLEAN_FILE += .twolame
CLEAN_PKG += twolame
1702
DISTCLEAN_PKG += twolame-$(TWOLAME_VERSION).tar.gz
1703 1704 1705 1706 1707 1708

# ***************************************************************************
# libpng
# ***************************************************************************

libpng-$(PNG_VERSION).tar.bz2:
1709
	$(WGET) $(PNG_URL)
1710 1711

libpng: libpng-$(PNG_VERSION).tar.bz2
1712
	$(EXTRACT_BZ2)
1713
ifdef HAVE_WIN32
1714
	(cd $@; cat ../Patches/libpng-win32.patch | sed s,??PREFIX??,$(PREFIX), | patch -p0)
1715
else
1716
	(cat Patches/libpng-osx.patch | sed -e 's%??PREFIX??%$(PREFIX)%' -e 's%??EXTRA_CFLAGS??%$(EXTRA_CFLAGS)%' -e 's%??EXTRA_LDFLAGS??%$(EXTRA_LDFLAGS)%' | patch -p0)
1717
endif
Rafaël Carré's avatar
Rafaël Carré committed
1718
	(patch -p0 < Patches/libpng-makefile.patch)
1719
ifdef HAVE_DARWIN_OS_ON_INTEL
Rafaël Carré's avatar
Rafaël Carré committed
1720
	(patch -p0 < Patches/libpng-darwin-mactel.patch)
1721
endif
1722

1723
.png: libpng .zlib
1724
ifdef HAVE_DARWIN_OS
1725
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1726 1727
else
ifdef HAVE_WIN32
1728
	(cd $<; rm -f INSTALL; cp scripts/makefile.cygwin Makefile && make $(HOSTCC) && make install-static)
1729 1730
else
ifeq ($(PNG_VERSION),1.2.8)
1731
	(cd $<; PREFIX=$(PREFIX) DESTDIR=$(PREFIX) cp scripts/makefile.linux Makefile && make && make install)
1732
else
1733
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1734
endif
1735
endif
1736
endif
1737 1738
	$(INSTALL_NAME)
	touch $@
1739 1740 1741

CLEAN_FILE += .png
CLEAN_PKG += libpng
1742
DISTCLEAN_PKG += libpng-$(PNG_VERSION).tar.bz2
1743 1744 1745 1746 1747 1748

# ***************************************************************************
# libzvbi
# ***************************************************************************

zvbi-$(ZVBI_VERSION).tar.bz2:
1749
	$(WGET) $(ZVBI_URL)
1750 1751

zvbi: zvbi-$(ZVBI_VERSION).tar.bz2
1752
	$(EXTRACT_BZ2)
1753
ifdef HAVE_WIN32
1754
	(cd $@; patch -p1 < ../Patches/zvbi-win32.patch; patch -p1 < ../Patches/zvbi-makefile.patch; autoreconf)
1755
endif
1756

1757 1758 1759
ifdef HAVE_WIN32
.zvbi: zvbi .pthreads
else
1760
.zvbi: zvbi
1761
endif
1762
ifdef HAVE_DARWIN_OS
1763
	(cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -fnested-functions" && make && make install)
1764 1765 1766
else
ifdef HAVE_WIN32
	(cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) --std=gnu99" LIBS="-lpthreadGC2" && make && make install)
1767
else
1768
	(cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" && make -C src && make -C src install)
1769
endif
1770
endif
1771
	$(INSTALL_NAME)
1772
	touch $@
1773 1774 1775

CLEAN_FILE += .zvbi
CLEAN_PKG += zvbi
1776
DISTCLEAN_PKG += zvbi-$(ZVBI_VERSION).tar.bz2
1777 1778

# ***************************************************************************
1779 1780 1781 1782 1783
# libraw1394
# ***************************************************************************

#ifdef SVN
#libraw1394:
1784
#	$(SVN) co -r 325 $(LIBDC1394_SVN)/libraw1394/trunk/libraw1394  libraw1394
1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799
#        (cd $<; libtoolize --copy --force; \
#                autopoint -f; \
#                aclocal -I extras/contrib/share/aclocal; \
#                autoconf; \
#                autoheader; \
#                automake --add-missing --copy -Wall)
#
#else
libraw1394-$(LIBRAW1394_VERSION).tar.gz:
	$(WGET) $(LIBRAW1394_URL)

libraw1394: libraw1394-$(LIBRAW1394_VERSION).tar.gz
	$(EXTRACT_GZ)
#endif

1800
.raw1394: libraw1394
1801
	(cd $<; ./configure --prefix=$(PREFIX) && make && make DESTDIR=$(PREFIX) install)
1802
#	sed 's/^typedef u_int8_t  byte_t;/\/* typedef u_int8_t  byte_t;\*\//'
1803 1804
	touch $@
	
1805
CLEAN_FILE += .raw1394
1806
CLEAN_PKG += libraw1394
1807
DISTCLEAN_PKG += libraw1394-$(LIBRAW1394_VERSION).tar.gz
1808 1809 1810 1811 1812 1813 1814

# ***************************************************************************
# libdc1394
# ***************************************************************************

#ifdef SVN
#libdc1394:
1815
#	$(SVN) co -r 325 $(LIBDC1394_SVN)/libdc1394/trunk/libdc1394  libdc1394
1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830
#        (cd $<; libtoolize --copy --force; \
#                autopoint -f; \
#                aclocal -I extras/contrib/share/aclocal; \
#                autoconf; \
#                autoheader; \
#                automake --add-missing --copy -Wall)
#
#else
libdc1394-$(LIBDC1394_VERSION).tar.gz:
	$(WGET) $(LIBDC1394_URL)

libdc1394: libdc1394-$(LIBDC1394_VERSION).tar.gz
	$(EXTRACT_GZ)
#endif

1831
.dc1394: libdc1394
1832 1833
	(cd $<; ./configure --prefix=$(PREFIX) && \
	 patch -p1 < ../Patches/libdc1394-noexamples.patch && \
1834
	 make && make DESTDIR=$(PREFIX) install)
1835 1836
	touch $@
	
1837
CLEAN_FILE += .dc1394
1838
CLEAN_PKG += libdc1394
1839
DISTCLEAN_PKG += libdc1394-$(LIBDC1394_VERSION).tar.gz
1840 1841

# ***************************************************************************
1842 1843 1844
# gpg-error 
# ***************************************************************************

1845
libgpg-error-$(GPGERROR_VERSION).tar.bz2:
1846
	$(WGET) $(GPGERROR_URL)
1847

1848 1849
libgpg-error: libgpg-error-$(GPGERROR_VERSION).tar.bz2
	$(EXTRACT_BZ2)
1850

1851
.gpg-error: libgpg-error
1852
ifdef HAVE_DARWIN_OS_ON_INTEL
1853
	(cd $<; ./autogen.sh)
1854
endif
1855
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-nls --disable-shared --disable-languages && make && make install)
1856 1857
#	$(INSTALL_NAME)
	touch $@
1858

1859
CLEAN_FILE += .gpg-error
1860
CLEAN_PKG += libgpg-error
1861
DISTCLEAN_PKG += libgpg-error-$(GPGERROR_VERSION).tar.bz2
1862 1863 1864 1865 1866

# ***************************************************************************
# libgcrypt
# ***************************************************************************

1867
libgcrypt-$(GCRYPT_VERSION).tar.bz2:
1868
	$(WGET) $(GCRYPT_URL)
1869

1870
libgcrypt: libgcrypt-$(GCRYPT_VERSION).tar.bz2
1871
	$(EXTRACT_BZ2)
Rafaël Carré's avatar
Rafaël Carré committed
1872
	patch -p0 < Patches/gcrypt.patch
1873

1874 1875
CIPHDIG= --enable-ciphers=aes,des,rfc2268,arcfour --enable-digests=sha1,md5,rmd160 --enable-publickey-digests=dsa 

1876
.gcrypt: libgcrypt .gpg-error
1877
ifdef HAVE_WIN32
1878
	(cd $<; ./autogen.sh && $(HOSTCC) ./configure $(HOSTCONF) --target=i586-mingw32msvc --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(CIPHDIG) --disable-shared --enable-static --disable-nls && make && make install)
1879
else
1880
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(CIPHDIG) && make && make install)
1881
endif
1882 1883
	$(INSTALL_NAME)
	touch $@
1884 1885 1886

CLEAN_FILE += .gcrypt
CLEAN_PKG += libgcrypt
1887
DISTCLEAN_PKG += libgcrypt-$(GCRYPT_VERSION).tar.bz2
1888

1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906
# ***************************************************************************
# opencdk (requires by gnutls 2.x)
# ***************************************************************************

opencdk-$(OPENCDK_VERSION).tar.bz2:
	$(WGET) $(OPENCDK_URL)

opencdk: opencdk-$(OPENCDK_VERSION).tar.bz2 
	$(EXTRACT_BZ2)

.opencdk: opencdk
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(HOSTCC) && make && make install)
	touch $@

CLEAN_FILE += .opencdk
CLEAN_PKG += opencdk
DISTCLEAN_PKG += opencdk-$(OPENCDK_VERSION).tar.bz2

1907 1908 1909 1910 1911
# ***************************************************************************
# gnutls
# ***************************************************************************

gnutls-$(GNUTLS_VERSION).tar.bz2:
1912
	$(WGET) $(GNUTLS_URL)
1913 1914

gnutls: gnutls-$(GNUTLS_VERSION).tar.bz2
1915
	$(EXTRACT_BZ2)
1916
ifdef HAVE_WIN32
1917
	patch -p0 < Patches/gnutls-win32.patch
1918
	(cd $@; cd lgl; ln -sf alloca_.h alloca.h;)
1919
	(cd $@; autoconf)
1920
endif
1921

1922
.gnutls: gnutls .gcrypt .gpg-error 
1923
ifdef HAVE_WIN32
1924
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --target=i586-mingw32msvc --disable-cxx -disable-shared --enable-static --disable-nls   --with-included-opencdk --with-included-libtasn1 && cd lgl && make && cd ../gl && make &&  cd ../lib &&make && make install && cd ../includes && make install)
1925
else
1926
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --disable-cxx --with-included-opencdk --disable-guile && make && make install)
1927
endif
1928 1929
	$(INSTALL_NAME)
	touch $@
1930 1931 1932

CLEAN_FILE += .gnutls
CLEAN_PKG += gnutls
1933
DISTCLEAN_PKG += gnutls-$(GNUTLS_VERSION).tar.bz2
1934 1935 1936 1937 1938 1939

# ***************************************************************************
# libopendaap
# ***************************************************************************

libopendaap-$(DAAP_VERSION).tar.bz2:
1940
	$(WGET) $(DAAP_URL)
1941 1942

libopendaap: libopendaap-$(DAAP_VERSION).tar.bz2
1943
	$(EXTRACT_BZ2)
Rafaël Carré's avatar
Rafaël Carré committed
1944
	patch -p0 < Patches/daap.patch
1945

1946
.opendaap: libopendaap
1947 1948 1949
	(cd $<; ./configure --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" && make install)
	$(INSTALL_NAME)
	touch $@
1950

1951
CLEAN_FILE += .opendaap
1952
CLEAN_PKG += libopendaap
1953
DISTCLEAN_PKG += libopendaap-$(DAAP_VERSION).tar.bz2
1954 1955 1956 1957 1958 1959

# ***************************************************************************
# glib
# ***************************************************************************

glib-$(GLIB_VERSION).tar.gz:
1960
	$(WGET) $(GLIB_URL)
1961 1962

glib: glib-$(GLIB_VERSION).tar.gz
1963
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
1964
	patch -p0 < Patches/glib.patch
1965 1966

.glib: glib
1967 1968
	(cd $<; ./configure --prefix=$(PREFIX) --host=powerpc-apple-macos && make && make install)
	touch $@
1969 1970 1971

CLEAN_FILE += .glibl
CLEAN_PKG += glib
1972
DISTCLEAN_PKG += glib-$(GLIB_VERSION).tar.gz
1973 1974 1975 1976 1977 1978

# ***************************************************************************
# libIDL
# ***************************************************************************

libIDL-$(LIBIDL_VERSION).tar.gz:
1979
	$(WGET) $(LIBIDL_URL)
1980 1981

libIDL: libIDL-$(LIBIDL_VERSION).tar.gz
1982
	$(EXTRACT_GZ)
1983

1984
.IDL: libIDL
1985 1986
	(cd $<; ./configure --prefix=$(PREFIX) --host=powerpc-apple-macos && make && make install )
	touch $@
1987

1988
CLEAN_FILE += .IDL
1989
CLEAN_PKG += libIDL
1990
DISTCLEAN_PKG += libIDL-$(LIBIDL_VERSION).tar.gz
1991

1992 1993 1994 1995 1996
# ***************************************************************************
# Gecko SDK
# ***************************************************************************

gecko-sdk-ppc-macosx10.2-1.7.5.tar.gz:
1997
	$(WGET) $(GECKO_SDK_MAC_URL)
1998 1999

gecko-sdk: gecko-sdk-ppc-macosx10.2-1.7.5.tar.gz
2000
	$(EXTRACT_GZ)
2001 2002

.gecko: gecko-sdk
2003 2004 2005
	rm -rf ../gecko-sdk
	mv gecko-sdk ..
	mkdir gecko-sdk #creating an empty dir is faster than copying the whole dir
2006 2007
	(cd $<)
	touch $@
2008 2009 2010 2011 2012

CLEAN_FILE += .gecko
CLEAN_PKG += gecko-sdk
DISTCLEAN_PKG += gecko-sdk-ppc-macosx10.2-1.7.5.tar.gz

2013 2014 2015 2016
# ***************************************************************************
# Gecko SDK win32
# ***************************************************************************

2017
gecko-sdk-i586-pc-msvc-1.8b1.zip:
2018
	$(WGET) $(GECKO_SDK_WIN32_URL)
2019 2020

libIDL-0.6.3-win32-bin.zip:
2021
	$(WGET) $(LIBIDL_WIN32_BIN_URL)
2022

2023
glib-19990228.zip:
2024
	$(WGET) $(GLIB_WIN32_BIN_URL)
2025

2026
.gecko-win32: gecko-sdk-i586-pc-msvc-1.8b1.zip libIDL-0.6.3-win32-bin.zip glib-19990228.zip
2027 2028 2029 2030 2031 2032 2033
	unzip gecko-sdk-i586-pc-msvc-1.8b1.zip
	rm -rf ../gecko-sdk
	mv gecko-sdk ..
	unzip -j libIDL-0.6.3-win32-bin.zip libIDL-0.6.3-win32-bin/libIDL-0.6.dll -d ../gecko-sdk/bin
	unzip glib-19990228.zip glib-1.2.dll -d ../gecko-sdk/bin
	chmod a+x ../gecko-sdk/bin/*
	touch $@
2034 2035 2036

CLEAN_FILE += .gecko-win32
CLEAN_PKG += gecko-sdk-win32
2037
DISTCLEAN_PKG += gecko-sdk-i586-pc-msvc-1.8b1.zip libIDL-0.6.3-win32-bin.zip glib-19990228.zip
2038

2039
# ***************************************************************************
2040
# mozilla-macosx
2041 2042 2043
# ***************************************************************************

mozilla-source-$(MOZILLA_VERSION).tar.bz2:
2044
	$(WGET) $(MOZILLA_URL)
2045 2046

mozilla: mozilla-source-$(MOZILLA_VERSION).tar.bz2
2047
	$(EXTRACT_BZ2)
2048

2049
.mozilla-macosx: mozilla
2050 2051
	(cd $<; ./configure --prefix=$(PREFIX) --enable-default-toolkit=mac --enable-standalone-modules=xpcom,plugin && make && make install)
	touch $@
2052

2053 2054
CLEAN_FILE += .mozilla-macosx
CLEAN_PKG += mozilla-macosx
2055
DISTCLEAN_PKG += mozilla-source-$(MOZILLA_VERSION).tar.bz2
2056

2057 2058 2059 2060 2061
# ***************************************************************************
# libjpeg
# ***************************************************************************

jpeg-$(JPEG_VERSION).tar.gz:
2062
	$(WGET) $(JPEG_URL)
2063 2064

jpeg: jpeg-$(JPEG_VERSION).tar.gz 
2065
	$(EXTRACT_GZ)
2066 2067

.jpeg: jpeg
2068 2069 2070
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(HOSTCC) && make && make install-lib)
	$(RANLIB) $(PREFIX)/lib/libjpeg.a
	touch $@
2071 2072 2073 2074 2075 2076 2077 2078 2079 2080

CLEAN_FILE += .jpeg
CLEAN_PKG += jpeg
DISTCLEAN_PKG += jpeg-$(JPEG_VERSION).tar.gz

# ***************************************************************************
# tiff
# ***************************************************************************

tiff-$(TIFF_VERSION).tar.gz:
2081
	$(WGET) $(TIFF_URL)
2082 2083

tiff: tiff-$(TIFF_VERSION).tar.gz 
2084
	$(EXTRACT_GZ)
2085 2086

.tiff: tiff
2087
ifdef HAVE_WIN32
2088
	(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)
2089
else
2090
	(cd $<; ./configure --with-CFLAGS="$(CFLAGS)" --with-JPEG=no --with-ZIP=no --prefix=$(PREFIX) && make -C port &&make -C libtiff && make -C libtiff install)
2091
endif
2092
	$(INSTALL_NAME)
2093
	touch $@
2094 2095 2096 2097 2098 2099 2100 2101 2102 2103

CLEAN_FILE += .tiff
CLEAN_PKG += tiff
DISTCLEAN_PKG += tiff-$(TIFF_VERSION).tar.gz

# ***************************************************************************
# SDL
# ***************************************************************************

SDL-$(SDL_VERSION).tar.gz:
2104
	$(WGET) $(SDL_URL)
2105 2106

SDL: SDL-$(SDL_VERSION).tar.gz 
2107
	$(EXTRACT_GZ)
2108 2109

.SDL: SDL
2110 2111 2112
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-audio --disable-video-x11 --disable-video-aalib --disable-video-dga --disable-video-fbcon --disable-video-directfb --disable-video-ggi --disable-video-svga --disable-directx --enable-joystick --disable-cdrom --disable-threads --disable-sdl-dlopen CFLAGS="$(CFLAGS)" && make && make install)
	$(INSTALL_NAME)
	touch $@
2113 2114 2115 2116 2117 2118 2119 2120 2121 2122

CLEAN_FILE += .SDL
CLEAN_PKG += SDL
DISTCLEAN_PKG += SDL-$(SDL_VERSION).tar.gz

# ***************************************************************************
# SDL_image
# ***************************************************************************

SDL_image-$(SDL_IMAGE_VERSION).tar.gz:
2123
	$(WGET) $(SDL_IMAGE_URL)
2124 2125

SDL_image: SDL_image-$(SDL_IMAGE_VERSION).tar.gz 
2126
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
2127
	patch -p0 < Patches/SDL_image.patch
2128
	patch -p0 < Patches/SDL_image-CVE-2006-4484.patch
2129 2130

.SDL_image: SDL_image .SDL .png .jpeg .tiff
2131 2132 2133
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --enable-tif --disable-sdltest && make && make install)
	$(INSTALL_NAME)
	touch $@
2134 2135 2136 2137 2138

CLEAN_FILE += .SDL_image
CLEAN_PKG += SDL_image
DISTCLEAN_PKG += SDL_image-$(SDL_IMAGE_VERSION).tar.gz

2139 2140 2141 2142 2143
# ***************************************************************************
# Musepack decoder library (libmpcdec)
# ***************************************************************************

libmpcdec-$(MUSE_VERSION).tar.bz2:
2144
	$(WGET) $(MUSE_URL)
2145

2146
mpcdec: libmpcdec-$(MUSE_VERSION).tar.bz2 
2147
	$(EXTRACT_BZ2)
2148
	patch -p0 < Patches/mpcdec.patch
2149
	(cd $@; autoreconf)
2150

2151
.mpcdec: mpcdec
2152
ifdef HAVE_WIN32 
2153
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS=-D_PTRDIFF_T=mpc_int32_t && make && make install)
2154
else
2155
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
2156 2157
endif
ifdef HAVE_DARWIN_OS
2158
	$(INSTALL_NAME)
2159
endif
2160
	touch $@
2161

2162 2163
CLEAN_FILE += .mpcdec
CLEAN_PKG += mpcdec
2164 2165
DISTCLEAN_PKG += libmpcdec-$(MUSE_VERSION).tar.bz2

2166
# ***************************************************************************
2167 2168
# Dirac
# ***************************************************************************
2169 2170

dirac-$(DIRAC_VERSION).tar.gz:
2171
	$(WGET) $(DIRAC_URL)
2172 2173

dirac: dirac-$(DIRAC_VERSION).tar.gz
2174
	$(EXTRACT_GZ)
2175
	patch -p1 -d dirac <Patches/dirac-cross.patch
2176
ifdef HAVE_CYGWIN
2177
	# incorrect compile warning with cygwin compiler 3.4.4
2178 2179
	patch -p0 <Patches/dirac-cygwin.patch
endif
2180
	(cd $@; aclocal -I m4 && autoconf && automake)
2181

2182 2183 2184 2185
DIRAC_SUBDIRS = libdirac_byteio libdirac_common libdirac_motionest libdirac_encoder libdirac_decoder

ifdef HAVE_WIN32
DIRAC_SUBDIRS += win32
2186
endif
2187

2188
.dirac: dirac
2189
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)  CFLAGS="$(CFLAGS)" && DOC_DIR="" make $(DIRAC_SUBDIRS) && DOC_DIR="" make install)
2190
	touch $@
2191 2192 2193

# for MacOS X, dirac is split into two libraries, which needs be installed using two targets
.dirac_encoder: .dirac
2194 2195
	$(INSTALL_NAME)
	touch $@
2196 2197

.dirac_decoder: .dirac
2198 2199
	$(INSTALL_NAME)
	touch $@
2200 2201 2202 2203 2204 2205 2206 2207 2208

CLEAN_FILE += .dirac
CLEAN_PKG += dirac
DISTCLEAN_PKG += dirac-$(DIRAC_VERSION).tar.gz

# *************************************************************************
# DirectX headers
# *************************************************************************
win32-dx7headers.tgz:
2209
	$(WGET) $(DX_HEADERS_URL)
2210
.dx_headers: win32-dx7headers.tgz
2211 2212
	(cd ../include ; tar xzf ../src/$<)
	touch $@
2213 2214 2215 2216 2217 2218 2219
CLEAN_FILE += .dx_headers
DISTCLEAN_PKG += win32-dx7headers.tgz
 
# *************************************************************************
# DirectShow headers
# *************************************************************************
dshow-headers.tgz:
2220
	$(WGET) $(DSHOW_HEADERS_URL)
2221
.dshow_headers: dshow-headers.tgz
2222 2223
	(cd ../include ; tar xzf ../src/$<)
	touch $@
2224 2225
CLEAN_FILE += .dshow_headers
DISTCLEAN_PKG += dshow-headers.tgz
2226 2227 2228 2229 2230 2231

# ***************************************************************************
# libexpat
# ***************************************************************************

expat-$(EXPAT_VERSION).tar.gz:
2232
	$(WGET) $(EXPAT_URL)
2233 2234

expat: expat-$(EXPAT_VERSION).tar.gz
2235
	$(EXTRACT_GZ)
2236 2237

.expat: expat
2238
ifdef HAVE_DARWIN_OS
2239
	(cd $< aclocal --force && libtoolize --force && autoconf --force && autoheader --force )
2240
endif
2241 2242
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
2243 2244 2245 2246 2247 2248 2249 2250 2251 2252

CLEAN_FILE += .expat
CLEAN_PKG += expat
DISTCLEAN_PKG += expat-$(EXPAT_VERSION).tar.gz

# ***************************************************************************
# CyberLink C++ UPnP library
# ***************************************************************************

clinkcc$(CLINKCC_VERSION).tar.gz:
2253
	$(WGET) $(CLINKCC_URL)
2254 2255

clinkcc: clinkcc$(CLINKCC_VERSION).tar.gz
2256 2257 2258
	tar xzf $<
	mv $(patsubst %.tar.gz,Cyberlink,$(patsubst %.tgz,Cyberlink,$(notdir $<))) $@ || true
	touch $@
Rafaël Carré's avatar
Rafaël Carré committed
2259
	patch -p0 < Patches/clinkcc.patch
2260
ifdef HAVE_DARWIN_OS
Rafaël Carré's avatar
Rafaël Carré committed
2261
	patch -p0 < Patches/clinkcc_osx.patch
2262
endif
2263
	(cd $@; ./bootstrap)
2264 2265

.clinkcc: clinkcc
2266
	(cd $<;./configure --prefix=$(PREFIX) --enable-expat && make && chmod 755 config/install-sh && make install )
2267
	touch $@
2268 2269 2270

CLEAN_FILE += .clinkcc
CLEAN_PKG += clinkcc
2271
DISTCLEAN_PKG += clinkcc$(CLINKCC_VERSION).tar.gz
2272

2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290
# ***************************************************************************
# YASM assembler
# ***************************************************************************

yasm-$(YASM_VERSION).tar.gz:
	$(WGET) $(YASM_URL)

yasm: yasm-$(YASM_VERSION).tar.gz
	$(EXTRACT_GZ)

.yasm: yasm
	(cd $< && $(HOSTCC) ./configure --prefix=$(PREFIX) && make && make install)
	touch $@

CLEAN_FILE += .yasm
CLEAN_PKG += yasm
DISTCLEAN_PKG += yasm-$(YASM_VERSION).tar.bz2

2291
# ***************************************************************************
2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311
# kate
# ***************************************************************************

libkate-$(KATE_VERSION).tar.gz:
	$(WGET) $(KATE_URL)

libkate: libkate-$(KATE_VERSION).tar.gz
	$(EXTRACT_GZ)
	(cd $@; autoconf)

.kate: libkate .ogg
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-valgrind && make && make install)
	$(INSTALL_NAME)
	touch $@

CLEAN_FILE += .kate
CLEAN_PKG += libkate
DISTCLEAN_PKG += libkate-$(KATE_VERSION).tar.gz

# ***************************************************************************
2312 2313 2314 2315 2316 2317
# Copy aclocal files
# This is necessary for --missing aclocal to succeed after a
# configure.ac/Makefile.am change in the vlc root dir
# **************************************************************************

.aclocal:
2318 2319
	cp -R $(PREFIX)/share/aclocal/* $(PREFIX)/../../m4/
	touch $@
2320

Felix Paul Kühne's avatar
Felix Paul Kühne committed
2321
CLEAN_FILE += .aclocal
2322

2323 2324 2325 2326 2327
# ***************************************************************************
# TagLib read and editing of tags of popular audio formats
# ***************************************************************************

taglib-$(TAGLIB_VERSION).tar.gz:
2328
	$(WGET) $(TAGLIB_URL)
2329 2330

taglib: taglib-$(TAGLIB_VERSION).tar.gz
2331
	$(EXTRACT_GZ)
2332 2333 2334
ifdef HAVE_WIN32
	patch -p0 < Patches/taglib.patch
endif
2335
ifdef HAVE_CYGWIN
2336
	patch -p0 < Patches/taglib-cygwin.patch
2337
endif
2338 2339

.tag: taglib
2340
	(cd $<; $(HOSTCC)  ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
2341 2342
	$(INSTALL_NAME)
	touch $@
2343

2344 2345 2346 2347 2348 2349 2350
CLEAN_FILE += .tag
CLEAN_PKG += taglib
DISTCLEAN_PKG += taglib-$(TAGLIB_VERSION).tar.gz

# ***************************************************************************
# pthreads for win32
# ***************************************************************************
Christophe Mutricy's avatar
Christophe Mutricy committed
2351 2352 2353 2354 2355 2356 2357 2358

pthreads-w32-$(PTHREADS_VERSION)-release.tar.gz:
	$(WGET) $(PTHREADS_URL)

pthreads: pthreads-w32-$(PTHREADS_VERSION)-release.tar.gz
	$(EXTRACT_GZ)

.pthreads: pthreads
2359
	(cd $<; $(HOSTCC) make $(PTHREADSCONF) GC GC-static && mkdir -p $(PREFIX)/include && cp -v pthread.h sched.h semaphore.h $(PREFIX)/include/ && mkdir -p $(PREFIX)/lib && cp -v *.{a,dll} $(PREFIX)/lib/)
Christophe Mutricy's avatar
Christophe Mutricy committed
2360 2361 2362
	$(INSTALL_NAME)
	touch $@

2363 2364 2365
CLEAN_FILE += .pthreads
CLEAN_PKG += pthreads
DISTCLEAN_PKG += pthreads-w32-$(PTHREADS_VERSION)-release.tar.gz
2366

2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383
# ***************************************************************************
# ncurses library (with wide chars support)
# ***************************************************************************

ncurses-$(NCURSES_VERSION).tar.gz:
	$(WGET) $(NCURSES_URL)

ncurses: ncurses-$(NCURSES_VERSION).tar.gz
	$(EXTRACT_GZ)

.ncurses: ncurses
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --without-debug --enable-widec --without-develop --without-shared && make && make install)
	touch $@

CLEAN_FILE += .ncurses
CLEAN_PKG += ncurses
DISTCLEAN_PKG += ncurses-$(NCURSES_VERSION).tar.gz
Christophe Mutricy's avatar
Christophe Mutricy committed
2384

2385 2386 2387 2388 2389
# ***************************************************************************
# asa library (ASS/SSA support)
# ***************************************************************************

asa.git.tar.gz:
2390
	$(WGET) $(ASA_URL)
2391 2392 2393

asa: asa.git.tar.gz
	$(EXTRACT_GZ)
2394
	patch -p0 < Patches/asa-git.diff
2395

Rafaël Carré's avatar
Rafaël Carré committed
2396 2397
.asa: asa .fontconfig .pcre .iconv
	(cd $<; ./bootstrap; $(HOSTCC) CFLAGS="$(CFLAGS) -DPCRE_STATIC" ./configure $(HOSTCONF) --prefix=$(PREFIX))
Jean-Baptiste Kempf's avatar
Typo  
Jean-Baptiste Kempf committed
2398
	(cd $</lib/import; make || (echo "Please copy a ./preparse file you built for your host into asa/lib/import"; echo "When you are finished, press enter." ; echo "If you are building natively, press enter." ; read i ; make) )
Rafaël Carré's avatar
Rafaël Carré committed
2399
	(cd $<; make && make install)
2400
	$(INSTALL_NAME)
2401 2402 2403 2404 2405 2406
	touch $@

CLEAN_FILE += .asa
CLEAN_PKG += asa
DISTCLEAN_PKG += asa.git.tar.gz

2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422
# ***************************************************************************
# FluidSynth library (Midi)
# ***************************************************************************

fluidsynth-$(FLUID_VERSION).tar.gz:
	$(WGET) $(FLUID_URL)

fluidsynth: fluidsynth-$(FLUID_VERSION).tar.gz
	$(EXTRACT_GZ)

.fluid: fluidsynth
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
	touch $@

CLEAN_FILE += .fluid
CLEAN_PKG += fluidsynth
2423
DISTCLEAN_PKG += fluidsynth-$(FLUID_VERSION).tar.gz
2424

2425 2426 2427 2428 2429 2430 2431 2432 2433
# ***************************************************************************
# liboil
# ***************************************************************************

liboil-$(OIL_VERSION).tar.gz:
	$(WGET) $(OIL_URL)

liboil: liboil-$(OIL_VERSION).tar.gz
	$(EXTRACT_GZ)
2434
	patch -d liboil -p1 < Patches/liboil-noshared.patch
2435 2436

.liboil: liboil
2437
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -O2" && make && make install)
2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453
	touch $@

CLEAN_FILE += .liboil
CLEAN_PKG += liboil
DISTCLEAN_PKG += liboil-$(OIL_VERSION).tar.gz

# ***************************************************************************
# Schroedinger library
# ***************************************************************************

schroedinger-$(SCHROED_VERSION).tar.gz:
	$(WGET) $(SCHROED_URL)

schroedinger: schroedinger-$(SCHROED_VERSION).tar.gz
	$(EXTRACT_GZ)

2454
.schroedinger: schroedinger .liboil
2455
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -O3" && make && make install)
2456 2457 2458 2459 2460
	touch $@

CLEAN_FILE += .schroedinger
CLEAN_PKG += schroedinger
DISTCLEAN_PKG += schroedinger-$(SCHROED_VERSION).tar.gz
2461

2462 2463 2464 2465 2466 2467 2468
# ***************************************************************************
# ASS library
# ***************************************************************************

libass-$(ASS_VERSION).tar.bz2:
	$(WGET) $(ASS_URL)

2469
# mplayer patches up to August 8, 2008 are included
2470 2471
libass: libass-$(ASS_VERSION).tar.bz2
	$(EXTRACT_BZ2)
2472
	patch -p0 < Patches/libass_mplayer_updates.patch
2473 2474
ifneq ($(HOST),$(BUILD))
	patch -p0 < Patches/libass-cross.patch
2475
	(cd $@; autoreconf; automake)
2476 2477
endif

2478
.libass: libass .png
2479 2480 2481
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -O3" && make && make install)
	touch $@

2482 2483 2484
CLEAN_FILE += .libass
CLEAN_PKG += libass
DISTCLEAN_PKG += libass-$(ASS_VERSION).tar.bz2
2485

2486
# ***************************************************************************
2487
# Some cleaning
2488 2489 2490
# ***************************************************************************

clean-dots: FORCE
2491
	rm -f $(CLEAN_FILE)
2492 2493

clean: clean-dots
2494
	rm -rf $(CLEAN_PKG)
2495 2496

clean-src: clean
2497
	rm -rf $(DISTCLEAN_PKG)
2498

2499
clean-svn:
2500
	rm -rf ffmpeg tremor x264 libdca pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz portaudio live555-$(LIVEDOTCOM_VERSION).tar.gz live	
2501

2502
distclean: clean-src
2503

2504 2505 2506 2507
# ***************************************************************************
# Download all the sources and package unversionned copies of subversion trees
# ***************************************************************************

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2508
source: $(SOURCE) $(DISTCLEAN_PKG)