Makefile 71.2 KB
Newer Older
1
#***************************************************************************
2 3
# src/Makefile : Dearchive and compile all files necessary
# ***************************************************************************
4
# Copyright (C) 2003 - 2007 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 Kühne <fkuehne@users.sourceforge.net>
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)- --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 --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-swscaler
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 154
FFMPEG_CFLAGS += -DHAVE_LRINTF
endif
155 156
endif

157
ifdef HAVE_AMR
158
FFMPEGCONF+= --enable-libamr-nb --enable-libamr-wb --enable-nonfree
159 160
endif

161 162
DATE=`date +%Y-%m-%d`

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

FORCE:

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

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

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

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

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

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

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

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

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

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

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

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

246
autoconf-$(AUTOCONF_VERSION).tar.bz2:
247
	$(WGET) $(AUTOCONF_URL)
248

249
autoconf: autoconf-$(AUTOCONF_VERSION).tar.bz2
250
	$(EXTRACT_BZ2)
251 252

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

CLEAN_FILE += .autoconf
CLEAN_PKG += autoconf
258
DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.bz2
259

260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277
# ***************************************************************************
# CMake
# ***************************************************************************

cmake-$(CMAKE_VERSION).tar.gz:
	$(WGET) $(CMAKE_URL)

cmake: cmake-$(CMAKE_VERSION).tar.gz
	$(EXTRACT_GZ)

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

CLEAN_FILE += .cmake
CLEAN_PKG += cmake
DISTCLEAN_PKG += cmake-$(CMAKE_VERSION).tar.gz

278 279 280 281 282
# ***************************************************************************
# libtool
# ***************************************************************************

ifdef HAVE_DARWIN_OS
283 284 285 286 287 288 289 290
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)
291 292
	ln -sf libtool $(PREFIX)/bin/glibtool
	ln -sf libtoolize $(PREFIX)/bin/glibtoolize
293
	touch $@
294 295 296

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

299 300 301 302
endif

ifeq ($(BUILD),i586-pc-beos)
libtool-$(LIBTOOL_VERSION).tar.gz:
303
	$(WGET) $(LIBTOOL_URL)
304 305

libtool: libtool-$(LIBTOOL_VERSION).tar.gz
306
	$(EXTRACT_GZ)
307 308

.libtool: libtool
309 310
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
311 312 313 314 315

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

316 317
endif

318 319 320 321 322
# ***************************************************************************
# automake
# ***************************************************************************

automake-$(AUTOMAKE_VERSION).tar.gz:
323
	$(WGET) $(AUTOMAKE_URL)
324 325

automake: automake-$(AUTOMAKE_VERSION).tar.gz
326
	$(EXTRACT_GZ)
327 328

.automake: automake
329 330
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
331 332 333 334 335 336 337 338 339

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

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

340
pkg-config-$(PKGCFG_VERSION).tar.gz:
341
	$(WGET) $(PKGCFG_URL)
342

343
pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
344 345 346
	$(EXTRACT_GZ)
	patch -d pkgconfig/glib-1.2.8 -p 1 < Patches/glib.patch
	patch -d pkgconfig -p0 < Patches/pkgcfg.patch
347 348

.pkgcfg: pkgconfig
349 350
	(cd pkgconfig; autoconf && ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
	touch $@
351 352 353

CLEAN_FILE += .pkgcfg
CLEAN_PKG += pkgconfig
354
DISTCLEAN_PKG += pkg-config-$(PKGCFG_VERSION).tar.gz
355 356 357 358 359 360

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

gettext-$(GETTEXT_VERSION).tar.gz:
361
	$(WGET) $(GETTEXT_URL)
362 363

gettext: gettext-$(GETTEXT_VERSION).tar.gz
364
	$(EXTRACT_GZ)
365
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
366
	patch -p0 < Patches/gettext-win32.patch
367
endif
368

369
.intl: gettext .iconv
370
ifdef HAVE_WIN32
371
	( cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-relocatable --with-iconv-prefix=$(PREFIX) --disable-java --disable-native-java)
372
else
373
	( cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-java --disable-native-java --without-emacs)
374
endif
375 376 377
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
378
	( 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 )
379 380
endif
ifneq ($(HOST),$(BUILD))
381 382
  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
383
	( cd $< && make -C gettext-runtime/intl && patch -p1 < ../Patches/libintl.patch && make -C gettext-runtime/intl install && make -C gettext-tools/misc install )
384 385 386 387
  else
    # We are compiling for MinGW on Cygwin -- build the full current gettext
	( cd $< && make && patch -p1 < ../Patches/libintl.patch && make install )
  endif
388 389
else
# Build and install the whole gettext
390
	( cd $< && make && patch -p1 < ../Patches/libintl.patch && make install )
391 392 393
endif
# Work around another non-sense of autoconf.
ifdef HAVE_WIN32
394
	(cd ../include; sed -i.orig '311 c #if 0' libintl.h)
395
endif
396 397
	$(INSTALL_NAME)
	touch $@
398 399 400 401 402 403 404 405 406 407

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

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

libiconv-$(LIBICONV_VERSION).tar.gz:
408
	$(WGET) $(LIBICONV_URL)
409 410

libiconv: libiconv-$(LIBICONV_VERSION).tar.gz
411
	$(EXTRACT_GZ)
412
ifdef HAVE_DARWIN_OS
Rafaël Carré's avatar
Rafaël Carré committed
413
	patch -p0 < Patches/libiconv.patch
414
endif
415
	patch -p0 < Patches/libiconv-autoconf-uclibc.patch
416

417
ifdef HAVE_DARWIN_OS
418
.iconv:
419
	touch $@
420
else
421
.iconv: libiconv
422 423 424
	(cd libiconv; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-nls && make && make install)
	$(INSTALL_NAME)
	touch $@
425
endif
426 427 428 429 430

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

431 432 433 434 435 436 437
# ***************************************************************************
# fontconfig
# ***************************************************************************

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

438
fontconfig: fontconfig-$(FONTCONFIG_VERSION).tar.gz Patches/fontconfig.patch
439 440
	$(EXTRACT_GZ)
	patch -p0 < Patches/fontconfig.patch
441
	patch -p0 < Patches/fontconfig-nodocs.patch
442 443 444 445

.fontconfig: fontconfig
ifdef HAVE_WIN32
  ifdef HAVE_CYGWIN
446
	(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)
447
  else
448
	(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)
449 450
  endif
else
451
  ifdef HAVE_DARWIN_OS
452
	(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))
453
  else
454
	(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)
455
  endif
456 457 458 459 460 461 462 463
endif
	$(INSTALL_NAME)
	touch $@

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

464 465 466 467 468
# ***************************************************************************
# freetype2
# ***************************************************************************

freetype-$(FREETYPE2_VERSION).tar.gz:
469
	$(WGET) $(FREETYPE2_URL)
470 471

freetype2: freetype-$(FREETYPE2_VERSION).tar.gz
472
	$(EXTRACT_GZ)
473
	patch -p0 < Patches/freetype-cross.patch
474 475

.freetype: freetype2
476
ifdef HAVE_CYGWIN
477
	(cd $<; ./configure --target=$(HOST) --disable-pic --disable-shared --prefix=$(PREFIX) && make && make install)
478
else
479
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
480
endif
481 482
	$(INSTALL_NAME)
	touch $@
483 484 485 486 487 488 489 490 491

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

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

492
fribidi-$(FRIBIDI_VERSION).tar.gz:
493
	$(WGET) $(FRIBIDI_URL)
494

495 496
fribidi: fribidi-$(FRIBIDI_VERSION).tar.gz
	$(EXTRACT_GZ)
497
	patch -p0 < Patches/fribidi.patch
498

499
.fribidi: fribidi .iconv
500 501 502
	(cd $<; rm -f configure; ./bootstrap && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)  && make && make install)
	$(INSTALL_NAME)
	touch $@
503 504 505

CLEAN_FILE += .fribidi
CLEAN_PKG += fribidi
506
DISTCLEAN_PKG += fribidi-$(FRIBIDI_VERSION).tar.gz
507 508 509 510 511 512

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

a52dec-$(A52DEC_VERSION).tar.gz:
513
	$(WGET) $(A52DEC_URL)
514 515

a52dec: a52dec-$(A52DEC_VERSION).tar.gz
516
	$(EXTRACT_GZ)
517 518

.a52: a52dec
519 520
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && cd liba52 && make && make install && cd ../include && make && make install)
	touch $@
521 522 523 524 525 526 527 528 529 530

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

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

#mpeg2dec:
531 532 533 534
#	@echo "*** Please press return here : ***"
#	cvs -d $(MPEG2DEC_CVSROOT) login
#	cvs -d $(MPEG2DEC_CVSROOT) co mpeg2dec
#	(cd $@; ./bootstrap)
535

Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
536
mpeg2dec-$(MPEG2DEC_VERSION).tar.gz:
537
	$(WGET) $(MPEG2DEC_URL)
