Makefile 75.5 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 57 58 59 60
ifneq ($(CC),)
HOSTCC+= CC="$(CC)"
endif
ifneq ($(CXX),)
HOSTCC+= CXX="$(CXX)"
endif
61 62 63
ifneq ($(LD),)
HOSTCC+= LD="$(LD)"
endif
64 65 66 67 68 69
ifneq ($(RANLIB),)
HOSTCC+= RANLIB="$(RANLIB)"
endif
ifneq ($(AR),)
HOSTCC+= AR="$(AR)"
endif
70 71 72 73
ifneq ($(STRIP),)
HOSTCC+= STRIP="$(STRIP)"
endif

74

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

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

87 88 89 90 91
# For ffmpeg if not cross compiling
ifneq ($(CC),)
  FFMPEGCONF=--cc="$(CC)"
endif

92
#
93
# cross compiling
94
#
95 96
#This should be inside the if block but some config scripts are buggy
HOSTCONF=--target=$(HOST) --host=$(HOST) --build=$(BUILD) --program-prefix=""
97 98 99 100 101
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
    #
102
    ifndef HAVE_CYGWIN
103
        # We are REALLY cross compiling
104
        FFMPEGCONF=--cross-prefix=$(HOST)- --enable-cross-compile
105
        X264CONF=--host=$(HOST)
106
        PTHREADSCONF="CROSS=$(HOST)-"
107 108
    else
        # We are compiling for MinGW on Cygwin
109
        PTHREADSCONF=$(HOSTCC)
110
    endif
111
endif
112 113

#
114
# Special target-dependant options
115
#
116
ifdef HAVE_WIN32
117
HOSTCONF+= --without-pic --disable-shared --enable-msw --with-included-opencdk --with-included-libtasn1 --disable-dependency-tracking
118
FFMPEGCONF+= --target-os=mingw32 --enable-memalign-hack --cpu=i686 --arch=i686 --disable-debug
119 120 121 122
endif

ifdef HAVE_WINCE
HOSTCONF+= --without-pic --disable-shared
123
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
124 125 126
endif

ifdef HAVE_UCLIBC
127
ifdef HAVE_BIGENDIAN
128
FFMPEGCONF+= --arch=armeb --enable-armv5te --enable-iwmmxt
129 130 131
else
FFMPEGCONF+= --arch=armv4l
endif
132
FFMPEGCONF+= --enable-small --disable-debug --disable-mpegaudio-hp
133
FFMPEG_CFLAGS += -DHAVE_LRINTF --std=c99
134
else
135
FFMPEGCONF+= --enable-libmp3lame --enable-libfaac --enable-liba52 --enable-swscale
136 137
endif

138
ifdef HAVE_BEOS
139
FFMPEGCONF+= --cpu=x86 --disable-debug --disable-audio-beos
140 141
endif

142
ifdef HAVE_DARWIN_OS_ON_INTEL
143
FFMPEGCONF += --enable-memalign-hack --cpu=pentium-m
144 145
endif

146
ifdef NO_TEXT_RELOCATION
147 148 149
FFMPEGCONF += --disable-mmx
endif

150
ifdef HAVE_DARWIN_OS
151
X264CONF += --enable-pic
152
ifdef HAVE_DARWIN_OS_ON_INTEL
153
FFMPEG_CFLAGS += -DHAVE_LRINTF
154 155
else
FFMPEGCONF += --disable-altivec
156
endif
157 158
endif

159
ifdef HAVE_AMR
160
FFMPEGCONF+= --enable-libamr-nb --enable-libamr-wb --enable-nonfree
161 162
endif

163 164
DATE=`date +%Y-%m-%d`

165 166 167
# ***************************************************************************
# Standard rules
# ***************************************************************************
168 169 170
# Generated by ./bootstrap from default configuration in src/Distributions
# 
include ../distro.mak
171 172 173 174 175 176 177 178

FORCE:

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

define EXTRACT_GZ
179
	rm -rf $@ || true
Christophe Mutricy's avatar
oups  
Christophe Mutricy committed
180
	gunzip -c $< | tar xf - --exclude='[*?:<>\|]' 
181 182
	mv $(patsubst %.tar.gz,%,$(patsubst %.tgz,%,$(notdir $<))) $@ || true
	touch $@
183 184 185
endef

define EXTRACT_BZ2
186 187 188 189
	rm -rf $@ || true
	bunzip2 -c $< | tar xf - --exclude='[*?:<>\|]' 
	mv $(patsubst %.tar.bz2,%,$(notdir $<)) $@ || true
	touch $@
190 191
endef

192
define EXTRACT_ZIP
193 194 195 196
	rm -rf $@ || true
	unzip $<
	mv $(patsubst %.zip,%,$(notdir $<)) $@ || true
	touch $@
197 198
endef

199 200 201 202 203 204
### 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
205 206 207 208 209
#	cd $< ; ./configure --prefix=$(PREFIX)
#	$(MAKE) -C $<
#	$(MAKE) -C $< install
#	$(INSTALL_NAME)
#	touch $@
210 211 212 213 214

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
215 216 217 218 219
	if test -f $(PREFIX)/lib/lib$(patsubst .%,%,$@).so ; then \
		mkdir -p $(PREFIX)/vlc-lib ; \
		cp $(PREFIX)/lib/lib$(patsubst .%,%,$@).so \
		  $(PREFIX)/vlc-lib/ ; \
	fi
220 221 222 223 224 225 226 227 228
endef
endif

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

ifeq ($(BUILD),i586-pc-beos)
perl-$(PERL_VERSION).tar.gz:
229
	$(WGET) $(PERL_URL)
230 231

perl: perl-$(PERL_VERSION).tar.gz
232 233
	$(EXTRACT_GZ)
	sed -i.orig 's%prefix="/boot/home/config"%prefix="$(PREFIX)"%'  perl/hints/beos.sh
234 235

.perl: perl
236 237
	(cd $<; ./Configure -d -e && make && make install && ln -sf perl5/$(PERL_VERSION)/BePC-beos/CORE/libperl.so $(PREFIX)/lib/libperl.so)
	touch $@
238 239 240 241 242 243 244 245 246 247

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

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

248
autoconf-$(AUTOCONF_VERSION).tar.bz2:
249
	$(WGET) $(AUTOCONF_URL)
250

251
autoconf: autoconf-$(AUTOCONF_VERSION).tar.bz2
252
	$(EXTRACT_BZ2)
253 254

.autoconf: autoconf
255 256
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
257 258 259

CLEAN_FILE += .autoconf
CLEAN_PKG += autoconf
260
DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.bz2
261

262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283
# ***************************************************************************
# 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

284 285 286
# ***************************************************************************
# CMake
# ***************************************************************************
Rafaël Carré's avatar
Rafaël Carré committed
287 288 289 290 291
cmake-$(CMAKE_VERSION).tar.gz:
	$(WGET) $(CMAKE_URL)

cmake: cmake-$(CMAKE_VERSION).tar.gz
	$(EXTRACT_GZ)
292
	
Rafaël Carré's avatar
Rafaël Carré committed
293 294
#cmake:
#	cvs -d :pserver:anonymous:cmake@www.cmake.org:/cvsroot/CMake co -d cmake CMake
295 296

.cmake: cmake
297 298 299 300 301 302
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@

CLEAN_FILE += .cmake
CLEAN_PKG += cmake

303 304 305 306 307
# ***************************************************************************
# libtool
# ***************************************************************************

ifdef HAVE_DARWIN_OS
308 309 310 311 312 313 314 315
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)
316 317
	ln -sf libtool $(PREFIX)/bin/glibtool
	ln -sf libtoolize $(PREFIX)/bin/glibtoolize
318
	touch $@
319 320 321

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

324 325 326 327
endif

ifeq ($(BUILD),i586-pc-beos)
libtool-$(LIBTOOL_VERSION).tar.gz:
328
	$(WGET) $(LIBTOOL_URL)
329 330

libtool: libtool-$(LIBTOOL_VERSION).tar.gz
331
	$(EXTRACT_GZ)
332 333

.libtool: libtool
334 335
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
336 337 338 339 340

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

341 342
endif

343 344 345 346 347
# ***************************************************************************
# automake
# ***************************************************************************

automake-$(AUTOMAKE_VERSION).tar.gz:
348
	$(WGET) $(AUTOMAKE_URL)
349 350

automake: automake-$(AUTOMAKE_VERSION).tar.gz
351
	$(EXTRACT_GZ)
352 353

.automake: automake
354 355
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
356 357 358 359 360 361 362 363 364

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

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

365
pkg-config-$(PKGCFG_VERSION).tar.gz:
366
	$(WGET) $(PKGCFG_URL)
367

368
pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
369 370 371
	$(EXTRACT_GZ)
	patch -d pkgconfig/glib-1.2.8 -p 1 < Patches/glib.patch
	patch -d pkgconfig -p0 < Patches/pkgcfg.patch
372 373