538 539

# It is easier to use bootstrapped versions...
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
540
#mpeg2dec-$(MPEG2DEC_VERSION).tar.gz:
541 542
#	$(WGET) $(MPEG2DEC_SNAPSHOT)
#	mv mpeg2dec-$(MPEG2DEC_DATE).tar.gz $@
543 544

mpeg2dec: mpeg2dec-$(MPEG2DEC_VERSION).tar.gz
545
	$(EXTRACT_GZ)
546 547

.mpeg2: mpeg2dec
548 549
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --without-x --disable-sdl && cd libmpeg2 && make && make install && cd ../include && make && make install)
	touch $@
550 551 552 553 554 555 556 557 558 559 560

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:
561
	$(WGET) $(LIBID3TAG_URL)
562 563

libid3tag: libid3tag-$(LIBID3TAG_VERSION).tar.gz
564
	$(EXTRACT_GZ)
565 566

.id3tag: libid3tag
567 568 569
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
	$(INSTALL_NAME)
	touch $@
570 571 572 573 574

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

575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603
# ***************************************************************************
# 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
604
ifdef HAVE_WIN32
605
	( cd $<; sed -i.orig 's/lua luac/lua.exe/' Makefile ; cd src; sed -i.orig 's/CC=/#CC=/' Makefile; cd ../..;)
606 607
	(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)
608
else 
609
	(cd $<; $(HOSTCC) make $(LUA_MAKEPLATEFORM) && make install INSTALL_TOP=$(PREFIX))
610
endif
611 612 613 614 615 616
	touch $@

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

617 618 619 620 621
# ***************************************************************************
# libmad
# ***************************************************************************

libmad-$(LIBMAD_VERSION).tar.gz:
622
	$(WGET) $(LIBMAD_URL)
623 624

libmad: libmad-$(LIBMAD_VERSION).tar.gz
625
	$(EXTRACT_GZ)
626 627

.mad: libmad
628 629 630
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="-O3" && make && make install)
	$(INSTALL_NAME)
	touch $@
631 632 633 634 635 636 637 638 639 640

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

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

libogg-$(OGG_VERSION).tar.gz:
641
	$(WGET) $(OGG_URL)
642 643

libogg: libogg-$(OGG_VERSION).tar.gz
644
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
645 646
	patch -p0 < Patches/ogg.patch
	patch -p0 < Patches/libogg-1.1.patch
647
ifdef HAVE_WINCE
Rafaël Carré's avatar
Rafaël Carré committed
648
	patch -p0 < Patches/libogg-wince.patch
649
endif
650
	(cd $@; autoconf)
651 652

.ogg: libogg
653 654 655
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make install)
	$(INSTALL_NAME)
	touch $@
656 657 658 659 660 661 662 663 664 665

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

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

#vorbis:
666 667 668 669
#	@echo "*** Please type \"anoncvs\" here : ***"
#	cvs -d $(OGG_CVSROOT) login
#	cvs -d $(OGG_CVSROOT) co vorbis
#	(cd $@; ./autogen.sh)
670 671

libvorbis-$(VORBIS_VERSION).tar.gz:
672
	$(WGET) $(VORBIS_URL)
673 674

libvorbis: libvorbis-$(VORBIS_VERSION).tar.gz
675
	$(EXTRACT_GZ)
676
	patch -p0 < Patches/libvorbis.patch
677
	(cd $@; autoconf)
678 679

.vorbis: libvorbis .ogg
680 681
# FIXME: shared libs disabled for now because of linking errors
#   -- titer 2005/09/16
682 683 684
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared && make && make install)
#	$(INSTALL_NAME)
	touch $@
685 686

.vorbisenc: .vorbis .ogg
687 688
#	$(INSTALL_NAME)
	touch $@
689 690 691 692 693

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

694 695 696 697 698 699
# ***************************************************************************
# tremor
# ***************************************************************************

ifdef SVN
tremor: 
700
	$(SVN) co http://svn.xiph.org/trunk/Tremor tremor
701 702
	(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)
703 704
else
tremor-$(TREMOR_VERSION).tar.bz2:
705 706
	echo "tremor snapshot does not exist, you MUST use subversion !"
	exit -1
707
	$(WGET) $(TREMOR_URL)
708 709

tremor: tremor-$(TREMOR_VERSION).tar.bz2
710
	$(EXTRACT_BZ2)
711 712 713
endif

.tremor: tremor .ogg
714 715 716
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared && make && make install)
	$(INSTALL_NAME)
	touch $@
717

718 719
ifdef SVN
tremor-source: tremor
720
	tar cfvz tremor-$(DATE).tar.gz tremor
721 722 723 724

SOURCE += tremor-source
endif

725 726
CLEAN_FILE += .tremor
CLEAN_PKG += tremor
727
#DISTCLEAN_PKG += tremor-$(TREMOR_VERSION).tar.bz2 #no tremor snapshot
728

729 730 731 732 733
# ***************************************************************************
# theora
# ***************************************************************************

libtheora-$(THEORA_VERSION).tar.bz2:
734
	$(WGET) $(THEORA_URL)
735 736

libtheora: libtheora-$(THEORA_VERSION).tar.bz2
737 738 739
	$(EXTRACT_BZ2)
	patch -p0 < Patches/theora.patch
	(cd $@; autoconf)
740

741
.theora: libtheora .ogg
742
ifdef HAVE_BEOS
743
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-sdltest --disable-oggtest --disable-vorbistest --disable-asm --disable-examples && make && make install)
744
else
745
  ifdef NO_TEXT_RELOCATION
746 747
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-asm --disable-sdltest --disable-oggtest --disable-vorbistest --disable-asm --disable-examples && make && make install)
  else
748
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-sdltest --disable-oggtest --disable-vorbistest --disable-examples && make && make install)
749
  endif
750
endif
751 752
	$(INSTALL_NAME)
	touch $@
753 754 755 756 757

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

Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
758 759 760 761 762
# ***************************************************************************
# shout
# ***************************************************************************

libshout-$(SHOUT_VERSION).tar.gz:
763
	$(WGET) $(SHOUT_URL)
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
764 765

libshout: libshout-$(SHOUT_VERSION).tar.gz
766
	$(EXTRACT_GZ)
Christophe Mutricy's avatar
Christophe Mutricy committed
767
ifdef HAVE_WIN32
768
	patch -p0 < Patches/libshout-win32.patch
769
	(cd $@; autoreconf && automake)
Christophe Mutricy's avatar
Christophe Mutricy committed
770 771
endif
  
772
.shout: libshout .theora .ogg .speex .vorbis
773 774 775
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) &&  make && make install )
	$(INSTALL_NAME)
	touch $@
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
776 777 778 779 780

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

781 782 783 784 785
# ***************************************************************************
# flac
# ***************************************************************************

flac-$(FLAC_VERSION).tar.gz:
786
	$(WGET) $(FLAC_URL)
787 788

flac: flac-$(FLAC_VERSION).tar.gz
789
	$(EXTRACT_GZ)
790
ifdef HAVE_WIN32
791
	patch -p0 < Patches/flac-win32.patch
792
endif
793 794

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

Damien Fouilleul's avatar
Damien Fouilleul committed
796
.flac: flac .ogg 
797
ifdef HAVE_WIN32
798
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(FLAC_DISABLE_FLAGS) && cd src&& make -C libFLAC&& make -C libFLAC install && cd .. && make -C include install)
799
else
800
ifdef HAVE_DARWIN_OS
801
ifdef HAVE_DARWIN_OS_ON_INTEL
802
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-asm-optimizations && cd src && make -C libFLAC && make -C libFLAC install  && cd .. && make -C include install)
803
else
804
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(FLAC_DISABLE_FLAGS) && cd src && make -C libFLAC && make -C libFLAC install  && cd .. && make -C include install)
805
endif
806
else
807
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)  $(FLAC_DISABLE_FLAGS) && cd src && make -C libFLAC && make -C libFLAC install  && cd .. && make -C include install)
808
endif
809
endif
810 811
	$(INSTALL_NAME)
	touch $@
812

Damien Fouilleul's avatar
Damien Fouilleul committed
813
CLEAN_FILE += .flac
814 815 816 817 818 819 820 821
CLEAN_PKG += flac
DISTCLEAN_PKG += flac-$(FLAC_VERSION).tar.gz

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

speex-$(SPEEX_VERSION).tar.gz:
822
	$(WGET) $(SPEEX_URL)
823 824

speex: speex-$(SPEEX_VERSION).tar.gz
825 826
	$(EXTRACT_GZ)
	patch -p0 < Patches/speex.patch
827
ifdef HAVE_BEOS
828
	patch -p0 < Patches/speex-BeOS.patch
829
endif
830 831

.speex: speex
832 833 834
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-ogg=no && make && make install)
	$(INSTALL_NAME)
	touch $@
835 836 837 838 839 840 841 842 843

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

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

844
faad2-$(FAAD2_VERSION).tar.gz:
845
	$(WGET) $(FAAD2_URL)
846

847 848 849
faad2: faad2-$(FAAD2_VERSION).tar.gz
	$(EXTRACT_GZ)
	(cd $@; ./bootstrap)
850

851
.faad: faad2
852
	(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)
853
	touch $@
854 855

CLEAN_FILE += .faad
856 857
CLEAN_PKG += faad2
DISTCLEAN_PKG += faad2-$(FAAD2_VERSION).tar.gz
858 859 860 861 862

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

863
faac-$(FAAC_VERSION).tar.gz:
864
	$(WGET) $(FAAC_URL)
865

866 867
faac: faac-$(FAAC_VERSION).tar.gz
	$(EXTRACT_GZ)
868 869

.faac: faac
870
	(cd $<; ./bootstrap && $(HOSTCC) ./configure $(HOSTCONF) --without-mp4v2 --prefix=$(PREFIX) --disable-shared && make && make install)
871
	touch $@
872 873 874

CLEAN_FILE += .faac
CLEAN_PKG += faac
875
DISTCLEAN_PKG += faac-$(FAAC_VERSION).tar.gz
876 877 878 879 880 881

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

lame-$(LAME_VERSION).tar.gz:
882
	$(WGET) $(LAME_URL)
883 884

lame: lame-$(LAME_VERSION).tar.gz
885
	$(EXTRACT_GZ)
886 887

.lame: lame
888 889
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-analyser-hooks --disable-decoder --disable-shared --disable-gtktest --disable-frontend && make && make install)
	touch $@
890 891 892 893 894 895 896 897 898 899

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

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

libebml-$(LIBEBML_VERSION).tar.bz2:
900
	$(WGET) $(LIBEBML_URL)
901

902 903 904
## No reasons to use SVN anymore
#ifdef SVN
#libebml:
905
#	$(SVN) co http://svn.matroska.org/svn/matroska/trunk/libebml libebml
906
#else
907
libebml: libebml-$(LIBEBML_VERSION).tar.bz2
908
	$(EXTRACT_BZ2)
909 910
#endif

911
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
912
	(cd $@; patch -p0 < ../Patches/libebml-svn-win32.patch)
913
endif
914 915

.ebml: libebml
916
ifdef HAVE_WIN32
917
	(cd $<; make -C make/mingw32 prefix=$(PREFIX) $(HOSTCC2) CFLAGS="$(CFLAGS) -DWIN32" SHARED=no && make -C make/linux install_staticlib install_headers prefix=$(PREFIX) $(HOSTCC2))
918
else
919 920 921 922
	(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 $@
923 924 925 926 927 928
## No reasons to use SVN anymore
#ifdef SVN
#libebml-source: libebml
#	tar cfvz  libebml-$(DATE).tar.gz libebml
#SOURCE += libebml-source	
#endif
929

930 931 932 933 934 935 936 937
CLEAN_FILE += .ebml
CLEAN_PKG += libebml
DISTCLEAN_PKG += libebml-$(LIBEBML_VERSION).tar.bz2

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

938 939 940
libmatroska-$(LIBMATROSKA_VERSION).tar.bz2:
	$(WGET) $(LIBMATROSKA_URL)

941 942 943
## No reasons to use SVN anymore
#if SVN
#libmatroska:
944
#	$(SVN) co http://svn.matroska.org/svn/matroska/trunk/libmatroska libmatroska
945
#else
946
libmatroska: libmatroska-$(LIBMATROSKA_VERSION).tar.bz2
947
	$(EXTRACT_BZ2)
948 949
#endif 

950
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
951
	(cd $@; patch -p0 < ../Patches/libmatroska-win32.patch)
952
endif
953

954 955
.matroska: libmatroska .ebml
ifdef HAVE_WIN32
956
	(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))
957
else
958 959
	(cd $<; make -C make/linux prefix=$(PREFIX) $(HOSTCC2) staticlib && make -C make/linux install_staticlib install_headers prefix=$(PREFIX))
	$(RANLIB) $(PREFIX)/lib/libmatroska.a
960
endif
961
	touch $@
962

963 964 965 966 967 968 969
## No reasons to use SVN anymore
#ifdef SVN
#libmatroska-source: libmatroska
#	tar cfvz libmatroska-$(DATE).tar.gz libmatroska
#
#SOURCE += libmatroska-source
#endif
970

971 972 973 974 975
CLEAN_FILE += .matroska
CLEAN_PKG += libmatroska
DISTCLEAN_PKG += libmatroska-$(LIBMATROSKA_VERSION).tar.bz2

# ***************************************************************************
976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009
# 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
1010
DISTCLEAN_PKG += amrwb-$(LIBAMR_WB_VERSION).tar.bz2
1011 1012 1013

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

1014 1015 1016
# ffmpeg
# ***************************************************************************

1017
ifdef SVN
1018
ffmpeg:
Felix Paul Kühne's avatar
Felix Paul Kühne committed
1019
	$(SVN) co $(FFMPEG_SVN) ffmpeg
1020
ifeq ($(HOST),i586-pc-beos)
Rafaël Carré's avatar
Rafaël Carré committed
1021
	(cd $@; patch -p0 < ../Patches/ffmpeg-svn-beos.patch)
1022
endif
1023
ifdef HAVE_WINCE
Rafaël Carré's avatar
Rafaël Carré committed
1024
	patch -p1 < Patches/ffmpeg-svn-wince.patch
1025
endif
1026 1027 1028
ifdef HAVE_BEOS
	(cd $@; patch -p0 < ../Patches/ffmpeg-alignment.patch)
endif
1029
ifdef HAVE_DARWIN_OS
1030
	(cd $@; patch -p0 < ../Patches/ffmpeg-macosx-intel-mmx.patch)
1031
endif
1032
ifdef NO_TEXT_RELOCATION
1033 1034
	(cd $@; patch -p0 < ../Patches/ffmpeg-svn-mmx_removal-darwin9.patch)
endif
1035
ifdef HAVE_UCLIBC
1036 1037
	patch -p0 < Patches/ffmpeg-svn-uclibc.patch
	patch -p0 < Patches/ffmpeg-svn-internal-define.patch
1038
	patch -p0 < Patches/ffmpeg-svn-libavformat.patch
1039
endif
1040

1041
else
1042
ffmpeg-$(FFMPEG_VERSION).tar.gz:
1043 1044
	echo "ffmpeg snapshot is too old, you MUST use subversion !"
	exit -1
1045
	$(WGET) $(FFMPEG_URL)
1046

1047 1048 1049
ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz
	$(EXTRACT_GZ)
endif
1050

1051
ifdef HAVE_WINCE
1052
.ffmpeg: ffmpeg .zlib
1053
else
1054 1055 1056
ifdef HAVE_UCLIBC
.ffmpeg: ffmpeg
else
1057 1058
.ffmpeg: ffmpeg .faac .lame
endif
1059
endif
1060
	(cd $<; $(HOSTCC) ./configure $(FFMPEGCONF) --prefix=$(PREFIX) --extra-cflags="$(CFLAGS) $(FFMPEG_CFLAGS) -DRUNTIME_CPUDETECT" --extra-ldflags="$(LDFLAGS)" --enable-gpl --enable-pp --disable-vhook --disable-ffserver --disable-ffmpeg --disable-ffplay --disable-devices && make && make install-libs install-headers)
1061
	touch $@
1062

1063 1064
ifdef SVN
ffmpeg-source: ffmpeg
1065
	tar cfvz ffmpeg-$(DATE).tar.gz ffmpeg
1066 1067 1068 1069

SOURCE += ffmpeg-source
endif

1070
CLEAN_FILE += .ffmpeg
1071
CLEAN_PKG += ffmpeg ffmpeg.cvs
1072 1073 1074 1075 1076 1077
DISTCLEAN_PKG += ffmpeg-$(FFMPEG_VERSION).tar.gz

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

1078 1079 1080
libdvdcss-$(LIBDVDCSS_VERSION).tar.gz:
	$(WGET) $(LIBDVDCSS_URL)

1081 1082
ifdef SVN
libdvdcss: 
1083
	$(SVN) co svn://svn.videolan.org/libdvdcss/trunk libdvdcss
1084
	cd $@ && sh bootstrap
1085
else
1086
libdvdcss: libdvdcss-$(LIBDVDCSS_VERSION).tar.gz
1087
	$(EXTRACT_GZ)
1088
endif
1089 1090

.dvdcss: libdvdcss
1091 1092 1093
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --disable-doc --prefix=$(PREFIX) && make && make install)
	$(INSTALL_NAME)
	touch $@
1094

1095 1096
ifdef SVN
libdvdcss-source: libdvdcss
1097
	tar cfvz libdvdcss-$(DATE).tar.gz libdvdcss
1098 1099 1100 1101

SOURCE += libdvdcss-source
endif