.pkgcfg: pkgconfig
374 375
	(cd pkgconfig; autoconf && ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
	touch $@
376 377 378

CLEAN_FILE += .pkgcfg
CLEAN_PKG += pkgconfig
379
DISTCLEAN_PKG += pkg-config-$(PKGCFG_VERSION).tar.gz
380 381 382 383 384 385

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

gettext-$(GETTEXT_VERSION).tar.gz:
386
	$(WGET) $(GETTEXT_URL)
387 388

gettext: gettext-$(GETTEXT_VERSION).tar.gz
389
	$(EXTRACT_GZ)
390
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
391
	patch -p0 < Patches/gettext-win32.patch
392
endif
VideoLAN's avatar
VideoLAN committed
393 394 395
ifdef HAVE_DARWIN_OS
	patch -p0 < Patches/gettext-macosx.patch
endif
396

397
.intl: gettext .iconv
398
ifdef HAVE_WIN32
399
	( cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-relocatable --with-iconv-prefix=$(PREFIX) --disable-java --disable-native-java)
400
else
401
	( cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-java --disable-native-java --without-emacs)
402
endif
403 404 405
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
406
	( 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 )
407 408
endif
ifneq ($(HOST),$(BUILD))
409 410
  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
411
	( cd $< && make -C gettext-runtime/intl && patch -p1 < ../Patches/libintl.patch && make -C gettext-runtime/intl install && make -C gettext-tools/misc install )
412 413 414 415
  else
    # We are compiling for MinGW on Cygwin -- build the full current gettext
	( cd $< && make && patch -p1 < ../Patches/libintl.patch && make install )
  endif
416 417
else
# Build and install the whole gettext
418
	( cd $< && make && patch -p1 < ../Patches/libintl.patch && make install )
419 420 421
endif
# Work around another non-sense of autoconf.
ifdef HAVE_WIN32
422
	(cd ../include; sed -i.orig '311 c #if 0' libintl.h)
423
endif
424 425
	$(INSTALL_NAME)
	touch $@
426 427 428 429 430 431 432 433 434 435

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

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

libiconv-$(LIBICONV_VERSION).tar.gz:
436
	$(WGET) $(LIBICONV_URL)
437 438

libiconv: libiconv-$(LIBICONV_VERSION).tar.gz
439
	$(EXTRACT_GZ)
440
ifdef HAVE_DARWIN_OS
Rafaël Carré's avatar
Rafaël Carré committed
441
	patch -p0 < Patches/libiconv.patch
442
endif
443
	patch -p0 < Patches/libiconv-autoconf-uclibc.patch
444

445
ifdef HAVE_DARWIN_OS
446
.iconv:
447
	touch $@
448
else
449
.iconv: libiconv
450 451 452
	(cd libiconv; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-nls && make && make install)
	$(INSTALL_NAME)
	touch $@
453
endif
454 455 456 457 458

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

459 460 461 462 463 464 465
# ***************************************************************************
# fontconfig
# ***************************************************************************

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

466
fontconfig: fontconfig-$(FONTCONFIG_VERSION).tar.gz Patches/fontconfig.patch
467 468
	$(EXTRACT_GZ)
	patch -p0 < Patches/fontconfig.patch
469
	patch -p0 < Patches/fontconfig-nodocs.patch
470

Rafaël Carré's avatar
Rafaël Carré committed
471
.fontconfig: fontconfig .xml .freetype
472 473
ifdef HAVE_WIN32
  ifdef HAVE_CYGWIN
474
	(cd $<; autoreconf && LIBXML2_CFLAGS=`$(PREFIX)/bin/xml2-config --cflags` ./configure --target=$(HOST) --disable-pic --disable-shared --disable-docs --with-cache-dir=WINDOWSTEMPDIR --with-arch=i686 --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --enable-libxml2 && make && make install)
475
  else
476
	(cd $<; autoreconf && $(HOSTCC) LIBXML2_CFLAGS=`$(PREFIX)/bin/xml2-config --cflags` ./configure $(HOSTCONF) --with-cache-dir=WINDOWSTEMPDIR --with-arch=i686 --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --enable-libxml2 --disable-docs && make && make install)
477 478
  endif
else
479
  ifdef HAVE_DARWIN_OS
480
	(cd $<; autoreconf && $(HOSTCC) LIBXML2_CFLAGS=`xml2-config --cflags` LIBXML2_LIBS=`xml2-config --libs` ./configure $(HOSTCONF) --with-cache-dir=/var/cache/fontconfig --with-confdir=/etc/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))
481
  else
482
	(cd $<; autoreconf && $(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)
483
  endif
484 485 486 487 488 489 490 491
endif
	$(INSTALL_NAME)
	touch $@

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

492 493 494 495 496
# ***************************************************************************
# freetype2
# ***************************************************************************

freetype-$(FREETYPE2_VERSION).tar.gz:
497
	$(WGET) $(FREETYPE2_URL)
498 499

freetype2: freetype-$(FREETYPE2_VERSION).tar.gz
500
	$(EXTRACT_GZ)
501 502

.freetype: freetype2
503
ifdef HAVE_CYGWIN
504
	(cd $<; ./configure --target=$(HOST) --disable-pic --disable-shared --prefix=$(PREFIX) && make && make install)
505
else
506
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
507
endif
508 509
	$(INSTALL_NAME)
	touch $@
510 511 512 513 514 515 516 517 518

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

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

519
fribidi-$(FRIBIDI_VERSION).tar.gz:
520
	$(WGET) $(FRIBIDI_URL)
521

522 523
fribidi: fribidi-$(FRIBIDI_VERSION).tar.gz
	$(EXTRACT_GZ)
524
	patch -p0 < Patches/fribidi.patch
525

526
.fribidi: fribidi .iconv
527 528 529
	(cd $<; rm -f configure; ./bootstrap && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)  && make && make install)
	$(INSTALL_NAME)
	touch $@
530 531 532

CLEAN_FILE += .fribidi
CLEAN_PKG += fribidi
533
DISTCLEAN_PKG += fribidi-$(FRIBIDI_VERSION).tar.gz
534 535 536 537 538 539

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

a52dec-$(A52DEC_VERSION).tar.gz:
540
	$(WGET) $(A52DEC_URL)
541 542

a52dec: a52dec-$(A52DEC_VERSION).tar.gz
543
	$(EXTRACT_GZ)
544 545

.a52: a52dec
546 547
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && cd liba52 && make && make install && cd ../include && make && make install)
	touch $@
548 549 550 551 552 553 554 555 556 557

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

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

#mpeg2dec:
558 559 560 561
#	@echo "*** Please press return here : ***"
#	cvs -d $(MPEG2DEC_CVSROOT) login
#	cvs -d $(MPEG2DEC_CVSROOT) co mpeg2dec
#	(cd $@; ./bootstrap)
562

Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
563
mpeg2dec-$(MPEG2DEC_VERSION).tar.gz:
564
	$(WGET) $(MPEG2DEC_URL)
565 566

# It is easier to use bootstrapped versions...
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
567
#mpeg2dec-$(MPEG2DEC_VERSION).tar.gz:
568 569
#	$(WGET) $(MPEG2DEC_SNAPSHOT)
#	mv mpeg2dec-$(MPEG2DEC_DATE).tar.gz $@
570 571

mpeg2dec: mpeg2dec-$(MPEG2DEC_VERSION).tar.gz
572
	$(EXTRACT_GZ)
573 574

.mpeg2: mpeg2dec
575 576
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --without-x --disable-sdl && cd libmpeg2 && make && make install && cd ../include && make && make install)
	touch $@
577 578 579 580 581 582 583 584 585 586 587

CLEAN_FILE += .mpeg2
CLEAN_PKG += mpeg2dec
#DISTCLEAN_PKG += mpeg2dec-$(MPEG2DEC_VERSION)-cvs.tar.gz
DISTCLEAN_PKG += mpeg2dec-$(MPEG2DEC_VERSION).tar.gz

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

libid3tag-$(LIBID3TAG_VERSION).tar.gz:
588
	$(WGET) $(LIBID3TAG_URL)
589 590

libid3tag: libid3tag-$(LIBID3TAG_VERSION).tar.gz
591
	$(EXTRACT_GZ)
592
	patch -d libid3tag -p0 < Patches/libid3tag-0.15.1b-fix-CVE-2008-2109.patch
593 594

.id3tag: libid3tag
595 596 597
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
	$(INSTALL_NAME)
	touch $@
598 599 600 601 602

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

603 604 605 606 607 608 609 610 611 612 613
# ***************************************************************************
# 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
614
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared && make && make install )
615 616 617 618 619 620
	touch $@

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

621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649
# ***************************************************************************
# 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
650
ifdef HAVE_WIN32
651
	( cd $<; sed -i.orig 's/lua luac/lua.exe/' Makefile ; cd src; sed -i.orig 's/CC=/#CC=/' Makefile; cd ../..;)
652 653
	(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)
654
else 
655
	(cd $<; $(HOSTCC) make $(LUA_MAKEPLATEFORM) && make install INSTALL_TOP=$(PREFIX))
656
endif
657 658 659 660 661 662
	touch $@

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

663 664 665 666 667
# ***************************************************************************
# libmad
# ***************************************************************************

libmad-$(LIBMAD_VERSION).tar.gz:
668
	$(WGET) $(LIBMAD_URL)
669 670

libmad: libmad-$(LIBMAD_VERSION).tar.gz
671
	$(EXTRACT_GZ)
672 673

.mad: libmad
674 675 676
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="-O3" && make && make install)
	$(INSTALL_NAME)
	touch $@
677 678 679 680 681 682 683 684 685 686

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

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

libogg-$(OGG_VERSION).tar.gz:
687
	$(WGET) $(OGG_URL)
688 689