1102 1103 1104 1105
CLEAN_FILE += .dvdcss
CLEAN_PKG += libdvdcss
DISTCLEAN_PKG += libdvdcss-$(LIBDVDCSS_VERSION).tar.gz

1106 1107 1108 1109
# ***************************************************************************
# dummy dvdread to trigger the INSTALL_NAME script
# ***************************************************************************
.dvdread: .dvdnav
1110 1111
	$(INSTALL_NAME)
	touch $@
1112 1113 1114 1115 1116 1117 1118

CLEAN_FILE += .dvdread

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

1119 1120
ifdef SVN
libdvdnav:
1121
	$(SVN) co $(LIBDVDNAV_SVN)  libdvdnav
1122
	patch -p0 < Patches/libdvdnav.patch
1123 1124 1125
ifdef HAVE_WIN32
	patch -p0 < Patches/libdvdnav-win32.patch
endif
1126 1127
	(cd $@; ./autogen.sh noconfig)
else
1128
libdvdnav-$(LIBDVDNAV_VERSION).tar.gz:
1129
	$(WGET) $(LIBDVDNAV_URL)
1130

1131 1132
libdvdnav: libdvdnav-$(LIBDVDNAV_VERSION).tar.gz
	$(EXTRACT_GZ)
1133
	patch -p0 < Patches/libdvdnav.patch
1134 1135 1136
ifdef HAVE_WIN32
	patch -p0 < Patches/libdvdnav-win32.patch
endif
1137
	(cd $@; ./autogen.sh noconfig)
1138
endif
1139

1140
.dvdnav: libdvdnav .dvdcss
1141
ifdef HAVE_WIN32	
1142
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --enable-static --prefix=$(PREFIX) --with-libdvdcss=$(PREFIX) && make && make install)
1143
else
1144
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --enable-static --prefix=$(PREFIX) --with-libdvdcss=$(PREFIX) CFLAGS="$(CFLAGS) -Dlseek64=lseek -Doff64_t=off_t" && make && make install)
1145
endif
1146 1147
	$(INSTALL_NAME)
	touch $@
1148 1149 1150

CLEAN_FILE += .dvdnav
CLEAN_PKG += libdvdnav
1151
DISTCLEAN_PKG += libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2
1152 1153 1154 1155 1156

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

1157
libdvbpsi5-$(LIBDVBPSI_VERSION).tar.gz:
1158
	$(WGET) $(LIBDVBPSI_URL)
1159

1160
libdvbpsi: libdvbpsi5-$(LIBDVBPSI_VERSION).tar.gz
1161
	$(EXTRACT_GZ)
1162 1163

.dvbpsi: libdvbpsi
1164 1165 1166
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && cd src && make && make install)
	$(INSTALL_NAME)
	touch $@
1167 1168 1169

CLEAN_FILE += .dvbpsi
CLEAN_PKG += libdvbpsi
1170
DISTCLEAN_PKG += libdvbpsi5-$(LIBDVBPSI_VERSION).tar.gz
1171 1172 1173 1174 1175

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

1176
live555-$(LIVEDOTCOM_VERSION).tar.gz:
1177
	$(WGET) $(LIVEDOTCOM_URL)
1178

1179
live: live555-$(LIVEDOTCOM_VERSION).tar.gz
1180
	$(EXTRACT_GZ)
1181
	patch -p0 < Patches/live-noapps.patch
1182 1183

.live: live
1184 1185 1186
ifdef HAVE_WIN32  
	(cd $<;./genMakefiles mingw && make $(HOSTCC)) 
else 
1187
ifdef HAVE_DARWIN_OS
1188 1189
	(cd $<; sed -e 's%EXTRA_CFLAGS%$(EXTRA_CFLAGS)%' -e 's%EXTRA_LDFLAGS%$(EXTRA_LDFLAGS)%' -i.orig  config.macosx)
	(cd $<; ./genMakefiles macosx && make)
1190
else
1191
	(cd $<; sed -e 's/=/= EXTRA_CPPFLAGS/' -e 's%EXTRA_CPPFLAGS%-I/include%' -i.orig groupsock/Makefile.head)
1192 1193 1194 1195 1196
ifdef HAVE_UCLIBC
ifdef HAVE_BIGENDIAN
	(cd $<; ./genMakefiles armeb-uclibc && make $(HOSTCC))
endif
else
1197
	(cd $<; ./genMakefiles linux && make $(HOSTCC))
1198
endif
1199
endif
1200
endif
1201 1202 1203 1204 1205 1206 1207 1208
	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
1209
	touch $@
1210 1211 1212

CLEAN_FILE += .live
CLEAN_PKG += live
1213
DISTCLEAN_PKG += live555-$(LIVEDOTCOM_VERSION).tar.gz
1214 1215 1216 1217 1218 1219

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

#goom-macosx-altivec-bin.tar.gz:
1220
#	$(WGET) $(GOOM_URL)
1221 1222

#goom: goom-macosx-altivec-bin.tar.gz
1223
#	$(EXTRACT_GZ)
1224 1225

#.goom: goom
1226 1227
#	(cd $<;)
#	touch $@
1228 1229 1230 1231 1232 1233 1234 1235 1236 1237

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

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

goom$(GOOM2k4_VERSION).tar.gz:
1238 1239
	$(WGET) $(GOOM2k4_URL)
	mv goom-$(GOOM2k4_VERSION)-src.tar.gz goom$(GOOM2k4_VERSION).tar.gz
1240 1241

goom: goom$(GOOM2k4_VERSION).tar.gz
1242
	$(EXTRACT_GZ)
1243
ifdef HAVE_DARWIN_OS
Rafaël Carré's avatar
Rafaël Carré committed
1244
	patch -p0 < Patches/goom.patch
1245 1246
endif
ifdef HAVE_WIN32
1247
	(cd $@; dos2unix configure.in)
Rafaël Carré's avatar
Rafaël Carré committed
1248
	patch -p0 < Patches/goom2k4-0-win32.patch
1249
endif
1250
	patch -p0 < Patches/goom2k4-0-mmx.patch
1251 1252

.goom2k4: goom
1253
ifdef HAVE_DARWIN_OS
1254
	(cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
1255
else
1256
	(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)
1257
endif
1258
	touch $@
1259 1260 1261

CLEAN_FILE += .goom2k4
CLEAN_PKG += goom
1262
DISTCLEAN_PKG += goom$(GOOM2k4_VERSION).tar.gz
1263 1264 1265 1266 1267 1268

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

libcaca-$(LIBCACA_VERSION).tar.gz:
1269
	$(WGET) $(LIBCACA_URL)
1270 1271

libcaca: libcaca-$(LIBCACA_VERSION).tar.gz
1272
	$(EXTRACT_GZ)
1273 1274 1275 1276
ifdef HAVE_DARWIN_OS
	#remove me at next libcaca upgrade
	patch -p0 < Patches/caca_driver_cocoa.diff
	patch -p0 < Patches/caca_macosx.diff
1277 1278 1279
ifndef HAVE_DARWIN_OS_ON_INTEL
	patch -p0 < Patches/caca-osx-ppc.patch
endif
1280
endif
1281 1282

.caca: libcaca
1283
ifdef HAVE_WIN32
1284
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-win32 --disable-x11 --disable-imlib2 --disable-doc --disable-ruby --disable-csharp --disable-cxx && make && make install)
1285
else
1286
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-imlib2 --disable-doc --disable-ruby --disable-csharp --disable-cxx && make && make install)
1287
endif
1288
	touch $@
1289 1290 1291 1292 1293 1294

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

# ***************************************************************************
Antoine Cellerier's avatar
Antoine Cellerier committed
1295
# libdca
1296 1297
# ***************************************************************************

1298 1299 1300 1301 1302
libdca-$(LIBDCA_VERSION).tar.bz2:
	$(WGET) $(LIBDCA_URL)

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

1304
.dca: libdca
1305
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1306
	$(INSTALL_NAME)
1307
	touch $@
1308

1309
CLEAN_FILE += .dca
Antoine Cellerier's avatar
Antoine Cellerier committed
1310
CLEAN_PKG += libdca
1311
DISTCLEAN_PKG += libdca-$(LIBDCA_VERSION).tar.bz2
1312

1313
# ***************************************************************************
1314
# libx264
1315 1316
# ***************************************************************************

1317 1318 1319
x264-$(X264_VERSION).tar.gz:
	$(WGET) $(X264_URL)

1320 1321
ifdef SVN
x264: 
1322
	$(SVN) co svn://svn.videolan.org/x264/trunk/ x264
1323
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
1324
	(cd x264; patch -p0 < ../Patches/x264-svn-win32.patch )
1325
endif
1326 1327 1328
ifdef HAVE_DARWIN_OS
	(cd $@; patch -p 0 < ../Patches/x264-svn-darwin.patch )
endif
1329
else
1330 1331

x264: x264-$(X264_VERSION).tar.gz
1332
	$(EXTRACT_GZ)