libogg: libogg-$(OGG_VERSION).tar.gz
690
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
691 692
	patch -p0 < Patches/ogg.patch
	patch -p0 < Patches/libogg-1.1.patch
693
ifdef HAVE_WINCE
Rafaël Carré's avatar
Rafaël Carré committed
694
	patch -p0 < Patches/libogg-wince.patch
695
endif
696
	(cd $@; autoconf)
697 698

.ogg: libogg
699 700 701
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make install)
	$(INSTALL_NAME)
	touch $@
702 703 704 705 706 707 708 709 710 711

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

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

#vorbis:
712 713 714 715
#	@echo "*** Please type \"anoncvs\" here : ***"
#	cvs -d $(OGG_CVSROOT) login
#	cvs -d $(OGG_CVSROOT) co vorbis
#	(cd $@; ./autogen.sh)
716 717

libvorbis-$(VORBIS_VERSION).tar.gz:
718
	$(WGET) $(VORBIS_URL)
719 720

libvorbis: libvorbis-$(VORBIS_VERSION).tar.gz
721
	$(EXTRACT_GZ)
722
	patch -p0 < Patches/libvorbis.patch
723 724 725
	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
726
	(cd $@; autoconf)
727 728

.vorbis: libvorbis .ogg
729 730
# FIXME: shared libs disabled for now because of linking errors
#   -- titer 2005/09/16
731 732 733
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared && make && make install)
#	$(INSTALL_NAME)
	touch $@
734 735

.vorbisenc: .vorbis .ogg
736 737
#	$(INSTALL_NAME)
	touch $@
738 739 740 741 742

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

743 744 745 746 747 748
# ***************************************************************************
# tremor
# ***************************************************************************

ifdef SVN
tremor: 
749
	$(SVN) co http://svn.xiph.org/trunk/Tremor tremor
750 751
	(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)
752 753
else
tremor-$(TREMOR_VERSION).tar.bz2:
754 755
	echo "tremor snapshot does not exist, you MUST use subversion !"
	exit -1
756
	$(WGET) $(TREMOR_URL)
757 758

tremor: tremor-$(TREMOR_VERSION).tar.bz2
759
	$(EXTRACT_BZ2)
760 761 762
endif

.tremor: tremor .ogg
763 764 765
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared && make && make install)
	$(INSTALL_NAME)
	touch $@
766

767 768
ifdef SVN
tremor-source: tremor
769
	tar cfvz tremor-$(DATE).tar.gz tremor
770 771 772 773

SOURCE += tremor-source
endif

774 775
CLEAN_FILE += .tremor
CLEAN_PKG += tremor
776
#DISTCLEAN_PKG += tremor-$(TREMOR_VERSION).tar.bz2 #no tremor snapshot
777

778 779 780 781 782
# ***************************************************************************
# theora
# ***************************************************************************

libtheora-$(THEORA_VERSION).tar.bz2:
783
	$(WGET) $(THEORA_URL)
784 785

libtheora: libtheora-$(THEORA_VERSION).tar.bz2
786 787
	$(EXTRACT_BZ2)
	patch -p0 < Patches/theora.patch
788
	patch -p0 < Patches/libtheora-includes.patch
789
	(cd $@; autoconf)
790

791
.theora: libtheora .ogg
792
ifdef HAVE_BEOS
793
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-sdltest --disable-oggtest --disable-vorbistest --disable-asm --disable-examples && make && make install)
794
else
795
  ifdef NO_TEXT_RELOCATION
796 797
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-asm --disable-sdltest --disable-oggtest --disable-vorbistest --disable-asm --disable-examples && make && make install)
  else
798
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-sdltest --disable-oggtest --disable-vorbistest --disable-examples && make && make install)
799
  endif
800
endif
801 802
	$(INSTALL_NAME)
	touch $@
803 804 805 806 807

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

Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
808 809 810 811 812
# ***************************************************************************
# shout
# ***************************************************************************

libshout-$(SHOUT_VERSION).tar.gz:
813
	$(WGET) $(SHOUT_URL)
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
814 815

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

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

831 832 833 834 835
# ***************************************************************************
# flac
# ***************************************************************************

flac-$(FLAC_VERSION).tar.gz:
836
	$(WGET) $(FLAC_URL)
837 838

flac: flac-$(FLAC_VERSION).tar.gz
839
	$(EXTRACT_GZ)
840
ifdef HAVE_WIN32
841
	patch -p0 < Patches/flac-win32.patch
842
endif
843 844

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

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

Damien Fouilleul's avatar
Damien Fouilleul committed
863
CLEAN_FILE += .flac
864 865 866 867 868 869 870 871
CLEAN_PKG += flac
DISTCLEAN_PKG += flac-$(FLAC_VERSION).tar.gz

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

speex-$(SPEEX_VERSION).tar.gz:
872
	$(WGET) $(SPEEX_URL)
873 874

speex: speex-$(SPEEX_VERSION).tar.gz
875 876
	$(EXTRACT_GZ)
	patch -p0 < Patches/speex.patch
877
ifdef HAVE_BEOS
878
	patch -p0 < Patches/speex-BeOS.patch
879
endif
880 881

.speex: speex
882 883 884
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-ogg=no && make && make install)
	$(INSTALL_NAME)
	touch $@
885 886 887 888 889 890 891 892 893

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

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

894
faad2-$(FAAD2_VERSION).tar.gz:
895
	$(WGET) $(FAAD2_URL)
896

897 898 899
faad2: faad2-$(FAAD2_VERSION).tar.gz
	$(EXTRACT_GZ)
	(cd $@; ./bootstrap)
900

901
.faad: faad2
902
	(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)
903
	touch $@
904 905

CLEAN_FILE += .faad
906 907
CLEAN_PKG += faad2
DISTCLEAN_PKG += faad2-$(FAAD2_VERSION).tar.gz
908 909 910 911 912

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

913
faac-$(FAAC_VERSION).tar.gz:
914
	$(WGET) $(FAAC_URL)
915

916 917
faac: faac-$(FAAC_VERSION).tar.gz
	$(EXTRACT_GZ)
918 919

.faac: faac
920
	(cd $<; ./bootstrap && $(HOSTCC) ./configure $(HOSTCONF) --without-mp4v2 --prefix=$(PREFIX) --disable-shared && make && make install)
921
	touch $@
922 923 924

CLEAN_FILE += .faac
CLEAN_PKG += faac
925
DISTCLEAN_PKG += faac-$(FAAC_VERSION).tar.gz
926 927 928 929 930 931

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

lame-$(LAME_VERSION).tar.gz:
932
	$(WGET) $(LAME_URL)
933 934

lame: lame-$(LAME_VERSION).tar.gz
935
	$(EXTRACT_GZ)
936 937

.lame: lame
938 939
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-analyser-hooks --disable-decoder --disable-shared --disable-gtktest --disable-frontend && make && make install)
	touch $@
940 941 942 943 944 945 946 947 948 949

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

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

libebml-$(LIBEBML_VERSION).tar.bz2:
950
	$(WGET) $(LIBEBML_URL)
951

952 953 954
## No reasons to use SVN anymore
#ifdef SVN
#libebml:
955
#	$(SVN) co http://svn.matroska.org/svn/matroska/trunk/libebml libebml
956
#else
957
libebml: libebml-$(LIBEBML_VERSION).tar.bz2
958
	$(EXTRACT_BZ2)
959 960
#endif

961
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
962
	(cd $@; patch -p0 < ../Patches/libebml-svn-win32.patch)
963
endif
964 965

.ebml: libebml
966
ifdef HAVE_WIN32
967
	(cd $<; make -C make/mingw32 prefix=$(PREFIX) $(HOSTCC2) CFLAGS="$(CFLAGS) -DWIN32" SHARED=no && make -C make/linux install_staticlib install_headers prefix=$(PREFIX) $(HOSTCC2))
968
else
969 970 971 972
	(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 $@
973 974 975 976 977 978
## No reasons to use SVN anymore
#ifdef SVN
#libebml-source: libebml
#	tar cfvz  libebml-$(DATE).tar.gz libebml
#SOURCE += libebml-source	
#endif
979

980 981 982 983 984 985 986 987
CLEAN_FILE += .ebml
CLEAN_PKG += libebml
DISTCLEAN_PKG += libebml-$(LIBEBML_VERSION).tar.bz2

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

988 989 990
libmatroska-$(LIBMATROSKA_VERSION).tar.bz2:
	$(WGET) $(LIBMATROSKA_URL)

991 992 993
## No reasons to use SVN anymore
#if SVN
#libmatroska:
994
#	$(SVN) co http://svn.matroska.org/svn/matroska/trunk/libmatroska libmatroska
995
#else
996
libmatroska: libmatroska-$(LIBMATROSKA_VERSION).tar.bz2
997
	$(EXTRACT_BZ2)
998 999
#endif 

1000
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
1001
	(cd $@; patch -p0 < ../Patches/libmatroska-win32.patch)
1002
endif
1003

1004 1005
.matroska: libmatroska .ebml
ifdef HAVE_WIN32
1006
	(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))
1007
else
1008 1009
	(cd $<; make -C make/linux prefix=$(PREFIX) $(HOSTCC2) staticlib && make -C make/linux install_staticlib install_headers prefix=$(PREFIX))
	$(RANLIB) $(PREFIX)/lib/libmatroska.a
1010
endif
1011
	touch $@
1012

1013 1014 1015 1016 1017 1018 1019
## No reasons to use SVN anymore
#ifdef SVN
#libmatroska-source: libmatroska
#	tar cfvz libmatroska-$(DATE).tar.gz libmatroska
#
#SOURCE += libmatroska-source
#endif
1020

1021 1022 1023 1024 1025
CLEAN_FILE += .matroska
CLEAN_PKG += libmatroska
DISTCLEAN_PKG += libmatroska-$(LIBMATROSKA_VERSION).tar.bz2

# ***************************************************************************
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 1054 1055 1056 1057 1058 1059
# 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
1060
DISTCLEAN_PKG += amrwb-$(LIBAMR_WB_VERSION).tar.bz2
1061 1062 1063

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

1064 1065 1066
# ffmpeg
# ***************************************************************************

1067
ifdef SVN
1068
ffmpeg:
Felix Paul Kühne's avatar
Felix Paul Kühne committed
1069
	$(SVN) co $(FFMPEG_SVN) ffmpeg -r 13752
1070
ifeq ($(HOST),i586-pc-beos)
Rafaël Carré's avatar
Rafaël Carré committed
1071
	(cd $@; patch -p0 < ../Patches/ffmpeg-svn-beos.patch)
1072
endif
1073
ifdef HAVE_WINCE
Rafaël Carré's avatar
Rafaël Carré committed
1074
	patch -p1 < Patches/ffmpeg-svn-wince.patch
1075
endif
1076 1077 1078
ifdef HAVE_BEOS
	(cd $@; patch -p0 < ../Patches/ffmpeg-alignment.patch)
endif
1079
ifdef HAVE_DARWIN_OS
1080
	(cd $@; patch -p0 < ../Patches/ffmpeg-macosx-intel-mmx.patch)
1081
	(cd $@/libswscale; patch -p0 < ../../Patches/ffmpeg-fix-noaltivec.patch)
1082
endif
1083
ifdef NO_TEXT_RELOCATION
1084
	(cd $@; patch -p1 < ../Patches/ffmpeg-svn-mmx_removal-darwin9.patch)
1085
endif
1086
ifdef HAVE_UCLIBC
1087 1088
	patch -p0 < Patches/ffmpeg-svn-uclibc.patch
	patch -p0 < Patches/ffmpeg-svn-internal-define.patch
1089
	patch -p0 < Patches/ffmpeg-svn-libavformat.patch
1090
endif
1091
else
1092
ffmpeg-$(FFMPEG_VERSION).tar.gz:
1093 1094
	echo "ffmpeg snapshot is too old, you MUST use subversion !"
	exit -1
1095
	$(WGET) $(FFMPEG_URL)
1096

1097 1098 1099
ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz
	$(EXTRACT_GZ)
endif
1100

1101
ifdef HAVE_WINCE
1102
.ffmpeg: ffmpeg .zlib
1103
else
1104 1105 1106
ifdef HAVE_UCLIBC
.ffmpeg: ffmpeg
else
1107 1108
.ffmpeg: ffmpeg .faac .lame
endif
1109
endif
1110

1111
	(cd $<; $(HOSTCC) ./configure $(FFMPEGCONF) --prefix=$(PREFIX) --extra-cflags="$(CFLAGS) $(FFMPEG_CFLAGS) -DRUNTIME_CPUDETECT" --extra-ldflags="$(LDFLAGS)" --enable-gpl --enable-postproc --disable-vhook --disable-ffserver --disable-ffmpeg --disable-ffplay --disable-devices --disable-protocols --disable-shared --enable-static && make && make install-libs install-headers)
1112
	touch $@
1113

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

SOURCE += ffmpeg-source
endif

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

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

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

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

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

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

SOURCE += libdvdcss-source
endif

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

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

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

libdvdread-$(LIBDVDREAD_VERSION).tar.gz:
	$(WGET) $(LIBDVDREAD_URL)

libdvdread: libdvdread-$(LIBDVDREAD_VERSION).tar.gz
	$(EXTRACT_GZ)
1175 1176
#ifdef HAVE_WIN32
	patch  -p 0 < Patches/libdvdread-win32.patch
1177
	(cd $@; ./bootstrap )
1178
#endif
1179 1180

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

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

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

1193 1194
ifdef SVN
libdvdnav:
1195
	$(SVN) co $(LIBDVDNAV_SVN)  libdvdnav -r1100
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

1211
.dvdnav: libdvdnav .libdvdread .dvdcss
1212
ifdef HAVE_WIN32	
1213
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --enable-static --prefix=$(PREFIX) --with-libdvdcss=$(PREFIX) && make && make install)
1214
else
1215
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --enable-static --prefix=$(PREFIX) --with-libdvdcss=$(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 1254

.live: live
1255 1256 1257
ifdef HAVE_WIN32  
	(cd $<;./genMakefiles mingw && make $(HOSTCC)) 
else 
1258
ifdef HAVE_DARWIN_OS
1259 1260
	(cd $<; sed -e 's%EXTRA_CFLAGS%$(EXTRA_CFLAGS)%' -e 's%EXTRA_LDFLAGS%$(EXTRA_LDFLAGS)%' -i.orig  config.macosx)
	(cd $<; ./genMakefiles macosx && make)
1261
else
1262
	(cd $<; sed -e 's/=/= EXTRA_CPPFLAGS/' -e 's%EXTRA_CPPFLAGS%-I/include%' -i.orig groupsock/Makefile.head)
1263 1264 1265 1266 1267
ifdef HAVE_UCLIBC
ifdef HAVE_BIGENDIAN
	(cd $<; ./genMakefiles armeb-uclibc && make $(HOSTCC))
endif
else
1268
	(cd $<; ./genMakefiles linux && make $(HOSTCC))
1269
endif
1270
endif
1271
endif
1272 1273 1274 1275 1276 1277 1278 1279
	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
1280
	touch $@
1281 1282 1283

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

# ***************************************************************************
# goom
# ***************************************************************************

#goom-macosx-altivec-bin.tar.gz:
1291
#	$(WGET) $(GOOM_URL)
1292 1293

#goom: goom-macosx-altivec-bin.tar.gz
1294
#	$(EXTRACT_GZ)
1295 1296

#.goom: goom
1297 1298
#	(cd $<;)
#	touch $@
1299 1300 1301 1302 1303 1304 1305 1306 1307 1308

#CLEAN_FILE += .goom
#CLEAN_PKG += goom
#DISTCLEAN_PKG += goom-macosx-altivec-bin.tar.gz

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

goom$(GOOM2k4_VERSION).tar.gz:
1309 1310
	$(WGET) $(GOOM2k4_URL)
	mv goom-$(GOOM2k4_VERSION)-src.tar.gz goom$(GOOM2k4_VERSION).tar.gz
1311 1312

goom: goom$(GOOM2k4_VERSION).tar.gz
1313
	$(EXTRACT_GZ)
1314
ifdef HAVE_DARWIN_OS
Rafaël Carré's avatar
Rafaël Carré committed
1315
	patch -p0 < Patches/goom.patch
1316 1317
endif
ifdef HAVE_WIN32
1318
	(cd $@; dos2unix configure.in)
Rafaël Carré's avatar
Rafaël Carré committed
1319
	patch -p0 < Patches/goom2k4-0-win32.patch
1320 1321
else
	patch -p0 < Patches/goom2k4-0-mmx.patch
1322
endif
1323 1324

.goom2k4: goom
1325
ifdef HAVE_DARWIN_OS
1326
	(cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
1327
else
1328
	(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)
1329
endif
1330
	touch $@
1331 1332 1333

CLEAN_FILE += .goom2k4
CLEAN_PKG += goom
1334
DISTCLEAN_PKG += goom$(GOOM2k4_VERSION).tar.gz
1335 1336 1337 1338 1339 1340

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

libcaca-$(LIBCACA_VERSION).tar.gz:
1341
	$(WGET) $(LIBCACA_URL)
1342 1343

libcaca: libcaca-$(LIBCACA_VERSION).tar.gz
1344
	$(EXTRACT_GZ)
1345 1346 1347 1348
ifdef HAVE_DARWIN_OS
	#remove me at next libcaca upgrade
	patch -p0 < Patches/caca_driver_cocoa.diff
	patch -p0 < Patches/caca_macosx.diff
1349 1350 1351
ifndef HAVE_DARWIN_OS_ON_INTEL
	patch -p0 < Patches/caca-osx-ppc.patch
endif
1352
endif
1353 1354

.caca: libcaca
1355
ifdef HAVE_WIN32
1356
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-win32 --disable-x11 --disable-imlib2 --disable-doc --disable-ruby --disable-csharp --disable-cxx && make && make install)
1357
else
1358
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-imlib2 --disable-doc --disable-ruby --disable-csharp --disable-cxx && make && make install)
1359
endif
1360
	touch $@
1361 1362 1363 1364 1365 1366

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

# ***************************************************************************
Antoine Cellerier's avatar
Antoine Cellerier committed
1367
# libdca
1368 1369
# ***************************************************************************

1370 1371 1372 1373 1374
libdca-$(LIBDCA_VERSION).tar.bz2:
	$(WGET) $(LIBDCA_URL)

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

1376
.dca: libdca
1377
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1378
	$(INSTALL_NAME)
1379
	touch $@
1380

1381
CLEAN_FILE += .dca
Antoine Cellerier's avatar
Antoine Cellerier committed
1382
CLEAN_PKG += libdca
1383
DISTCLEAN_PKG += libdca-$(LIBDCA_VERSION).tar.bz2
1384