1333
ifdef HAVE_WIN32
1334
  ifndef HAVE_CYGWIN
Rafaël Carré's avatar
Rafaël Carré committed
1335
	(cd x264;patch -p0 <../Patches/x264-20050624-win32.patch)
1336
  endif
1337
else
Rafaël Carré's avatar
Rafaël Carré committed
1338
	patch -p0 < Patches/x264.patch
1339
	rm x264/x264.c
1340
endif
1341
endif
1342

1343 1344
ifdef HAVE_WIN32
.x264: x264 .pthreads
1345 1346 1347
  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
1348
	(cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" && make && make install)
1349
  endif
1350
else
1351
.x264: x264
1352
	(cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" && make && make install)
1353
endif
1354
	touch $@
1355

1356
ifdef SVN
1357 1358
x264-source: x264
	tar cfvz x264-$(DATE).tar.gz x264
1359

1360
SOURCE += x264-source
1361 1362
endif

1363 1364 1365 1366
CLEAN_FILE += .x264
CLEAN_PKG += x264
DISTCLEAN_PKG += x264-$(X264_VERSION).tar.gz

1367 1368 1369 1370 1371
# ***************************************************************************
# libmodplug
# ***************************************************************************

libmodplug-$(MODPLUG_VERSION).tar.gz:
1372
	$(WGET) $(MODPLUG_URL)
1373 1374

libmodplug: libmodplug-$(MODPLUG_VERSION).tar.gz
1375
	$(EXTRACT_GZ)
1376 1377

.mod: libmodplug
1378 1379
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
	touch $@
1380 1381 1382 1383 1384 1385 1386 1387 1388

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

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

1389
libcddb-$(CDDB_VERSION).tar.bz2:
1390
	$(WGET) $(CDDB_URL)
1391

1392
libcddb: libcddb-$(CDDB_VERSION).tar.bz2
1393
	$(EXTRACT_BZ2)
1394 1395

.cddb: libcddb
1396 1397
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" LDFLAGS="$(LDFLAGS) -liconv" && make && make install)
	touch $@
1398 1399 1400

CLEAN_FILE += .cddb
CLEAN_PKG += libcddb
1401
DISTCLEAN_PKG += libcddb-$(CDDB_VERSION).tar.bz2
1402 1403 1404 1405 1406 1407

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

vcdimager-$(VCDIMAGER_VERSION).tar.gz:
1408
	$(WGET) $(VCDIMAGER_URL)
1409 1410

vcdimager: vcdimager-$(VCDIMAGER_VERSION).tar.gz
1411
	$(EXTRACT_GZ)
1412 1413 1414

ifdef HAVE_DARWIN_OS
.vcdimager: vcdimager
1415 1416
	(cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static LDFLAGS="$(LDFLAGS) -framework CoreFoundation -framework IOKit" && make && make install)
	touch $@
1417 1418
else
.vcdimager: vcdimager
1419 1420
	(cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
	touch $@
1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431
endif

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

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

libcdio-$(CDIO_VERSION).tar.gz:
1432
	$(WGET) $(CDIO_URL)
1433 1434

libcdio: libcdio-$(CDIO_VERSION).tar.gz
1435
	$(EXTRACT_GZ)
1436 1437

.cdio: libcdio
1438 1439
	(cd $<; sed -e 's%@ENABLE_CPP_TRUE@SUBDIRS = C++%@ENABLE_CPP_TRUE@SUBDIRS = %' -i.orig example/Makefile.in && ./configure --prefix=$(PREFIX) --without-vcdinfo --disable-shared && make && make install)
	touch $@
1440 1441 1442 1443 1444

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

1445 1446 1447 1448 1449
# ***************************************************************************
# wxWidgets
# ***************************************************************************

wxWidgets-$(WXWIDGETS_VERSION).tar.gz:
1450
	$(WGET) $(WXWIDGETS_URL)
1451 1452

wxwidgets: wxWidgets-$(WXWIDGETS_VERSION).tar.gz
1453 1454
	$(EXTRACT_GZ)
	(cd wxwidgets; patch -p0 < ../Patches/wxwidgets_uri.patch)
1455 1456

.wxwidgets: wxwidgets
1457 1458 1459
	(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 $@
1460 1461 1462 1463 1464

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

1465 1466 1467 1468
# ***************************************************************************
# qt4 (win32 binary)
# ***************************************************************************

1469
qt4-$(QT4_VERSION)-win32-bin.tar.bz2:
1470
	$(WGET) $(QT4_URL)
Clément Stenac's avatar
Clément Stenac committed
1471

1472 1473
qt4: qt4-$(QT4_VERSION)-win32-bin.tar.bz2
	$(EXTRACT_BZ2)
Clément Stenac's avatar
Clément Stenac committed
1474

1475
.qt4: qt4
1476
	(cd qt4;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)
1477
ifeq ($(BUILD),i686-pc-cygwin)
1478
	(cd qt4;cp bin/*.exe $(PREFIX)/bin)
1479
else
1480
	(cd qt4;cp bin/* $(PREFIX)/bin)
1481
endif
1482
	touch $@
Clément Stenac's avatar
Clément Stenac committed
1483 1484 1485

CLEAN_FILE += .qt4
CLEAN_PKG += qt4
1486
DISTCLEAN_PKG += qt4-$(QT4_VERSION)-win32-bin.tar.gz
Clément Stenac's avatar
Clément Stenac committed
1487

1488 1489 1490 1491 1492 1493 1494 1495
# ***************************************************************************
# qt4 (trolltech binaries)
# ***************************************************************************

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

Qt: qt-win-opensource-$(QT4T_VERSION)-mingw.exe
1496
	mkdir Qt
1497
	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
1498 1499 1500
	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 {} \;
1501
	find Qt/translations -type f -a ! -name 'qt_*.qm' -exec rm {} \;
1502 1503 1504 1505
	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
1506 1507

.Qt: Qt
1508
	mkdir -p $(PREFIX)/bin $(PREFIX)/include/qt4/src $(PREFIX)/lib/pkgconfig $(PREFIX)/share/qt4/translations
1509 1510 1511 1512
	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
1513 1514
	cp Qt/lib/pkgconfig/* $(PREFIX)/lib/pkgconfig
	cp Qt/translations/* $(PREFIX)/share/qt4/translations 
1515
	touch $@
1516 1517 1518

CLEAN_FILE += .Qt
CLEAN_PKG += Qt
1519
DISTCLEAN_PKG += qt-win-opensource-$(QT4T_VERSION)-mingw.exe
1520

1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538
# ***************************************************************************
# qt4 (source-code compilation for Mac)
# ***************************************************************************

qt-mac-opensource-src-$(QT4_VERSION).tar.gz:
	$(WGET) $(QT4_MAC_URL)

qt4_mac: qt-mac-opensource-src-$(QT4_VERSION).tar.gz
	$(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
DISTCLEAN_PKG += qt-mac-opensource-src-$(QT4_VERSION).tar.gz

1539 1540 1541 1542 1543
# ***************************************************************************
# zlib
# ***************************************************************************

zlib-$(ZLIB_VERSION).tar.gz:
1544
	$(WGET) $(ZLIB_URL)
1545 1546

zlib: zlib-$(ZLIB_VERSION).tar.gz
1547
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
1548
	patch -p0 < Patches/zlib.patch
1549 1550

.zlib: zlib
1551 1552 1553
	(cd zlib; $(HOSTCC2) ./configure --prefix=$(PREFIX) && make install)
	$(INSTALL_NAME)
	touch $@
1554 1555 1556 1557 1558

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

1559 1560 1561 1562 1563
# ***************************************************************************
# PortAudio 
# ***************************************************************************

pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz:
1564
	$(WGET) $(PORTAUDIO_URL)
1565 1566

portaudio: pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz
1567
	$(EXTRACT_GZ)
1568
ifneq ($(HOST),$(BUILD))
Rafaël Carré's avatar
Rafaël Carré committed
1569
	(patch -p0 < Patches/portaudio-cross.patch;cd $@;  autoconf)
1570
endif
1571 1572

.portaudio: portaudio 
1573 1574 1575
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make  install)
	$(INSTALL_NAME)
	touch $@
1576 1577 1578

CLEAN_FILE += .portaudio
CLEAN_PKG += portaudio
1579
DISTCLEAN_PKG += pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz
1580

1581 1582 1583 1584 1585
# ***************************************************************************
# xml
# ***************************************************************************

libxml2-$(XML_VERSION).tar.gz:
1586
	$(WGET) $(XML_URL)
1587 1588

xml: libxml2-$(XML_VERSION).tar.gz
1589
	$(EXTRACT_GZ)
1590
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
1591
	patch -p0 < Patches/xml2-win32.patch
1592
	rm -f xml/aclocal.m4
1593
endif
Jean-Paul Saman's avatar
Jean-Paul Saman committed
1594 1595 1596
ifdef HAVE_UCLIBC
	patch -p0 < Patches/xml2-uclibc.patch
endif
1597 1598

.xml: xml
1599 1600 1601
ifdef HAVE_WIN32
	(cd xml; aclocal && automake && autoreconf)
endif
1602 1603 1604
  ifdef HAVE_CYGWIN
	(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 && make && make install)
  else
1605
	(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 && make && make install)
1606
  endif
1607
ifndef HAVE_DARWIN_OS
1608
	$(INSTALL_NAME)
1609
endif
1610
	touch $@
1611 1612 1613 1614 1615

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

1616 1617 1618 1619 1620
# ***************************************************************************
# twolame
# ***************************************************************************

twolame-$(TWOLAME_VERSION).tar.gz:
1621
	$(WGET) $(TWOLAME_URL)
1622 1623

twolame: twolame-$(TWOLAME_VERSION).tar.gz
1624
	$(EXTRACT_GZ)
1625
ifdef HAVE_BEOS
Rafaël Carré's avatar
Rafaël Carré committed
1626
	patch -p0 < Patches/twolame-BeOS.patch
1627
endif
1628 1629

.twolame: twolame
Christophe Mutricy's avatar
Christophe Mutricy committed
1630
ifdef HAVE_WIN32
1631
	(cd twolame/win32; $(WGET) "http://twolame.svn.sourceforge.net/viewvc/*checkout*/twolame/trunk/win32/winutil.h")
Christophe Mutricy's avatar
Christophe Mutricy committed
1632
endif	
1633
	(cd twolame; $(HOSTCC) CFLAGS="${CFLAGS}  -DLIBTWOLAME_STATIC" ./configure $(HOSTCONF) --prefix=$(PREFIX) && cd libtwolame &&  make && make install)
1634 1635
	$(INSTALL_NAME)
	touch $@
1636 1637 1638

CLEAN_FILE += .twolame
CLEAN_PKG += twolame
1639
DISTCLEAN_PKG += twolame-$(TWOLAME_VERSION).tar.gz
1640 1641 1642 1643 1644 1645

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

libpng-$(PNG_VERSION).tar.bz2:
1646
	$(WGET) $(PNG_URL)
1647 1648

libpng: libpng-$(PNG_VERSION).tar.bz2
1649
	$(EXTRACT_BZ2)
1650
ifdef HAVE_WIN32
1651
	(cd $@; cat ../Patches/libpng-win32.patch | sed s,??PREFIX??,$(PREFIX), | patch -p0)
1652
else
1653
	(cat Patches/libpng-osx.patch | sed -e 's%??PREFIX??%$(PREFIX)%' -e 's%??EXTRA_CFLAGS??%$(EXTRA_CFLAGS)%' -e 's%??EXTRA_LDFLAGS??%$(EXTRA_LDFLAGS)%' | patch -p0)
1654
endif
Rafaël Carré's avatar
Rafaël Carré committed
1655
	(patch -p0 < Patches/libpng-makefile.patch)
1656
ifdef HAVE_DARWIN_OS_ON_INTEL
Rafaël Carré's avatar
Rafaël Carré committed
1657
	(patch -p0 < Patches/libpng-darwin-mactel.patch)
1658
endif
1659

1660
.png: libpng .zlib
1661
ifdef HAVE_DARWIN_OS
1662
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1663 1664
else
ifdef HAVE_WIN32
1665
	(cd $<; rm -f INSTALL; cp scripts/makefile.cygwin Makefile && make $(HOSTCC) && make install-static)
1666 1667
else
ifeq ($(PNG_VERSION),1.2.8)
1668
	(cd $<; PREFIX=$(PREFIX) DESTDIR=$(PREFIX) cp scripts/makefile.linux Makefile && make && make install)
1669
else
1670
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1671
endif
1672
endif
1673
endif
1674 1675
	$(INSTALL_NAME)
	touch $@
1676 1677 1678

CLEAN_FILE += .png
CLEAN_PKG += libpng
1679
DISTCLEAN_PKG += libpng-$(PNG_VERSION).tar.bz2
1680 1681 1682 1683 1684 1685

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

zvbi-$(ZVBI_VERSION).tar.bz2:
1686
	$(WGET) $(ZVBI_URL)
1687 1688

zvbi: zvbi-$(ZVBI_VERSION).tar.bz2
1689
	$(EXTRACT_BZ2)
1690

1691 1692 1693
ifdef HAVE_WIN32
.zvbi: zvbi .pthreads
else
1694
.zvbi: zvbi
1695
endif
1696
ifdef HAVE_DARWIN_OS
1697
	(cd $<; ./configure --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -fnested-functions" && make && make install)
1698 1699 1700
else
	(cd $<; ./configure --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" && make && make install)
endif
1701
	$(INSTALL_NAME)
1702
	touch $@
1703 1704 1705

CLEAN_FILE += .zvbi
CLEAN_PKG += zvbi
1706
DISTCLEAN_PKG += zvbi-$(ZVBI_VERSION).tar.bz2
1707 1708

# ***************************************************************************
1709 1710 1711 1712 1713
# libraw1394
# ***************************************************************************

#ifdef SVN
#libraw1394:
1714
#	$(SVN) co -r 325 $(LIBDC1394_SVN)/libraw1394/trunk/libraw1394  libraw1394
1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729
#        (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

1730
.raw1394: libraw1394
1731
	(cd $<; ./configure --prefix=$(PREFIX) && make && make DESTDIR=$(PRFIX) install)
1732
#	sed 's/^typedef u_int8_t  byte_t;/\/* typedef u_int8_t  byte_t;\*\//'
1733 1734
	touch $@
	
1735
CLEAN_FILE += .raw1394
1736
CLEAN_PKG += libraw1394
1737
DISTCLEAN_PKG += libraw1394-$(LIBRAW1394_VERSION).tar.gz
1738 1739 1740 1741 1742 1743 1744

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

#ifdef SVN
#libdc1394:
1745
#	$(SVN) co -r 325 $(LIBDC1394_SVN)/libdc1394/trunk/libdc1394  libdc1394
1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760
#        (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

1761
.dc1394: libdc1394
1762 1763 1764 1765 1766
	(cd $<; ./configure --prefix=$(PREFIX) && \
	 patch -p1 < ../Patches/libdc1394-noexamples.patch && \
	 make && make DESTDIR=$(PRFIX) install)
	touch $@
	
1767
CLEAN_FILE += .dc1394
1768
CLEAN_PKG += libdc1394
1769
DISTCLEAN_PKG += libdc1394-$(LIBDC1394_VERSION).tar.gz
1770 1771

# ***************************************************************************
1772 1773 1774
# gpg-error 
# ***************************************************************************

1775
libgpg-error-$(GPGERROR_VERSION).tar.bz2:
1776
	$(WGET) $(GPGERROR_URL)
1777

1778 1779
libgpg-error: libgpg-error-$(GPGERROR_VERSION).tar.bz2
	$(EXTRACT_BZ2)
1780

1781
.gpg-error: libgpg-error
1782
ifdef HAVE_DARWIN_OS_ON_INTEL
1783
	(cd $<; ./autogen.sh)
1784
endif
1785 1786 1787
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-nls --disable-shared && make && make install)
#	$(INSTALL_NAME)
	touch $@
1788

1789
CLEAN_FILE += .gpg-error
1790
CLEAN_PKG += libgpg-error
1791
DISTCLEAN_PKG += libgpg-error-$(GPGERROR_VERSION).tar.bz2
1792 1793 1794 1795 1796

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

1797
libgcrypt-$(GCRYPT_VERSION).tar.bz2:
1798
	$(WGET) $(GCRYPT_URL)
1799

1800
libgcrypt: libgcrypt-$(GCRYPT_VERSION).tar.bz2
1801
	$(EXTRACT_BZ2)
Rafaël Carré's avatar
Rafaël Carré committed
1802
	patch -p0 < Patches/gcrypt.patch
1803

1804
.gcrypt: libgcrypt .gpg-error
1805
ifdef HAVE_WIN32
1806
	(cd $<; ./autogen.sh && $(HOSTCC) ./configure $(HOSTCONF) --target=i586-mingw32msvc --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" && sed -i 46s@sys/times.h@sys/time.h@ cipher/random.c && make && make install)
1807
else
1808
ifdef HAVE_DARWIN_OS_ON_INTEL
1809
	(cd $<; $(HOSTCC) ./configure --host=$(HOST) --build=$(BUILD) --prefix=$(PREFIX) --disable-asm CFLAGS="$(CFLAGS)" && make && make install)
1810
endif
1811
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" && make && make install)
1812
endif
1813 1814
	$(INSTALL_NAME)
	touch $@
1815 1816 1817

CLEAN_FILE += .gcrypt
CLEAN_PKG += libgcrypt
1818
DISTCLEAN_PKG += libgcrypt-$(GCRYPT_VERSION).tar.bz2
1819 1820 1821 1822 1823 1824

# ***************************************************************************
# gnutls
# ***************************************************************************

gnutls-$(GNUTLS_VERSION).tar.bz2:
1825
	$(WGET) $(GNUTLS_URL)
1826 1827

gnutls: gnutls-$(GNUTLS_VERSION).tar.bz2
1828
	$(EXTRACT_BZ2)
1829
ifdef HAVE_WIN32
1830
	patch -p0 < Patches/gnutls-win32.patch
1831
	(cd $@; cd lgl; ln -sf alloca_.h alloca.h) 
1832
endif
1833

1834
.gnutls: gnutls .gcrypt .gpg-error
1835
ifdef HAVE_WIN32
1836
	(cd $<; autoconf && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --target=i586-mingw32msvc && cd gl && make && cd ../lgl && make &&  cd ../lib &&make && make install && cd ../includes && make install)
1837
else
1838
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --disable-cxx && cd gl && make && cd ../lgl && make &&  cd ../lib &&make && make install && cd ../includes && make install)
1839
endif
1840 1841
	$(INSTALL_NAME)
	touch $@
1842 1843 1844

CLEAN_FILE += .gnutls
CLEAN_PKG += gnutls
1845
DISTCLEAN_PKG += gnutls-$(GNUTLS_VERSION).tar.bz2
1846 1847 1848 1849 1850 1851

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

libopendaap-$(DAAP_VERSION).tar.bz2:
1852
	$(WGET) $(DAAP_URL)
1853 1854

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

1858
.opendaap: libopendaap
1859 1860 1861
	(cd $<; ./configure --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" && make install)
	$(INSTALL_NAME)
	touch $@
1862

1863
CLEAN_FILE += .opendaap
1864
CLEAN_PKG += libopendaap
1865
DISTCLEAN_PKG += libopendaap-$(DAAP_VERSION).tar.bz2
1866 1867 1868 1869 1870 1871

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

glib-$(GLIB_VERSION).tar.gz:
1872
	$(WGET) $(GLIB_URL)
1873 1874

glib: glib-$(GLIB_VERSION).tar.gz
1875
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
1876
	patch -p0 < Patches/glib.patch
1877 1878

.glib: glib
1879 1880
	(cd $<; ./configure --prefix=$(PREFIX) --host=powerpc-apple-macos && make && make install)
	touch $@
1881 1882 1883

CLEAN_FILE += .glibl
CLEAN_PKG += glib
1884
DISTCLEAN_PKG += glib-$(GLIB_VERSION).tar.gz
1885 1886 1887 1888 1889 1890

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

libIDL-$(LIBIDL_VERSION).tar.gz:
1891
	$(WGET) $(LIBIDL_URL)
1892 1893

libIDL: libIDL-$(LIBIDL_VERSION).tar.gz
1894
	$(EXTRACT_GZ)
1895

1896
.IDL: libIDL
1897 1898
	(cd $<; ./configure --prefix=$(PREFIX) --host=powerpc-apple-macos && make && make install )
	touch $@
1899

1900
CLEAN_FILE += .IDL
1901
CLEAN_PKG += libIDL
1902
DISTCLEAN_PKG += libIDL-$(LIBIDL_VERSION).tar.gz
1903

1904 1905 1906 1907 1908
# ***************************************************************************
# Gecko SDK
# ***************************************************************************

gecko-sdk-ppc-macosx10.2-1.7.5.tar.gz:
1909
	$(WGET) $(GECKO_SDK_MAC_URL)
1910 1911

gecko-sdk: gecko-sdk-ppc-macosx10.2-1.7.5.tar.gz
1912
	$(EXTRACT_GZ)
1913 1914

.gecko: gecko-sdk
1915 1916 1917
	rm -rf ../gecko-sdk
	mv gecko-sdk ..
	mkdir gecko-sdk #creating an empty dir is faster than copying the whole dir
1918 1919
	(cd $<)
	touch $@
1920 1921 1922 1923 1924

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

1925 1926 1927 1928
# ***************************************************************************
# Gecko SDK win32
# ***************************************************************************

1929
gecko-sdk-i586-pc-msvc-1.8b1.zip:
1930
	$(WGET) $(GECKO_SDK_WIN32_URL)
1931 1932

libIDL-0.6.3-win32-bin.zip:
1933
	$(WGET) $(LIBIDL_WIN32_BIN_URL)
1934

1935
glib-19990228.zip:
1936
	$(WGET) $(GLIB_WIN32_BIN_URL)
1937

1938
.gecko-win32: gecko-sdk-i586-pc-msvc-1.8b1.zip libIDL-0.6.3-win32-bin.zip glib-19990228.zip
1939 1940 1941 1942 1943 1944 1945
	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 $@
1946 1947 1948

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

1951
# ***************************************************************************
1952
# mozilla-macosx
1953 1954 1955
# ***************************************************************************

mozilla-source-$(MOZILLA_VERSION).tar.bz2:
1956
	$(WGET) $(MOZILLA_URL)
1957 1958

mozilla: mozilla-source-$(MOZILLA_VERSION).tar.bz2
1959
	$(EXTRACT_BZ2)
1960

1961
.mozilla-macosx: mozilla
1962 1963
	(cd $<; ./configure --prefix=$(PREFIX) --enable-default-toolkit=mac --enable-standalone-modules=xpcom,plugin && make && make install)
	touch $@
1964

1965 1966
CLEAN_FILE += .mozilla-macosx
CLEAN_PKG += mozilla-macosx
1967
DISTCLEAN_PKG += mozilla-source-$(MOZILLA_VERSION).tar.bz2
1968

1969 1970 1971 1972 1973
# ***************************************************************************
# libjpeg
# ***************************************************************************

jpeg-$(JPEG_VERSION).tar.gz:
1974
	$(WGET) $(JPEG_URL)
1975 1976

jpeg: jpeg-$(JPEG_VERSION).tar.gz 
1977
	$(EXTRACT_GZ)
1978 1979

.jpeg: jpeg
1980 1981 1982
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(HOSTCC) && make && make install-lib)
	$(RANLIB) $(PREFIX)/lib/libjpeg.a
	touch $@
1983 1984 1985 1986 1987 1988 1989 1990 1991 1992

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

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

tiff-$(TIFF_VERSION).tar.gz:
1993
	$(WGET) $(TIFF_URL)
1994 1995

tiff: tiff-$(TIFF_VERSION).tar.gz 
1996
	$(EXTRACT_GZ)
1997 1998

.tiff: tiff
1999
ifdef HAVE_WIN32
2000
	(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)
2001
else
2002
	(cd $<; ./configure --with-CFLAGS="$(CFLAGS)" --with-JPEG=no --with-ZIP=no --prefix=$(PREFIX) && make -C port &&make -C libtiff && make -C libtiff install)
2003
endif
2004
	$(INSTALL_NAME)
2005
	touch $@
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015

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

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

SDL-$(SDL_VERSION).tar.gz:
2016
	$(WGET) $(SDL_URL)
2017 2018

SDL: SDL-$(SDL_VERSION).tar.gz 
2019
	$(EXTRACT_GZ)
2020 2021

.SDL: SDL
2022 2023 2024
	(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 $@
2025 2026 2027 2028 2029 2030 2031 2032 2033 2034

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

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

SDL_image-$(SDL_IMAGE_VERSION).tar.gz:
2035
	$(WGET) $(SDL_IMAGE_URL)
2036 2037

SDL_image: SDL_image-$(SDL_IMAGE_VERSION).tar.gz 
2038
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
2039
	patch -p0 < Patches/SDL_image.patch
2040
	patch -p0 < Patches/SDL_image-CVE-2006-4484.patch
2041 2042

.SDL_image: SDL_image .SDL .png .jpeg .tiff
2043 2044 2045
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --enable-tif --disable-sdltest && make && make install)
	$(INSTALL_NAME)
	touch $@
2046 2047 2048 2049 2050

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

2051 2052 2053 2054 2055
# ***************************************************************************
# Musepack decoder library (libmpcdec)
# ***************************************************************************

libmpcdec-$(MUSE_VERSION).tar.bz2:
2056
	$(WGET) $(MUSE_URL)
2057

2058
mpcdec: libmpcdec-$(MUSE_VERSION).tar.bz2 
2059
	$(EXTRACT_BZ2)
2060
	patch -p0 < Patches/mpcdec.patch
2061
	(cd $@; autoreconf)
2062

2063
.mpcdec: mpcdec
2064
ifdef HAVE_WIN32 
2065
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS=-D_PTRDIFF_T=mpc_int32_t && make && make install)
2066
else
2067
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
2068 2069
endif
ifdef HAVE_DARWIN_OS
2070
	$(INSTALL_NAME)
2071
endif
2072
	touch $@
2073

2074 2075
CLEAN_FILE += .mpcdec
CLEAN_PKG += mpcdec
2076 2077
DISTCLEAN_PKG += libmpcdec-$(MUSE_VERSION).tar.bz2

2078
# ***************************************************************************
2079 2080
# Dirac
# ***************************************************************************
2081 2082

dirac-$(DIRAC_VERSION).tar.gz:
2083
	$(WGET) $(DIRAC_URL)
2084 2085

dirac: dirac-$(DIRAC_VERSION).tar.gz
2086
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
2087
	patch -p0 <Patches/dirac-cross.patch
2088
ifdef HAVE_CYGWIN
2089
	# incorrect compile warning with cygwin compiler 3.4.4
2090 2091
	patch -p0 <Patches/dirac-cygwin.patch
endif
2092
	(cd $@; aclocal && autoconf && automake)
2093

2094 2095 2096 2097
DIRAC_SUBDIRS = libdirac_byteio libdirac_common libdirac_motionest libdirac_encoder libdirac_decoder

ifdef HAVE_WIN32
DIRAC_SUBDIRS += win32
2098
endif
2099

2100
.dirac: dirac
2101
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)  CFLAGS="$(CFLAGS)" && DOC_DIR="" make $(DIRAC_SUBDIRS) && DOC_DIR="" make install)
2102
	touch $@
2103 2104 2105

# for MacOS X, dirac is split into two libraries, which needs be installed using two targets
.dirac_encoder: .dirac
2106 2107
	$(INSTALL_NAME)
	touch $@
2108 2109

.dirac_decoder: .dirac
2110 2111
	$(INSTALL_NAME)
	touch $@
2112 2113 2114 2115 2116 2117 2118 2119 2120

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

# *************************************************************************
# DirectX headers
# *************************************************************************
win32-dx7headers.tgz:
2121
	$(WGET) $(DX_HEADERS_URL)
2122
.dx_headers: win32-dx7headers.tgz
2123 2124
	(cd ../include ; tar xzf ../src/$<)
	touch $@
2125 2126 2127 2128 2129 2130 2131
CLEAN_FILE += .dx_headers
DISTCLEAN_PKG += win32-dx7headers.tgz
 
# *************************************************************************
# DirectShow headers
# *************************************************************************
dshow-headers.tgz:
2132
	$(WGET) $(DSHOW_HEADERS_URL)
2133
.dshow_headers: dshow-headers.tgz
2134 2135
	(cd ../include ; tar xzf ../src/$<)
	touch $@
2136 2137
CLEAN_FILE += .dshow_headers
DISTCLEAN_PKG += dshow-headers.tgz
2138 2139 2140 2141 2142 2143

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

expat-$(EXPAT_VERSION).tar.gz:
2144
	$(WGET) $(EXPAT_URL)
2145 2146

expat: expat-$(EXPAT_VERSION).tar.gz
2147
	$(EXTRACT_GZ)
2148 2149

.expat: expat
2150
ifdef HAVE_DARWIN_OS
2151
	(cd $< aclocal --force && libtoolize --force && autoconf --force && autoheader --force )
2152
endif
2153 2154
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
2155 2156 2157 2158 2159 2160 2161 2162 2163 2164

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

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

clinkcc$(CLINKCC_VERSION).tar.gz:
2165
	$(WGET) $(CLINKCC_URL)
2166 2167

clinkcc: clinkcc$(CLINKCC_VERSION).tar.gz
2168 2169 2170
	tar xzf $<
	mv $(patsubst %.tar.gz,Cyberlink,$(patsubst %.tgz,Cyberlink,$(notdir $<))) $@ || true
	touch $@
Rafaël Carré's avatar
Rafaël Carré committed
2171
	patch -p0 < Patches/clinkcc.patch
2172
ifdef HAVE_DARWIN_OS
Rafaël Carré's avatar
Rafaël Carré committed
2173
	patch -p0 < Patches/clinkcc_osx.patch
2174 2175 2176
endif

.clinkcc: clinkcc
2177 2178
	(cd $<; ./bootstrap && ./configure --prefix=$(PREFIX) --enable-expat && make && chmod 755 config/install-sh && make install )
	touch $@
2179 2180 2181

CLEAN_FILE += .clinkcc
CLEAN_PKG += clinkcc
2182
DISTCLEAN_PKG += clinkcc$(CLINKCC_VERSION).tar.gz
2183

2184 2185 2186 2187
# ***************************************************************************
# NASM assembler
# ***************************************************************************

2188
nasm-$(NASM_VERSION).tar.bz2:
2189
	$(WGET) $(NASM_URL)
2190 2191

nasm: nasm-$(NASM_VERSION).tar.bz2
2192
	$(EXTRACT_BZ2)
2193 2194

#nasm:
2195 2196 2197
#	echo $(NASM_CVSROOT) A > ./nasm.cvs
#	CVS_PASSFILE=./nasm.cvs cvs -z3 -d $(NASM_CVSROOT) co nasm
#	(cd $@ && autoconf && autoheader)
2198 2199

.nasm: nasm
2200 2201
	(cd $< && $(HOSTCC) ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
2202 2203 2204

CLEAN_FILE += .nasm
CLEAN_PKG += nasm nasm.cvs
2205
DISTCLEAN_PKG += nasm-$(NASM_VERSION).tar.bz2
2206

2207 2208 2209 2210 2211 2212 2213
# ***************************************************************************
# Copy aclocal files
# This is necessary for --missing aclocal to succeed after a
# configure.ac/Makefile.am change in the vlc root dir
# **************************************************************************

.aclocal:
2214 2215
	cp -R $(PREFIX)/share/aclocal/* $(PREFIX)/../../m4/
	touch $@
2216

Felix Paul Kühne's avatar
Felix Paul Kühne committed
2217
CLEAN_FILE += .aclocal
2218

2219 2220 2221 2222 2223
# ***************************************************************************
# UNICOWS (Unicode support for WINME/98/95)
# ***************************************************************************

libunicows-$(UNICOWS_VERSION).tar.gz:
2224 2225
	$(WGET) $(UNICOWS_URL)
	mv libunicows-$(UNICOWS_VERSION)-src.tar.gz $@ || true
2226 2227

libunicows: libunicows-$(UNICOWS_VERSION).tar.gz
2228
	$(EXTRACT_GZ)
2229 2230

.unicows: libunicows
2231 2232
	(cd $</src; make -f makefile.mingw32 PATHSEP='/' $(HOSTCC) && cp -f ../lib/mingw32/libunicows.a $(PREFIX)/lib)
	touch $@
2233 2234 2235

CLEAN_FILE += .unicows
CLEAN_PKG += libunicows
2236
DISTCLEAN_PKG += libunicows-$(UNICOWS_VERSION).tar.gz
2237

2238 2239 2240 2241 2242
# ***************************************************************************
# TagLib read and editing of tags of popular audio formats
# ***************************************************************************

taglib-$(TAGLIB_VERSION).tar.gz:
2243
	$(WGET) $(TAGLIB_URL)
2244 2245

taglib: taglib-$(TAGLIB_VERSION).tar.gz
2246
	$(EXTRACT_GZ)
2247 2248 2249
ifdef HAVE_CYGWIN
	patch -p0 <Patches/taglib-cygwin.patch
endif
2250 2251

.tag: taglib
2252 2253 2254
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
	$(INSTALL_NAME)
	touch $@
2255

2256 2257 2258 2259 2260 2261 2262
CLEAN_FILE += .tag
CLEAN_PKG += taglib
DISTCLEAN_PKG += taglib-$(TAGLIB_VERSION).tar.gz

# ***************************************************************************
# pthreads for win32
# ***************************************************************************
Christophe Mutricy's avatar
Christophe Mutricy committed
2263 2264 2265 2266 2267 2268 2269 2270

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

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

.pthreads: pthreads
2271
	(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
2272 2273 2274
	$(INSTALL_NAME)
	touch $@

2275 2276 2277
CLEAN_FILE += .pthreads
CLEAN_PKG += pthreads
DISTCLEAN_PKG += pthreads-w32-$(PTHREADS_VERSION)-release.tar.gz
2278

2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295
# ***************************************************************************
# 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
2296

2297 2298 2299 2300 2301
# ***************************************************************************
# asa library (ASS/SSA support)
# ***************************************************************************

asa.git.tar.gz:
Christophe Mutricy's avatar
Christophe Mutricy committed
2302
	$(WGET) $(ASA_URL) -O $@
2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315

asa: asa.git.tar.gz
	$(EXTRACT_GZ)

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

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

#
2316
# ***************************************************************************
2317
# Some cleaning
2318 2319 2320
# ***************************************************************************

clean-dots: FORCE
2321
	rm -f $(CLEAN_FILE)
2322 2323

clean: clean-dots
2324
	rm -rf $(CLEAN_PKG)
2325 2326

clean-src: clean
2327
	rm -rf $(DISTCLEAN_PKG)
2328

2329
clean-svn:
2330
	rm -rf ffmpeg tremor x264 libdca
2331

2332
distclean: clean-src
2333

2334 2335 2336 2337
# ***************************************************************************
# Download all the sources and package unversionned copies of subversion trees
# ***************************************************************************

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