1385
# ***************************************************************************
1386
# libx264
1387 1388
# ***************************************************************************

1389 1390 1391
x264-$(X264_VERSION).tar.gz:
	$(WGET) $(X264_URL)

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404
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

1405
x264: x264-$(X264_VERSION).tar.gz
1406
	$(EXTRACT_GZ)
1407
ifdef HAVE_WIN32
1408
  ifndef HAVE_CYGWIN
Rafaël Carré's avatar
Rafaël Carré committed
1409
	(cd x264;patch -p0 <../Patches/x264-20050624-win32.patch)
1410
  endif
1411
else
Rafaël Carré's avatar
Rafaël Carré committed
1412
	patch -p0 < Patches/x264.patch
1413
	rm x264/x264.c
1414
endif
1415
endif
1416

1417 1418
ifdef HAVE_WIN32
.x264: x264 .pthreads
1419 1420 1421
  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
1422
	(cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" && make && make install)
1423
  endif
1424
else
1425 1426 1427 1428 1429
ifdef HAVE_DARWIN_OS_ON_INTEL
  .x264: x264 .yasm
	(cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" && make && make install)
else
  .x264: x264
1430
	(cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" && make && make install)
1431
endif
1432
endif
1433
	touch $@
1434

1435
ifdef SVN
1436 1437
x264-source: x264
	tar cfvz x264-$(DATE).tar.gz x264
1438

1439
SOURCE += x264-source
1440 1441
endif

1442 1443 1444 1445
CLEAN_FILE += .x264
CLEAN_PKG += x264
DISTCLEAN_PKG += x264-$(X264_VERSION).tar.gz

1446 1447 1448 1449 1450
# ***************************************************************************
# libmodplug
# ***************************************************************************

libmodplug-$(MODPLUG_VERSION).tar.gz:
1451
	$(WGET) $(MODPLUG_URL)
1452 1453

libmodplug: libmodplug-$(MODPLUG_VERSION).tar.gz
1454
	$(EXTRACT_GZ)
1455 1456 1457
#ifdef HAVE_WIN32
	patch -p0 < Patches/libmodplug-win32.patch
#end
1458 1459

.mod: libmodplug
1460 1461
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
	touch $@
1462 1463 1464 1465 1466 1467 1468 1469 1470

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

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

1471
libcddb-$(CDDB_VERSION).tar.bz2:
1472
	$(WGET) $(CDDB_URL)
1473

1474
libcddb: libcddb-$(CDDB_VERSION).tar.bz2
1475
	$(EXTRACT_BZ2)
1476 1477

.cddb: libcddb
1478 1479
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" LDFLAGS="$(LDFLAGS) -liconv" && make && make install)
	touch $@
1480 1481 1482

CLEAN_FILE += .cddb
CLEAN_PKG += libcddb
1483
DISTCLEAN_PKG += libcddb-$(CDDB_VERSION).tar.bz2
1484 1485 1486 1487 1488 1489

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

vcdimager-$(VCDIMAGER_VERSION).tar.gz:
1490
	$(WGET) $(VCDIMAGER_URL)
1491 1492

vcdimager: vcdimager-$(VCDIMAGER_VERSION).tar.gz
1493
	$(EXTRACT_GZ)
1494 1495 1496

ifdef HAVE_DARWIN_OS
.vcdimager: vcdimager
1497 1498
	(cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static LDFLAGS="$(LDFLAGS) -framework CoreFoundation -framework IOKit" && make && make install)
	touch $@
1499 1500
else
.vcdimager: vcdimager
1501 1502
	(cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
	touch $@
1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513
endif

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

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

libcdio-$(CDIO_VERSION).tar.gz:
1514
	$(WGET) $(CDIO_URL)
1515 1516

libcdio: libcdio-$(CDIO_VERSION).tar.gz
1517
	$(EXTRACT_GZ)
1518
	patch -p0 < Patches/libcdio-install-cdparanoia-pc.patch
1519 1520

.cdio: libcdio
1521
	(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)
1522
	touch $@
1523 1524 1525 1526 1527

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

1528 1529 1530 1531 1532
# ***************************************************************************
# wxWidgets
# ***************************************************************************

wxWidgets-$(WXWIDGETS_VERSION).tar.gz:
1533
	$(WGET) $(WXWIDGETS_URL)
1534 1535

wxwidgets: wxWidgets-$(WXWIDGETS_VERSION).tar.gz
1536 1537
	$(EXTRACT_GZ)
	(cd wxwidgets; patch -p0 < ../Patches/wxwidgets_uri.patch)
1538 1539

.wxwidgets: wxwidgets
1540 1541 1542
	(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 $@
1543 1544 1545 1546 1547

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

1548 1549 1550 1551
# ***************************************************************************
# qt4 (win32 binary)
# ***************************************************************************

1552
qt4-$(QT4_VERSION)-win32-bin.tar.bz2:
1553
	$(WGET) $(QT4_URL)
Clément Stenac's avatar
Clément Stenac committed
1554

1555
qt4_win32: qt4-$(QT4_VERSION)-win32-bin.tar.bz2
1556
	$(EXTRACT_BZ2)
Clément Stenac's avatar
Clément Stenac committed
1557

1558
.qt4_win32: qt4_win32
1559
	(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)
1560
ifeq ($(BUILD),i686-pc-cygwin)
1561
	(cd qt4_win32;cp bin/*.exe $(PREFIX)/bin)
1562
else
1563
	(cd qt4_win32;cp bin/* $(PREFIX)/bin)
1564
endif
1565
	touch $@
Clément Stenac's avatar
Clément Stenac committed
1566

1567 1568
CLEAN_FILE += .qt4_win32
CLEAN_PKG += qt4_win32
1569
DISTCLEAN_PKG += qt4-$(QT4_VERSION)-win32-bin.tar.bz2
Clément Stenac's avatar
Clément Stenac committed
1570

1571 1572 1573 1574 1575 1576 1577
# ***************************************************************************
# qt4 (trolltech binaries)
# ***************************************************************************

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

1578
Qt_win32: qt-win-opensource-$(QT4T_VERSION)-mingw.exe
1579
	mkdir Qt
1580
	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
1581 1582 1583
	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 {} \;
1584
	find Qt/translations -type f -a ! -name 'qt_*.qm' -exec rm {} \;
1585 1586 1587 1588
	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
1589

1590
.Qt_win32: Qt_win32
1591
	mkdir -p $(PREFIX)/bin $(PREFIX)/include/qt4/src $(PREFIX)/lib/pkgconfig $(PREFIX)/share/qt4/translations
1592 1593 1594 1595
	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
1596 1597
	cp Qt/lib/pkgconfig/* $(PREFIX)/lib/pkgconfig
	cp Qt/translations/* $(PREFIX)/share/qt4/translations 
1598
	touch $@
1599

1600 1601
CLEAN_FILE += .Qt_win32
CLEAN_PKG += Qt_win32
1602
DISTCLEAN_PKG += qt-win-opensource-$(QT4T_VERSION)-mingw.exe
1603

1604 1605 1606 1607
# ***************************************************************************
# qt4 (source-code compilation for Mac)
# ***************************************************************************

1608
qt-mac-opensource-src-$(QT4_MAC_VERSION).tar.gz:
1609 1610
	$(WGET) $(QT4_MAC_URL)

1611
qt4_mac: qt-mac-opensource-src-$(QT4_MAC_VERSION).tar.gz
1612 1613 1614 1615 1616 1617 1618 1619
	$(EXTRACT_GZ)

.qt4_mac: qt4_mac
	(cd qt4_mac; ./configure -prefix $(PREFIX) -release -fast -no-qt3support -sdk $(MACOSX_SDK) -no-framework && make && make install)
	touch $@

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

1622 1623 1624 1625 1626
# ***************************************************************************
# zlib
# ***************************************************************************

zlib-$(ZLIB_VERSION).tar.gz:
1627
	$(WGET) $(ZLIB_URL)
1628 1629

zlib: zlib-$(ZLIB_VERSION).tar.gz
1630
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
1631
	patch -p0 < Patches/zlib.patch
1632 1633

.zlib: zlib
1634 1635 1636
	(cd zlib; $(HOSTCC2) ./configure --prefix=$(PREFIX) && make install)
	$(INSTALL_NAME)
	touch $@
1637 1638 1639 1640 1641

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

1642 1643 1644 1645 1646
# ***************************************************************************
# PortAudio 
# ***************************************************************************

pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz:
1647
	$(WGET) $(PORTAUDIO_URL)
1648 1649

portaudio: pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz
1650
	$(EXTRACT_GZ)
1651
ifneq ($(HOST),$(BUILD))
Rafaël Carré's avatar
Rafaël Carré committed
1652
	(patch -p0 < Patches/portaudio-cross.patch;cd $@;  autoconf)
1653
endif
1654 1655

.portaudio: portaudio 
1656 1657 1658
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make  install)
	$(INSTALL_NAME)
	touch $@
1659 1660 1661

CLEAN_FILE += .portaudio
CLEAN_PKG += portaudio
1662
DISTCLEAN_PKG += pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz
1663

1664 1665 1666 1667 1668
# ***************************************************************************
# xml
# ***************************************************************************

libxml2-$(XML_VERSION).tar.gz:
1669
	$(WGET) $(XML_URL)
1670 1671

xml: libxml2-$(XML_VERSION).tar.gz
1672
	$(EXTRACT_GZ)
1673
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
1674
	patch -p0 < Patches/xml2-win32.patch
1675
	rm -f xml/aclocal.m4
1676
endif
Jean-Paul Saman's avatar
Jean-Paul Saman committed
1677 1678 1679
ifdef HAVE_UCLIBC
	patch -p0 < Patches/xml2-uclibc.patch
endif
1680 1681

.xml: xml
1682 1683 1684
ifdef HAVE_WIN32
	(cd xml; aclocal && automake && autoreconf)
endif
1685
  ifdef HAVE_CYGWIN
1686
	(cd xml; ac_cv_header_pthread_h="no" CFLAGS="-DLIBXML_STATIC" $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --with-minimal --with-catalog --with-reader --with-tree --with-push --with-xptr --with-valid --with-xpath --with-xinclude --with-sax1 --without-zlib --without-iconv --without-http --without-ftp  --without-debug --without-docbook --without-regexps && make && make install)
1687
  else
1688
	(cd xml; CFLAGS="-DLIBXML_STATIC" $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --with-minimal --with-catalog --with-reader --with-tree --with-push --with-xptr --with-valid --with-xpath --with-xinclude --with-sax1 --without-zlib --without-iconv --without-http --without-ftp  --without-debug --without-docbook --without-regexps && make && make install)
1689
  endif
1690
ifndef HAVE_DARWIN_OS
1691
	$(INSTALL_NAME)
1692
endif
1693
	touch $@
1694 1695 1696 1697 1698

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

1699 1700 1701 1702 1703
# ***************************************************************************
# twolame
# ***************************************************************************

twolame-$(TWOLAME_VERSION).tar.gz:
1704
	$(WGET) $(TWOLAME_URL)
1705 1706

twolame: twolame-$(TWOLAME_VERSION).tar.gz
1707
	$(EXTRACT_GZ)
1708
ifdef HAVE_BEOS
Rafaël Carré's avatar
Rafaël Carré committed
1709
	patch -p0 < Patches/twolame-BeOS.patch
1710
endif
1711 1712

.twolame: twolame
Christophe Mutricy's avatar
Christophe Mutricy committed
1713
ifdef HAVE_WIN32
1714
	(cd twolame/win32; $(WGET) "http://twolame.svn.sourceforge.net/viewvc/*checkout*/twolame/trunk/win32/winutil.h")
Christophe Mutricy's avatar
Christophe Mutricy committed
1715
endif	
1716
	(cd twolame; $(HOSTCC) CFLAGS="${CFLAGS}  -DLIBTWOLAME_STATIC" ./configure $(HOSTCONF) --prefix=$(PREFIX) && cd libtwolame &&  make && make install)
1717 1718
	$(INSTALL_NAME)
	touch $@
1719 1720 1721

CLEAN_FILE += .twolame
CLEAN_PKG += twolame
1722
DISTCLEAN_PKG += twolame-$(TWOLAME_VERSION).tar.gz
1723 1724 1725 1726 1727 1728

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

libpng-$(PNG_VERSION).tar.bz2:
1729
	$(WGET) $(PNG_URL)
1730 1731

libpng: libpng-$(PNG_VERSION).tar.bz2
1732
	$(EXTRACT_BZ2)
1733
ifdef HAVE_WIN32
1734
	(cd $@; cat ../Patches/libpng-win32.patch | sed s,??PREFIX??,$(PREFIX), | patch -p0)
1735
else
1736
	(cat Patches/libpng-osx.patch | sed -e 's%??PREFIX??%$(PREFIX)%' -e 's%??EXTRA_CFLAGS??%$(EXTRA_CFLAGS)%' -e 's%??EXTRA_LDFLAGS??%$(EXTRA_LDFLAGS)%' | patch -p0)
1737
endif
Rafaël Carré's avatar
Rafaël Carré committed
1738
	(patch -p0 < Patches/libpng-makefile.patch)
1739
ifdef HAVE_DARWIN_OS_ON_INTEL
Rafaël Carré's avatar
Rafaël Carré committed
1740
	(patch -p0 < Patches/libpng-darwin-mactel.patch)
1741
endif
1742

1743
.png: libpng .zlib
1744
ifdef HAVE_DARWIN_OS
1745
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1746 1747
else
ifdef HAVE_WIN32
1748
	(cd $<; rm -f INSTALL; cp scripts/makefile.cygwin Makefile && make $(HOSTCC) && make install-static)
1749 1750
else
ifeq ($(PNG_VERSION),1.2.8)
1751
	(cd $<; PREFIX=$(PREFIX) DESTDIR=$(PREFIX) cp scripts/makefile.linux Makefile && make && make install)
1752
else
1753
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1754
endif
1755
endif
1756
endif
1757 1758
	$(INSTALL_NAME)
	touch $@
1759 1760 1761

CLEAN_FILE += .png
CLEAN_PKG += libpng
1762
DISTCLEAN_PKG += libpng-$(PNG_VERSION).tar.bz2
1763 1764 1765 1766 1767 1768

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

zvbi-$(ZVBI_VERSION).tar.bz2:
1769
	$(WGET) $(ZVBI_URL)
1770 1771

zvbi: zvbi-$(ZVBI_VERSION).tar.bz2
1772
	$(EXTRACT_BZ2)
1773

1774 1775 1776
ifdef HAVE_WIN32
.zvbi: zvbi .pthreads
else
1777
.zvbi: zvbi
1778
endif
1779
ifdef HAVE_DARWIN_OS
1780
	(cd $<; ./configure --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -fnested-functions" && make && make install)
1781 1782 1783
else
	(cd $<; ./configure --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" && make && make install)
endif
1784
	$(INSTALL_NAME)
1785
	touch $@
1786 1787 1788

CLEAN_FILE += .zvbi
CLEAN_PKG += zvbi
1789
DISTCLEAN_PKG += zvbi-$(ZVBI_VERSION).tar.bz2
1790 1791

# ***************************************************************************
1792 1793 1794 1795 1796
# libraw1394
# ***************************************************************************

#ifdef SVN
#libraw1394:
1797
#	$(SVN) co -r 325 $(LIBDC1394_SVN)/libraw1394/trunk/libraw1394  libraw1394
1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812
#        (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

1813
.raw1394: libraw1394
1814
	(cd $<; ./configure --prefix=$(PREFIX) && make && make DESTDIR=$(PRFIX) install)
1815
#	sed 's/^typedef u_int8_t  byte_t;/\/* typedef u_int8_t  byte_t;\*\//'
1816 1817
	touch $@
	
1818
CLEAN_FILE += .raw1394
1819
CLEAN_PKG += libraw1394
1820
DISTCLEAN_PKG += libraw1394-$(LIBRAW1394_VERSION).tar.gz
1821 1822 1823 1824 1825 1826 1827

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

#ifdef SVN
#libdc1394:
1828
#	$(SVN) co -r 325 $(LIBDC1394_SVN)/libdc1394/trunk/libdc1394  libdc1394
1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843
#        (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

1844
.dc1394: libdc1394
1845 1846 1847 1848 1849
	(cd $<; ./configure --prefix=$(PREFIX) && \
	 patch -p1 < ../Patches/libdc1394-noexamples.patch && \
	 make && make DESTDIR=$(PRFIX) install)
	touch $@
	
1850
CLEAN_FILE += .dc1394
1851
CLEAN_PKG += libdc1394
1852
DISTCLEAN_PKG += libdc1394-$(LIBDC1394_VERSION).tar.gz
1853 1854

# ***************************************************************************
1855 1856 1857
# gpg-error 
# ***************************************************************************

1858
libgpg-error-$(GPGERROR_VERSION).tar.bz2:
1859
	$(WGET) $(GPGERROR_URL)
1860

1861 1862
libgpg-error: libgpg-error-$(GPGERROR_VERSION).tar.bz2
	$(EXTRACT_BZ2)
1863

1864
.gpg-error: libgpg-error
1865
ifdef HAVE_DARWIN_OS_ON_INTEL
1866
	(cd $<; ./autogen.sh)
1867
endif
1868
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-nls --disable-shared --disable-languages && make && make install)
1869 1870
#	$(INSTALL_NAME)
	touch $@
1871

1872
CLEAN_FILE += .gpg-error
1873
CLEAN_PKG += libgpg-error
1874
DISTCLEAN_PKG += libgpg-error-$(GPGERROR_VERSION).tar.bz2
1875 1876 1877 1878 1879

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

1880
libgcrypt-$(GCRYPT_VERSION).tar.bz2:
1881
	$(WGET) $(GCRYPT_URL)
1882

1883
libgcrypt: libgcrypt-$(GCRYPT_VERSION).tar.bz2
1884
	$(EXTRACT_BZ2)
Rafaël Carré's avatar
Rafaël Carré committed
1885
	patch -p0 < Patches/gcrypt.patch
1886

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

1889
.gcrypt: libgcrypt .gpg-error
1890
ifdef HAVE_WIN32
1891
	(cd $<; ./autogen.sh && $(HOSTCC) ./configure $(HOSTCONF) --target=i586-mingw32msvc --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(CIPHDIG) --disable-shared --enable-static --disable-nls && sed -i 46s@sys/times.h@sys/time.h@ cipher/random.c && make && make install)
1892
else
1893
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(CIPHDIG) && make && make install)
1894
endif
1895 1896
	$(INSTALL_NAME)
	touch $@
1897 1898 1899

CLEAN_FILE += .gcrypt
CLEAN_PKG += libgcrypt
1900
DISTCLEAN_PKG += libgcrypt-$(GCRYPT_VERSION).tar.bz2
1901

1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919
# ***************************************************************************
# 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

1920 1921 1922 1923 1924
# ***************************************************************************
# gnutls
# ***************************************************************************

gnutls-$(GNUTLS_VERSION).tar.bz2:
1925
	$(WGET) $(GNUTLS_URL)
1926 1927

gnutls: gnutls-$(GNUTLS_VERSION).tar.bz2
1928
	$(EXTRACT_BZ2)
1929
ifdef HAVE_WIN32
1930
	patch -p0 < Patches/gnutls-win32.patch
1931
	(cd $@; cd lgl; ln -sf alloca_.h alloca.h;)
1932
endif
1933

1934
.gnutls: gnutls .opencdk .gcrypt .gpg-error 
1935
ifdef HAVE_WIN32
1936
	(cd $<; autoconf && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --target=i586-mingw32msvc --disable-cxx -disable-shared --enable-static --disable-nls  && cd lgl && make && cd ../gl && make &&  cd ../lib &&make && make install && cd ../includes && make install)
1937
else
1938
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --disable-cxx --with-libopencdk-prefix=$(PREFIX) --disable-guile && make && make install)
1939
endif
1940 1941
	$(INSTALL_NAME)
	touch $@
1942 1943 1944

CLEAN_FILE += .gnutls
CLEAN_PKG += gnutls
1945
DISTCLEAN_PKG += gnutls-$(GNUTLS_VERSION).tar.bz2
1946 1947 1948 1949 1950 1951

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

libopendaap-$(DAAP_VERSION).tar.bz2:
1952
	$(WGET) $(DAAP_URL)
1953 1954

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

1958
.opendaap: libopendaap
1959 1960 1961
	(cd $<; ./configure --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" && make install)
	$(INSTALL_NAME)
	touch $@
1962

1963
CLEAN_FILE += .opendaap
1964
CLEAN_PKG += libopendaap
1965
DISTCLEAN_PKG += libopendaap-$(DAAP_VERSION).tar.bz2
1966 1967 1968 1969 1970 1971

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

glib-$(GLIB_VERSION).tar.gz:
1972
	$(WGET) $(GLIB_URL)
1973 1974

glib: glib-$(GLIB_VERSION).tar.gz
1975
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
1976
	patch -p0 < Patches/glib.patch
1977 1978

.glib: glib
1979 1980
	(cd $<; ./configure --prefix=$(PREFIX) --host=powerpc-apple-macos && make && make install)
	touch $@
1981 1982 1983

CLEAN_FILE += .glibl
CLEAN_PKG += glib
1984
DISTCLEAN_PKG += glib-$(GLIB_VERSION).tar.gz
1985 1986 1987 1988 1989 1990

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

libIDL-$(LIBIDL_VERSION).tar.gz:
1991
	$(WGET) $(LIBIDL_URL)
1992 1993

libIDL: libIDL-$(LIBIDL_VERSION).tar.gz
1994
	$(EXTRACT_GZ)
1995

1996
.IDL: libIDL
1997 1998
	(cd $<; ./configure --prefix=$(PREFIX) --host=powerpc-apple-macos && make && make install )
	touch $@
1999

2000
CLEAN_FILE += .IDL
2001
CLEAN_PKG += libIDL
2002
DISTCLEAN_PKG += libIDL-$(LIBIDL_VERSION).tar.gz
2003

2004 2005 2006 2007 2008
# ***************************************************************************
# Gecko SDK
# ***************************************************************************

gecko-sdk-ppc-macosx10.2-1.7.5.tar.gz:
2009
	$(WGET) $(GECKO_SDK_MAC_URL)
2010 2011

gecko-sdk: gecko-sdk-ppc-macosx10.2-1.7.5.tar.gz
2012
	$(EXTRACT_GZ)
2013 2014

.gecko: gecko-sdk
2015 2016 2017
	rm -rf ../gecko-sdk
	mv gecko-sdk ..
	mkdir gecko-sdk #creating an empty dir is faster than copying the whole dir
2018 2019
	(cd $<)
	touch $@
2020 2021 2022 2023 2024

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

2025 2026 2027 2028
# ***************************************************************************
# Gecko SDK win32
# ***************************************************************************

2029
gecko-sdk-i586-pc-msvc-1.8b1.zip:
2030
	$(WGET) $(GECKO_SDK_WIN32_URL)
2031 2032

libIDL-0.6.3-win32-bin.zip:
2033
	$(WGET) $(LIBIDL_WIN32_BIN_URL)
2034

2035
glib-19990228.zip:
2036
	$(WGET) $(GLIB_WIN32_BIN_URL)
2037

2038
.gecko-win32: gecko-sdk-i586-pc-msvc-1.8b1.zip libIDL-0.6.3-win32-bin.zip glib-19990228.zip
2039 2040 2041 2042 2043 2044 2045
	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 $@
2046 2047 2048

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

2051
# ***************************************************************************
2052
# mozilla-macosx
2053 2054 2055
# ***************************************************************************

mozilla-source-$(MOZILLA_VERSION).tar.bz2:
2056
	$(WGET) $(MOZILLA_URL)
2057 2058

mozilla: mozilla-source-$(MOZILLA_VERSION).tar.bz2
2059
	$(EXTRACT_BZ2)
2060

2061
.mozilla-macosx: mozilla
2062 2063
	(cd $<; ./configure --prefix=$(PREFIX) --enable-default-toolkit=mac --enable-standalone-modules=xpcom,plugin && make && make install)
	touch $@
2064

2065 2066
CLEAN_FILE += .mozilla-macosx
CLEAN_PKG += mozilla-macosx
2067
DISTCLEAN_PKG += mozilla-source-$(MOZILLA_VERSION).tar.bz2
2068

2069 2070 2071 2072 2073
# ***************************************************************************
# libjpeg
# ***************************************************************************

jpeg-$(JPEG_VERSION).tar.gz:
2074
	$(WGET) $(JPEG_URL)
2075 2076

jpeg: jpeg-$(JPEG_VERSION).tar.gz 
2077
	$(EXTRACT_GZ)
2078 2079

.jpeg: jpeg
2080 2081 2082
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(HOSTCC) && make && make install-lib)
	$(RANLIB) $(PREFIX)/lib/libjpeg.a
	touch $@
2083 2084 2085 2086 2087 2088 2089 2090 2091 2092

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

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

tiff-$(TIFF_VERSION).tar.gz:
2093
	$(WGET) $(TIFF_URL)
2094 2095

tiff: tiff-$(TIFF_VERSION).tar.gz 
2096
	$(EXTRACT_GZ)
2097 2098

.tiff: tiff
2099
ifdef HAVE_WIN32
2100
	(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)
2101
else
2102
	(cd $<; ./configure --with-CFLAGS="$(CFLAGS)" --with-JPEG=no --with-ZIP=no --prefix=$(PREFIX) && make -C port &&make -C libtiff && make -C libtiff install)
2103
endif
2104
	$(INSTALL_NAME)
2105
	touch $@
2106 2107 2108 2109 2110 2111 2112 2113 2114 2115

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

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

SDL-$(SDL_VERSION).tar.gz:
2116
	$(WGET) $(SDL_URL)
2117 2118

SDL: SDL-$(SDL_VERSION).tar.gz 
2119
	$(EXTRACT_GZ)
2120 2121

.SDL: SDL
2122 2123 2124
	(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 $@
2125 2126 2127 2128 2129 2130 2131 2132 2133 2134

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

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

SDL_image-$(SDL_IMAGE_VERSION).tar.gz:
2135
	$(WGET) $(SDL_IMAGE_URL)
2136 2137

SDL_image: SDL_image-$(SDL_IMAGE_VERSION).tar.gz 
2138
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
2139
	patch -p0 < Patches/SDL_image.patch
2140
	patch -p0 < Patches/SDL_image-CVE-2006-4484.patch
2141 2142

.SDL_image: SDL_image .SDL .png .jpeg .tiff
2143 2144 2145
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --enable-tif --disable-sdltest && make && make install)
	$(INSTALL_NAME)
	touch $@
2146 2147 2148 2149 2150

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

2151 2152 2153 2154 2155
# ***************************************************************************
# Musepack decoder library (libmpcdec)
# ***************************************************************************

libmpcdec-$(MUSE_VERSION).tar.bz2:
2156
	$(WGET) $(MUSE_URL)
2157

2158
mpcdec: libmpcdec-$(MUSE_VERSION).tar.bz2 
2159
	$(EXTRACT_BZ2)
2160
	patch -p0 < Patches/mpcdec.patch
2161
	(cd $@; autoreconf)
2162

2163
.mpcdec: mpcdec
2164
ifdef HAVE_WIN32 
2165
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS=-D_PTRDIFF_T=mpc_int32_t && make && make install)
2166
else
2167
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
2168 2169
endif
ifdef HAVE_DARWIN_OS
2170
	$(INSTALL_NAME)
2171
endif
2172
	touch $@
2173

2174 2175
CLEAN_FILE += .mpcdec
CLEAN_PKG += mpcdec
2176 2177
DISTCLEAN_PKG += libmpcdec-$(MUSE_VERSION).tar.bz2

2178
# ***************************************************************************
2179 2180
# Dirac
# ***************************************************************************
2181 2182

dirac-$(DIRAC_VERSION).tar.gz:
2183
	$(WGET) $(DIRAC_URL)
2184 2185

dirac: dirac-$(DIRAC_VERSION).tar.gz
2186
	$(EXTRACT_GZ)
2187
	patch -p1 -d dirac <Patches/dirac-cross.patch
2188
ifdef HAVE_CYGWIN
2189
	# incorrect compile warning with cygwin compiler 3.4.4
2190 2191
	patch -p0 <Patches/dirac-cygwin.patch
endif
2192
	(cd $@; aclocal -I m4 && autoconf && automake)
2193

2194 2195 2196 2197
DIRAC_SUBDIRS = libdirac_byteio libdirac_common libdirac_motionest libdirac_encoder libdirac_decoder

ifdef HAVE_WIN32
DIRAC_SUBDIRS += win32
2198
endif
2199

2200
.dirac: dirac
2201
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)  CFLAGS="$(CFLAGS)" && DOC_DIR="" make $(DIRAC_SUBDIRS) && DOC_DIR="" make install)
2202
	touch $@
2203 2204 2205

# for MacOS X, dirac is split into two libraries, which needs be installed using two targets
.dirac_encoder: .dirac
2206 2207
	$(INSTALL_NAME)
	touch $@
2208 2209

.dirac_decoder: .dirac
2210 2211
	$(INSTALL_NAME)
	touch $@
2212 2213 2214 2215 2216 2217 2218 2219 2220

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

# *************************************************************************
# DirectX headers
# *************************************************************************
win32-dx7headers.tgz:
2221
	$(WGET) $(DX_HEADERS_URL)
2222
.dx_headers: win32-dx7headers.tgz
2223 2224
	(cd ../include ; tar xzf ../src/$<)
	touch $@
2225 2226 2227 2228 2229 2230 2231
CLEAN_FILE += .dx_headers
DISTCLEAN_PKG += win32-dx7headers.tgz
 
# *************************************************************************
# DirectShow headers
# *************************************************************************
dshow-headers.tgz:
2232
	$(WGET) $(DSHOW_HEADERS_URL)
2233
.dshow_headers: dshow-headers.tgz
2234 2235
	(cd ../include ; tar xzf ../src/$<)
	touch $@
2236 2237
CLEAN_FILE += .dshow_headers
DISTCLEAN_PKG += dshow-headers.tgz
2238 2239 2240 2241 2242 2243

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

expat-$(EXPAT_VERSION).tar.gz:
2244
	$(WGET) $(EXPAT_URL)
2245 2246

expat: expat-$(EXPAT_VERSION).tar.gz
2247
	$(EXTRACT_GZ)
2248 2249

.expat: expat
2250
ifdef HAVE_DARWIN_OS
2251
	(cd $< aclocal --force && libtoolize --force && autoconf --force && autoheader --force )
2252
endif
2253 2254
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
2255 2256 2257 2258 2259 2260 2261 2262 2263 2264

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

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

clinkcc$(CLINKCC_VERSION).tar.gz:
2265
	$(WGET) $(CLINKCC_URL)
2266 2267

clinkcc: clinkcc$(CLINKCC_VERSION).tar.gz
2268 2269 2270
	tar xzf $<
	mv $(patsubst %.tar.gz,Cyberlink,$(patsubst %.tgz,Cyberlink,$(notdir $<))) $@ || true
	touch $@
Rafaël Carré's avatar
Rafaël Carré committed
2271
	patch -p0 < Patches/clinkcc.patch
2272
ifdef HAVE_DARWIN_OS
Rafaël Carré's avatar
Rafaël Carré committed
2273
	patch -p0 < Patches/clinkcc_osx.patch
2274 2275 2276
endif

.clinkcc: clinkcc
2277 2278
	(cd $<; ./bootstrap && ./configure --prefix=$(PREFIX) --enable-expat && make && chmod 755 config/install-sh && make install )
	touch $@
2279 2280 2281

CLEAN_FILE += .clinkcc
CLEAN_PKG += clinkcc
2282
DISTCLEAN_PKG += clinkcc$(CLINKCC_VERSION).tar.gz
2283

2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301
# ***************************************************************************
# 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

2302 2303 2304 2305 2306 2307 2308
# ***************************************************************************
# Copy aclocal files
# This is necessary for --missing aclocal to succeed after a
# configure.ac/Makefile.am change in the vlc root dir
# **************************************************************************

.aclocal:
2309 2310
	cp -R $(PREFIX)/share/aclocal/* $(PREFIX)/../../m4/
	touch $@
2311

Felix Paul Kühne's avatar
Felix Paul Kühne committed
2312
CLEAN_FILE += .aclocal
2313

2314 2315 2316 2317 2318
# ***************************************************************************
# UNICOWS (Unicode support for WINME/98/95)
# ***************************************************************************

libunicows-$(UNICOWS_VERSION).tar.gz:
2319 2320
	$(WGET) $(UNICOWS_URL)
	mv libunicows-$(UNICOWS_VERSION)-src.tar.gz $@ || true
2321 2322

libunicows: libunicows-$(UNICOWS_VERSION).tar.gz
2323
	$(EXTRACT_GZ)
2324 2325

.unicows: libunicows
2326 2327
	(cd $</src; make -f makefile.mingw32 PATHSEP='/' $(HOSTCC) && cp -f ../lib/mingw32/libunicows.a $(PREFIX)/lib)
	touch $@
2328 2329 2330

CLEAN_FILE += .unicows
CLEAN_PKG += libunicows
2331
DISTCLEAN_PKG += libunicows-$(UNICOWS_VERSION).tar.gz
2332

2333 2334 2335 2336 2337
# ***************************************************************************
# TagLib read and editing of tags of popular audio formats
# ***************************************************************************

taglib-$(TAGLIB_VERSION).tar.gz:
2338
	$(WGET) $(TAGLIB_URL)
2339 2340

taglib: taglib-$(TAGLIB_VERSION).tar.gz
2341
	$(EXTRACT_GZ)
2342 2343 2344
ifdef HAVE_WIN32
	patch -p0 < Patches/taglib.patch
endif
2345
ifdef HAVE_CYGWIN
2346
	patch -p0 < Patches/taglib-cygwin.patch
2347
endif
2348 2349

.tag: taglib
2350
	(cd $<; $(HOSTCC)  ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
2351 2352
	$(INSTALL_NAME)
	touch $@
2353

2354 2355 2356 2357 2358 2359 2360
CLEAN_FILE += .tag
CLEAN_PKG += taglib
DISTCLEAN_PKG += taglib-$(TAGLIB_VERSION).tar.gz

# ***************************************************************************
# pthreads for win32
# ***************************************************************************
Christophe Mutricy's avatar
Christophe Mutricy committed
2361 2362 2363 2364 2365 2366 2367 2368

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

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

.pthreads: pthreads
2369
	(cd $<; $(HOSTCC) make $(PTHREADSCONF) GC-static && mkdir -p $(PREFIX)/include && cp -v pthread.h sched.h semaphore.h $(PREFIX)/include/ && mkdir -p $(PREFIX)/lib && cp -v *.a $(PREFIX)/lib/)
Christophe Mutricy's avatar
Christophe Mutricy committed
2370 2371 2372
	$(INSTALL_NAME)
	touch $@

2373 2374 2375
CLEAN_FILE += .pthreads
CLEAN_PKG += pthreads
DISTCLEAN_PKG += pthreads-w32-$(PTHREADS_VERSION)-release.tar.gz
2376

2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393
# ***************************************************************************
# 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
2394

2395 2396 2397 2398 2399
# ***************************************************************************
# asa library (ASS/SSA support)
# ***************************************************************************

asa.git.tar.gz:
2400
	$(WGET) $(ASA_URL)
2401 2402 2403

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

Rafaël Carré's avatar
Rafaël Carré committed
2406 2407
.asa: asa .fontconfig .pcre .iconv
	(cd $<; ./bootstrap; $(HOSTCC) CFLAGS="$(CFLAGS) -DPCRE_STATIC" ./configure $(HOSTCONF) --prefix=$(PREFIX))
2408
	(cd $</lib/import; make || (echo "Please copy a ./prepare 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
2409
	(cd $<; make && make install)
2410
	$(INSTALL_NAME)
2411 2412 2413 2414 2415 2416
	touch $@

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

2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435
# ***************************************************************************
# 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
DISTCLEAN_PKG += fluidsynth-$(NCURSES_VERSION).tar.gz


2436
# ***************************************************************************
2437
# Some cleaning
2438 2439 2440
# ***************************************************************************

clean-dots: FORCE
2441
	rm -f $(CLEAN_FILE)
2442 2443

clean: clean-dots
2444
	rm -rf $(CLEAN_PKG)
2445 2446

clean-src: clean
2447
	rm -rf $(DISTCLEAN_PKG)
2448

2449
clean-svn:
2450
	rm -rf ffmpeg tremor x264 libdca pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz portaudio live555-$(LIVEDOTCOM_VERSION).tar.gz live	
2451

2452
distclean: clean-src
2453

2454 2455 2456 2457
# ***************************************************************************
# Download all the sources and package unversionned copies of subversion trees
# ***************************************************************************

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