Makefile 81 KB
Newer Older
1
#***************************************************************************
2 3
# src/Makefile : Dearchive and compile all files necessary
# ***************************************************************************
4
# Copyright (C) 2003 - 2009 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 at videolan dot 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
export LDFLAGS = -L$(PREFIX)/lib $(EXTRA_LDFLAGS)
47 48 49 50 51
ifdef HAVE_DARWIN_OS
export CC
export CXX
export LD
endif
52 53 54 55 56 57 58 59

# ***************************************************************************
# 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... ;)
# ***************************************************************************

60 61 62 63 64 65
ifneq ($(CC),)
HOSTCC+= CC="$(CC)"
endif
ifneq ($(CXX),)
HOSTCC+= CXX="$(CXX)"
endif
66 67 68
ifneq ($(LD),)
HOSTCC+= LD="$(LD)"
endif
69 70 71 72 73 74
ifneq ($(RANLIB),)
HOSTCC+= RANLIB="$(RANLIB)"
endif
ifneq ($(AR),)
HOSTCC+= AR="$(AR)"
endif
75 76 77 78
ifneq ($(STRIP),)
HOSTCC+= STRIP="$(STRIP)"
endif

79

80 81 82 83 84
# Define ranlib on non-cross compilation setups
ifeq ($(RANLIB),)
RANLIB=ranlib
endif

85 86 87
# For libebml/libmatroska. Grrr.
ifneq ($(AR),)
HOSTCC2=$(HOSTCC) AR="$(AR) rcvu"
88 89
else
HOSTCC2=$(HOSTCC)
90 91
endif

92
FFMPEGCONF=
93 94

# cross compiling
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 --disable-dependency-tracking
118
FFMPEGCONF+= --target-os=mingw32 --arch=x86 --enable-memalign-hack
119
ifdef HAVE_WIN64
120
FFMPEGCONF+= --cpu=athlon64 --arch=x86_64
121
else
122
FFMPEGCONF+= --cpu=i686
123
endif
124
endif
125 126 127

ifdef HAVE_WINCE
HOSTCONF+= --without-pic --disable-shared
128
FFMPEGCONF+= --arch=armv4l --cpu=armv4t --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
129 130 131
endif

ifdef HAVE_UCLIBC
132
ifdef HAVE_BIGENDIAN
133
FFMPEGCONF+= --arch=armeb --enable-armv5te --enable-iwmmxt
134 135 136
else
FFMPEGCONF+= --arch=armv4l
endif
137
FFMPEGCONF+= --enable-small --disable-mpegaudio-hp
138
FFMPEG_CFLAGS += -DHAVE_LRINTF --std=c99
139
else
140
ifndef HAVE_WINCE
141
FFMPEGCONF+= --enable-libmp3lame --enable-libgsm
142
endif
143
endif
144

145
ifdef HAVE_DARWIN_OS_ON_INTEL
146
FFMPEGCONF += --enable-memalign-hack
147 148 149
endif

ifdef HAVE_DARWIN_OS
150
X264CONF=--host=$(HOST)
151
X264CONF += --enable-pic
152 153 154
ifdef HAVE_DARWIN_32
FFMPEGCONF += --cc=gcc-4.0
else
155
FFMPEGCONF += --cc=$(CC)
156
endif
157
FFMPEGCONF += --arch=$(ARCH)
158
ifdef HAVE_DARWIN_64
159
FFMPEGCONF += --cpu=core2
160
X264CONF+=--host=x86_64-apple-darwin10
161
endif
162
ifdef HAVE_DARWIN_OS_ON_INTEL
163 164
FFMPEG_CFLAGS += -DHAVE_LRINTF
endif
165
endif
166

167
ifdef HAVE_AMR
168
FFMPEGCONF+= --enable-libamr-nb --enable-libamr-wb --enable-nonfree
169 170
endif

171
ifdef HAVE_LINUX
172
ifdef HAVE_MAEMO
173 174 175
ifneq ($(filter -m%=cortex-a8, $(EXTRA_CFLAGS)),)
FFMPEGCONF += --disable-runtime-cpudetect --enable-neon --cpu=cortex-a8
endif
176 177 178 179
# Really, this could be done on all Linux platforms, not just Maemo.
# Installing statically-linked VLC plugins is so much simpler.
HOSTCONF += --with-pic --disable-shared
endif
180
FFMPEGCONF += --enable-pic
181 182 183
X264CONF += --enable-pic
endif

184 185 186 187
ifdef HAVE_ISA_THUMB
NOTHUMB ?= -mno-thumb
endif

188 189
X264CONF+= --disable-avs-input --disable-lavf-input --disable-ffms-input --disable-mp4-output

190 191
DATE=`date +%Y-%m-%d`

192 193 194
# ***************************************************************************
# Standard rules
# ***************************************************************************
195
# Generated by ./bootstrap from default configuration in src/Distributions
196
#
197
include ../distro.mak
198 199 200 201 202 203 204 205

FORCE:

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

define EXTRACT_GZ
206
	rm -rf $@ || true
207
	gunzip -c $< | tar xf - --exclude='[*?:<>\|]'
208 209
	mv $(patsubst %.tar.gz,%,$(patsubst %.tgz,%,$(notdir $<))) $@ || true
	touch $@
210 211 212
endef

define EXTRACT_BZ2
213
	rm -rf $@ || true
214
	bunzip2 -c $< | tar xf - --exclude='[*?:<>\|]'
215 216
	mv $(patsubst %.tar.bz2,%,$(notdir $<)) $@ || true
	touch $@
217 218
endef

219
define EXTRACT_ZIP
220 221 222 223
	rm -rf $@ || true
	unzip $<
	mv $(patsubst %.zip,%,$(notdir $<)) $@ || true
	touch $@
224 225
endef

226 227 228 229 230 231
### 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
232 233 234 235 236
#	cd $< ; ./configure --prefix=$(PREFIX)
#	$(MAKE) -C $<
#	$(MAKE) -C $< install
#	$(INSTALL_NAME)
#	touch $@
237

238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253
# ***************************************************************************
# errno
# ***************************************************************************

errno:
	mkdir -p $@
	$(WGET) $(ERRNO_URL)/errno.h -O $@/errno.h

.errno: errno
	mkdir -p $(PREFIX)/include
	cp $</errno.h $(PREFIX)/include
	touch $@

CLEAN_FILE += .errno
CLEAN_PKG += errno

254 255 256 257
# ***************************************************************************
# autoconf
# ***************************************************************************

258
autoconf-$(AUTOCONF_VERSION).tar.bz2:
259
	$(WGET) $(AUTOCONF_URL)
260

261
autoconf: autoconf-$(AUTOCONF_VERSION).tar.bz2
262
	$(EXTRACT_BZ2)
263 264

.autoconf: autoconf
265 266
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
267 268 269

CLEAN_FILE += .autoconf
CLEAN_PKG += autoconf
270
DISTCLEAN_PKG += autoconf-$(AUTOCONF_VERSION).tar.bz2
271

272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293
# ***************************************************************************
# 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

294 295 296
# ***************************************************************************
# CMake
# ***************************************************************************
Rafaël Carré's avatar
Rafaël Carré committed
297 298 299 300 301
cmake-$(CMAKE_VERSION).tar.gz:
	$(WGET) $(CMAKE_URL)

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

303
.cmake: cmake
304 305 306 307 308 309
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@

CLEAN_FILE += .cmake
CLEAN_PKG += cmake

310 311 312 313 314
# ***************************************************************************
# libtool
# ***************************************************************************

ifdef HAVE_DARWIN_OS
315 316 317 318 319 320 321 322
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)
323 324
	ln -sf libtool $(PREFIX)/bin/glibtool
	ln -sf libtoolize $(PREFIX)/bin/glibtoolize
325
	touch $@
326 327 328

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

331 332 333 334 335 336 337
endif

# ***************************************************************************
# automake
# ***************************************************************************

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

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

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

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

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

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

358
pkgconfig: pkg-config-$(PKGCFG_VERSION).tar.gz
359
	$(EXTRACT_GZ)
360
	(cd $@; autoconf)
361 362

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

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

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

gettext-$(GETTEXT_VERSION).tar.gz:
375
	$(WGET) $(GETTEXT_URL)
376 377

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

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

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

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

libiconv-$(LIBICONV_VERSION).tar.gz:
420
	$(WGET) $(LIBICONV_URL)
421 422

libiconv: libiconv-$(LIBICONV_VERSION).tar.gz
423
	$(EXTRACT_GZ)
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
424 425
ifdef HAVE_WIN64
	patch -p0 < Patches/libiconv-win64.patch
426
endif
427 428 429 430
ifdef HAVE_WINCE
	patch -p0 < Patches/libiconv-wince.patch
	patch -p0 < Patches/libiconv-wince-hack.patch
endif
431

432 433 434 435 436
libiconv-snowleopard.tar.bz2:
	$(WGET) $(LIBICONVMAC_URL)

libiconv-snowleopard: libiconv-snowleopard.tar.bz2
	$(EXTRACT_BZ2)
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
437

438
ifdef HAVE_DARWIN_OS
439
ifdef HAVE_DARWIN_10
440
.iconv: libiconv-snowleopard
441
	(cd libiconv-snowleopard && cp libiconv.* $(PREFIX)/lib/)
442 443
	touch $@
else
444
.iconv:
445
	touch $@
446
endif
447
else
448
.iconv: libiconv
449 450 451
	(cd libiconv; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-nls && make && make install)
	$(INSTALL_NAME)
	touch $@
452
endif
453 454 455 456 457

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

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

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

465
fontconfig: fontconfig-$(FONTCONFIG_VERSION).tar.gz Patches/fontconfig.patch
466
	$(EXTRACT_GZ)
467
	patch -p0 < Patches/fontconfig-march.patch
468
	patch -p0 < Patches/fontconfig-nodocs.patch
469 470
ifdef HAVE_WIN32
	patch -p0 < Patches/fontconfig.patch
471
	patch -p0 < Patches/fontconfig-noxml2.patch
472
	(cd $@; autoreconf -ivf)
473
endif
474

Rafaël Carré's avatar
Rafaël Carré committed
475
.fontconfig: fontconfig .xml .freetype
476 477
ifdef HAVE_WIN32
  ifdef HAVE_CYGWIN
478
	(cd $<; ./configure --target=$(HOST) --disable-pic --disable-shared --disable-docs --with-arch=i686 --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --enable-libxml2 && make && make install)
479
  else
480
	(cd $<; $(HOSTCC)  ./configure $(HOSTCONF) --with-arch=i686 --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --disable-libxml2 --disable-docs && make && make install)
481 482
  endif
else
483
  ifdef HAVE_DARWIN_OS
484
	(cd $<; $(HOSTCC) LIBXML2_CFLAGS=`xml2-config --cflags` LIBXML2_LIBS=`xml2-config --libs` ./configure $(HOSTCONF) --with-cache-dir=/usr/X11/var/cache/fontconfig --with-confdir=/usr/X11/lib/X11/fonts --with-default-fonts=/System/Library/Fonts --with-add-fonts=/Library/Fonts,~/Library/Fonts --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --with-arch=$(ARCH) --enable-libxml2 --disable-docs && make && make install-exec && (cd fontconfig ; make install-data) && cp fontconfig.pc $(PKG_CONFIG_LIBDIR))
485
  else
486
	(cd $<; $(HOSTCC) LIBXML2_CFLAGS=`$(PREFIX)/bin/xml2-config --cflags` ./configure $(HOSTCONF) --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --enable-libxml2 --disable-docs && make && make install)
487
  endif
488 489 490 491 492 493 494 495
endif
	$(INSTALL_NAME)
	touch $@

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

496 497 498 499 500
# ***************************************************************************
# freetype2
# ***************************************************************************

freetype-$(FREETYPE2_VERSION).tar.gz:
501
	$(WGET) $(FREETYPE2_URL)
502 503

freetype2: freetype-$(FREETYPE2_VERSION).tar.gz
504
	$(EXTRACT_GZ)
505 506

.freetype: freetype2
507 508 509
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
	$(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
	( cd $@; rm -f configure; ./bootstrap)
526

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

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

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

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

a52dec: a52dec-$(A52DEC_VERSION).tar.gz
544
	$(EXTRACT_GZ)
545
ifeq ($(ARCH),armel)
546 547
	(cd $@ ; patch -p0 < ../Patches/liba52-fixed.diff)
endif
548 549

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

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

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

Christophe Mutricy's avatar
Christophe Mutricy committed
561 562
libmpeg2-$(LIBMPEG2_VERSION).tar.gz:
	$(WGET) $(LIBMPEG2_URL)
563

Christophe Mutricy's avatar
Christophe Mutricy committed
564
libmpeg2: libmpeg2-$(LIBMPEG2_VERSION).tar.gz
565
	$(EXTRACT_GZ)
566
	patch -p0 < Patches/libmpeg2-arm-pld.patch
567 568
	cd libmpeg2 && patch -p0 < ../Patches/libmpeg2-mc-neon.patch
	cd libmpeg2 && ./bootstrap
569

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

CLEAN_FILE += .mpeg2
Christophe Mutricy's avatar
Christophe Mutricy committed
575 576
CLEAN_PKG += libmpeg2
DISTCLEAN_PKG += libmpeg2-$(LIBMPEG2_VERSION).tar.gz
577 578 579 580 581 582

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

libid3tag-$(LIBID3TAG_VERSION).tar.gz:
583
	$(WGET) $(LIBID3TAG_URL)
584 585

libid3tag: libid3tag-$(LIBID3TAG_VERSION).tar.gz
586
	$(EXTRACT_GZ)
587
	patch -d libid3tag -p0 < Patches/libid3tag-0.15.1b-fix-CVE-2008-2109.patch
588 589 590
ifdef HAVE_DARWIN_OS
	( cd $@; sed -e 's%-dynamiclib%-dynamiclib -arch $(ARCH)%' -i.orig  configure )
endif
591 592

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

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

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

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

619 620 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
# ***************************************************************************
# 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)
646 647 648
ifdef HAVE_DARWIN_OS
	(cd $@; sed -e 's%gcc%$(CC)%' -e 's%LDFLAGS=%LDFLAGS=$(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)%' -i.orig  src/Makefile)
endif
649 650

.lua: lua
651
ifdef HAVE_WIN32
652
	( cd $< && sed -i.orig 's/lua luac/lua.exe/' Makefile && cd src && sed -i.orig 's/CC=/#CC=/' Makefile && sed -i 's/strip/$(STRIP)/' Makefile && cd ../..)
Christophe Mutricy's avatar
Christophe Mutricy committed
653 654
	(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)
655
else
Christophe Mutricy's avatar
Christophe Mutricy committed
656 657
	(cd $<&& patch -p1) < Patches/lua-noreadline.patch
	(cd $<&& $(HOSTCC) make $(LUA_MAKEPLATEFORM) && make install INSTALL_TOP=$(PREFIX))
658
endif
659 660 661 662 663 664
	touch $@

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

665 666 667 668 669
# ***************************************************************************
# libmad
# ***************************************************************************

libmad-$(LIBMAD_VERSION).tar.gz:
670
	$(WGET) $(LIBMAD_URL)
671 672

libmad: libmad-$(LIBMAD_VERSION).tar.gz
673
	$(EXTRACT_GZ)
674
ifdef HAVE_DARWIN_OS
675
	( cd $@; sed -e 's%-march=i486%$(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)%' -e 's%-dynamiclib%-dynamiclib -arch $(ARCH)%' -i.orig  configure )
676
endif
677 678

.mad: libmad
679
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="-O3 $(NOTHUMB)" && make && make install)
680 681
	$(INSTALL_NAME)
	touch $@
682 683 684 685 686 687 688 689 690 691

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

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

libogg-$(OGG_VERSION).tar.gz:
692
	$(WGET) $(OGG_URL)
693 694

libogg: libogg-$(OGG_VERSION).tar.gz
695
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
696 697
	patch -p0 < Patches/ogg.patch
	patch -p0 < Patches/libogg-1.1.patch
698
ifdef HAVE_WINCE
Rafaël Carré's avatar
Rafaël Carré committed
699
	patch -p0 < Patches/libogg-wince.patch
700
endif
701
	(cd $@; autoconf)
702 703

.ogg: libogg
704 705 706
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make install)
	$(INSTALL_NAME)
	touch $@
707 708 709 710 711 712 713 714 715 716

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

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

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

libvorbis: libvorbis-$(VORBIS_VERSION).tar.gz
720
	$(EXTRACT_GZ)
721
	patch -p0 < Patches/vorbis-noapps.patch
722 723

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

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

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

736 737 738 739 740
# ***************************************************************************
# tremor
# ***************************************************************************

ifdef SVN
741
tremor:
742
	$(SVN) co http://svn.xiph.org/trunk/Tremor tremor
743
	(cd $@ && patch -p0 < ../Patches/tremor.patch)
744
	(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)
745 746
else
tremor-$(TREMOR_VERSION).tar.bz2:
747 748
	echo "tremor snapshot does not exist, you MUST use subversion !"
	exit -1
749
	$(WGET) $(TREMOR_URL)
750 751

tremor: tremor-$(TREMOR_VERSION).tar.bz2
752
	$(EXTRACT_BZ2)
753 754 755
endif

.tremor: tremor .ogg
756
	(cd $<; $(HOSTCC) ./autogen.sh $(HOSTCONF) --prefix=$(PREFIX) --disable-shared CFLAGS="$(NOTHUMB)" && make && make install)
757 758
	$(INSTALL_NAME)
	touch $@
759

760 761
ifdef SVN
tremor-source: tremor
762
	tar cv --exclude=.svn tremor | bzip2 > tremor-$(DATE).tar.bz2
763 764 765 766

SOURCE += tremor-source
endif

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

771 772 773 774 775
# ***************************************************************************
# theora
# ***************************************************************************

libtheora-$(THEORA_VERSION).tar.bz2:
776
	$(WGET) $(THEORA_URL)
777 778

libtheora: libtheora-$(THEORA_VERSION).tar.bz2
779
	$(EXTRACT_BZ2)
780
	patch -p0 < Patches/libtheora-includes.patch
781

782 783
THEORACONF = --disable-sdltest --disable-oggtest --disable-vorbistest --disable-examples

784
ifdef HAVE_DARWIN_64
785 786
THEORACONF += --disable-asm
endif
787 788 789
ifdef HAVE_WIN64
THEORACONF += --disable-asm
endif
790

791
.theora: libtheora .ogg
792
ifdef HAVE_DARWIN_OS
793 794
	cd $<; ($(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(THEORACONF) && make && make install)
else
795 796 797 798 799 800 801 802 803
ifdef HAVE_WIN32
	cd $<; $(HOSTCC) ./autogen.sh $(HOSTCONF) --prefix=$(PREFIX) $(THEORACONF)
endif
	if test ! -f $</config.status; then \
		cd $< ; \
		$(HOSTCC) ./configure $(HOSTCONF) \
			--prefix=$(PREFIX) $(THEORACONF) ; \
	fi
	cd $< && make && make install
804
endif
805 806
	$(INSTALL_NAME)
	touch $@
807 808 809 810 811

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

Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
812 813 814 815 816
# ***************************************************************************
# shout
# ***************************************************************************

libshout-$(SHOUT_VERSION).tar.gz:
817
	$(WGET) $(SHOUT_URL)
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
818 819

libshout: libshout-$(SHOUT_VERSION).tar.gz
820
	$(EXTRACT_GZ)
Christophe Mutricy's avatar
Christophe Mutricy committed
821
ifdef HAVE_WIN32
822
	patch -p0 < Patches/libshout-win32.patch
Christophe Mutricy's avatar
Christophe Mutricy committed
823
endif
824

825
.shout: libshout .theora .ogg .speex .vorbis
826 827 828
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) &&  make && make install )
	$(INSTALL_NAME)
	touch $@
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
829 830 831 832 833

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

834 835 836 837 838
# ***************************************************************************
# flac
# ***************************************************************************

flac-$(FLAC_VERSION).tar.gz:
839
	$(WGET) $(FLAC_URL)
840 841

flac: flac-$(FLAC_VERSION).tar.gz
842
	$(EXTRACT_GZ)
843
ifdef HAVE_WIN32
844
	patch -p0 < Patches/flac-win32.patch
845
endif
846
ifdef HAVE_DARWIN_OS
Felix Paul Kühne's avatar
Felix Paul Kühne committed
847
	( cd $@; sed -e 's%-dynamiclib%-dynamiclib -arch $(ARCH)%' -i.orig  configure )
848
endif
849 850

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

852
.flac: flac .ogg
853
ifdef HAVE_DARWIN_OS_ON_INTEL
854 855
	cd $< && \
	$(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-asm-optimizations $(FLAC_DISABLE_FLAGS)
856
else
857 858
	cd $< && \
	$(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)  $(FLAC_DISABLE_FLAGS)
859
endif
860
	cd $</src && \
861 862
	make -C libFLAC && \
	echo 'Requires.private: ogg' >> libFLAC/flac.pc && \
863 864
	make -C libFLAC install
	cd $< && make -C include install
865 866
	$(INSTALL_NAME)
	touch $@
867

Damien Fouilleul's avatar
Damien Fouilleul committed
868
CLEAN_FILE += .flac
869 870 871 872 873 874 875 876
CLEAN_PKG += flac
DISTCLEAN_PKG += flac-$(FLAC_VERSION).tar.gz

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

speex-$(SPEEX_VERSION).tar.gz:
877
	$(WGET) $(SPEEX_URL)
878 879

speex: speex-$(SPEEX_VERSION).tar.gz
880 881
	$(EXTRACT_GZ)
	patch -p0 < Patches/speex.patch
882 883

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

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

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

896
faad2-$(FAAD2_VERSION).tar.gz:
897
	$(WGET) $(FAAD2_URL)
898

899 900
faad2: faad2-$(FAAD2_VERSION).tar.gz
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
901
	(cd $@; echo|$(CC) -iquote . -E - || sed -i 's/-iquote /-I/' libfaad/Makefile.am; sh ./bootstrap)
902
	patch -p0 < Patches/faad-arm-fixed.patch
903

904
.faad: faad2
Rafaël Carré's avatar
Rafaël Carré committed
905
	(cd $< && $(HOSTCC) ./configure $(HOSTCONF) --disable-shared --prefix=$(PREFIX) CFLAGS="-O3 $(NOTHUMB)" && sed -i.orig "s/shrext_cmds/shrext/g" libtool && make -C libfaad && make -C libfaad install)
906
	touch $@
907 908

CLEAN_FILE += .faad
909 910
CLEAN_PKG += faad2
DISTCLEAN_PKG += faad2-$(FAAD2_VERSION).tar.gz
911 912 913 914 915 916

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

lame-$(LAME_VERSION).tar.gz:
917
	$(WGET) $(LAME_URL)
918 919

lame: lame-$(LAME_VERSION).tar.gz
920
	$(EXTRACT_GZ)
921 922

.lame: lame
923 924
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-analyser-hooks --disable-decoder --disable-shared --disable-gtktest --disable-frontend && make && make install)
	touch $@
925 926 927 928 929 930 931 932 933 934

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

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

libebml-$(LIBEBML_VERSION).tar.bz2:
935
	$(WGET) $(LIBEBML_URL)
936 937

libebml: libebml-$(LIBEBML_VERSION).tar.bz2
938
	$(EXTRACT_BZ2)
939
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
940
	(cd $@; patch -p0 < ../Patches/libebml-svn-win32.patch)
941
endif
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
942
ifdef HAVE_WIN64
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
943
	patch -p0 < Patches/libebml-win64.patch
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
944
endif
945 946

.ebml: libebml
947
ifdef HAVE_WIN32
948
	(cd $<; make -C make/mingw32 prefix=$(PREFIX) $(HOSTCC2) CFLAGS="$(CFLAGS) -DWIN32" SHARED=no && make -C make/linux install_staticlib install_headers prefix=$(PREFIX) $(HOSTCC2))
949
else
950 951
	(cd $<; make -C make/linux prefix=$(PREFIX) $(HOSTCC2) staticlib && make -C make/linux install_staticlib install_headers prefix=$(PREFIX))
	$(RANLIB) $(PREFIX)/lib/libebml.a
952
endif
953
	touch $@
954

955 956 957 958 959 960 961 962
CLEAN_FILE += .ebml
CLEAN_PKG += libebml
DISTCLEAN_PKG += libebml-$(LIBEBML_VERSION).tar.bz2

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

963 964 965
libmatroska-$(LIBMATROSKA_VERSION).tar.bz2:
	$(WGET) $(LIBMATROSKA_URL)

966
libmatroska: libmatroska-$(LIBMATROSKA_VERSION).tar.bz2
967
	$(EXTRACT_BZ2)
968
	patch -p0 < ./Patches/libmatroska-kaxblock.patch
969
ifdef HAVE_WIN32
Rafaël Carré's avatar
Rafaël Carré committed
970
	(cd $@; patch -p0 < ../Patches/libmatroska-win32.patch)
971
endif
972

973 974
.matroska: libmatroska .ebml
ifdef HAVE_WIN32
975
	(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))
976
else
977 978
	(cd $<; make -C make/linux prefix=$(PREFIX) $(HOSTCC2) staticlib && make -C make/linux install_staticlib install_headers prefix=$(PREFIX))
	$(RANLIB) $(PREFIX)/lib/libmatroska.a
979
endif
980
	touch $@
981

982

983 984 985 986 987
CLEAN_FILE += .matroska
CLEAN_PKG += libmatroska
DISTCLEAN_PKG += libmatroska-$(LIBMATROSKA_VERSION).tar.bz2

# ***************************************************************************
988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021
# 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
1022
DISTCLEAN_PKG += amrwb-$(LIBAMR_WB_VERSION).tar.bz2
1023 1024 1025

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

1026 1027 1028
# ffmpeg
# ***************************************************************************

1029
ifdef SVN
1030 1031 1032 1033 1034
ifdef HAVE_WIN32
ffmpeg: .dshow_headers
else
ffmpeg: 
endif
1035
	$(SVN) co $(FFMPEG_SVN) ffmpeg
1036 1037 1038
ifdef HAVE_ISA_THUMB
	patch -p0 < Patches/ffmpeg-avcodec-no-thumb.patch
endif
1039
ifdef HAVE_UCLIBC
1040 1041
	patch -p0 < Patches/ffmpeg-svn-uclibc.patch
	patch -p0 < Patches/ffmpeg-svn-internal-define.patch
1042
	patch -p0 < Patches/ffmpeg-svn-libavformat.patch
1043
endif
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1044
	(cd $@; patch -p1 < ../Patches/eac3_spectral.patch)
1045
else
1046
ffmpeg-$(FFMPEG_VERSION).tar.gz:
1047 1048
	echo "ffmpeg snapshot is too old, you MUST use subversion !"
	exit -1
1049
	$(WGET) $(FFMPEG_URL)
1050

1051 1052 1053
ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz
	$(EXTRACT_GZ)
endif
1054

Rémi Denis-Courmont's avatar
Wrap  
Rémi Denis-Courmont committed
1055
FFMPEGCONF += \
1056
	--disable-debug \
Rémi Denis-Courmont's avatar
Wrap  
Rémi Denis-Courmont committed
1057 1058 1059 1060 1061 1062 1063
	--enable-gpl \
	--enable-postproc \
	--disable-ffserver \
	--disable-ffmpeg \
	--disable-ffplay \
	--disable-devices \
	--disable-protocols \
1064
	--disable-filters \
Rémi Denis-Courmont's avatar
Wrap  
Rémi Denis-Courmont committed
1065
	--disable-network
1066
ifdef HAVE_WIN32
1067
FFMPEGCONF += --disable-bzlib --disable-decoder=dca --disable-encoder=vorbis --enable-libmp3lame --enable-w32threads --enable-dxva2 --disable-bsfs
1068 1069
else
FFMPEGCONFG += --enable-pthreads
1070
endif
1071

1072
ifdef HAVE_WINCE
1073
.ffmpeg: ffmpeg .zlib
1074
else
1075 1076 1077
ifdef HAVE_UCLIBC
.ffmpeg: ffmpeg
else
1078
.ffmpeg: ffmpeg .lame .gsm
1079
endif
1080
endif
1081
	(cd $<; $(HOSTCC) ./configure --prefix=$(PREFIX) --extra-cflags="$(CFLAGS) $(FFMPEG_CFLAGS)" --extra-ldflags="$(LDFLAGS)" $(FFMPEGCONF) --disable-shared --enable-static && make && make install-libs install-headers)
1082
	touch $@
1083

1084 1085
ifdef SVN
ffmpeg-source: ffmpeg
1086
	tar cv --exclude=.svn ffmpeg | bzip2 > ffmpeg-$(DATE).tar.bz2
1087 1088 1089 1090

SOURCE += ffmpeg-source
endif

1091
CLEAN_FILE += .ffmpeg
1092
CLEAN_PKG += ffmpeg
1093 1094 1095 1096 1097 1098
DISTCLEAN_PKG += ffmpeg-$(FFMPEG_VERSION).tar.gz

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

1099
libdvdcss-$(LIBDVDCSS_VERSION).tar.bz2:
1100 1101
	$(WGET) $(LIBDVDCSS_URL)

1102 1103 1104 1105 1106 1107 1108 1109
# ifdef SVN
# libdvdcss:
#	$(SVN) co svn://svn.videolan.org/libdvdcss/trunk libdvdcss
#	cd $@ && sh bootstrap
# else
libdvdcss: libdvdcss-$(LIBDVDCSS_VERSION).tar.bz2
	$(EXTRACT_BZ2)
# endif
1110 1111

.dvdcss: libdvdcss
1112 1113 1114
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --disable-doc --prefix=$(PREFIX) && make && make install)
	$(INSTALL_NAME)
	touch $@
1115

1116 1117 1118 1119 1120 1121
# ifdef SVN
# libdvdcss-source: libdvdcss
# 	tar cv --exclude=.svn libdvdcss | bzip2 > libdvdcss-$(DATE).tar.bz2
#
# SOURCE += libdvdcss-source
# endif
1122

1123 1124
CLEAN_FILE += .dvdcss
CLEAN_PKG += libdvdcss
1125
DISTCLEAN_PKG += libdvdcss-$(LIBDVDCSS_VERSION).tar.bz2
1126

1127 1128 1129
# ***************************************************************************
# dummy dvdread to trigger the INSTALL_NAME script
# ***************************************************************************
1130 1131 1132
# .dvdread: .dvdnav
# 	$(INSTALL_NAME)
# 	touch $@
1133
#
1134 1135 1136 1137 1138
# CLEAN_FILE += .dvdread

# ***************************************************************************
# libdvdread: We use dvdnav's dvdread
# ***************************************************************************
1139
libdvdread:
1140
	$(SVN) co $(LIBDVDREAD_SVN)  libdvdread
1141
	(cd $@; patch  -p 0 < ../Patches/libdvdread-dvdcss-static.patch)
1142
ifdef HAVE_WIN32
1143
	(cd $@; patch  -p 0 < ../Patches/libdvdread-win32.patch)
1144
endif
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1145
	(cd $@; sh autogen.sh noconfig)
1146 1147

.libdvdread: libdvdread .dvdcss
1148
	(cd libdvdread; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --with-libdvdcss=$(PREFIX) && make && make install)
1149 1150
	$(INSTALL_NAME)
	touch $@
1151

1152 1153
CLEAN_FILE += .libdvdread
CLEAN_PKG += libdvdread
1154
#DISTCLEAN_PKG += libdvdread-$(LIBDVDREAD_VERSION).tar.gz
1155 1156 1157 1158 1159

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

1160 1161
ifdef SVN
libdvdnav:
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1162
	$(SVN) co $(LIBDVDNAV_SVN)  libdvdnav
1163
	patch -d libdvdnav -p0 < Patches/libdvdnav.patch
1164 1165
	(cd $@; ./autogen.sh noconfig)
else
1166
libdvdnav-$(LIBDVDNAV_VERSION).tar.gz:
1167
	$(WGET) $(LIBDVDNAV_URL)
1168

1169 1170
libdvdnav: libdvdnav-$(LIBDVDNAV_VERSION).tar.gz
	$(EXTRACT_GZ)
1171
	patch -p0 < Patches/libdvdnav.patch
1172 1173 1174
ifdef HAVE_WIN32
	patch -p0 < Patches/libdvdnav-win32.patch
endif
1175
	(cd $@; ./autogen.sh noconfig)
1176
endif
1177

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1178
.dvdnav: libdvdnav .libdvdread
1179
ifdef HAVE_WIN32
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1180
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --enable-static --prefix=$(PREFIX) && make && make install)
1181
else
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1182
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --enable-static --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -Dlseek64=lseek -Doff64_t=off_t" && make && make install)
1183
endif
1184 1185
	$(INSTALL_NAME)
	touch $@
1186 1187 1188

CLEAN_FILE += .dvdnav
CLEAN_PKG += libdvdnav
1189
DISTCLEAN_PKG += libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2
1190 1191 1192 1193 1194

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

1195
libdvbpsi5-$(LIBDVBPSI_VERSION).tar.gz:
1196
	$(WGET) $(LIBDVBPSI_URL)
1197

1198
libdvbpsi: libdvbpsi5-$(LIBDVBPSI_VERSION).tar.gz
1199
	$(EXTRACT_GZ)
1200 1201

.dvbpsi: libdvbpsi
1202 1203 1204
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && cd src && make && make install)
	$(INSTALL_NAME)
	touch $@
1205 1206 1207

CLEAN_FILE += .dvbpsi
CLEAN_PKG += libdvbpsi
1208
DISTCLEAN_PKG += libdvbpsi5-$(LIBDVBPSI_VERSION).tar.gz
1209 1210 1211 1212 1213

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

1214
live555-$(LIVEDOTCOM_VERSION).tar.gz:
1215
	$(WGET) $(LIVEDOTCOM_URL)
1216

1217
live: live555-$(LIVEDOTCOM_VERSION).tar.gz
1218
	$(EXTRACT_GZ)
1219
	patch -p0 < Patches/live-uselocale.patch
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1220 1221 1222
ifdef HAVE_WIN64
	patch -p0 < Patches/live-win64.patch
endif
1223 1224

.live: live
1225 1226 1227
ifdef HAVE_WIN32
	(cd $<;./genMakefiles mingw && make $(HOSTCC))
else
Pierre Ynard's avatar
Pierre Ynard committed
1228
ifdef HAVE_WINCE
1229
	(cd $<; sed -e 's/-lws2_32/-lws2/g' -i.orig config.mingw)
Pierre Ynard's avatar
Pierre Ynard committed
1230 1231
	(cd $<;./genMakefiles mingw && make $(HOSTCC))
else
1232
ifdef HAVE_DARWIN_OS
1233
	(cd $<; sed -e 's%-DBSD=1%-DBSD=1\ $(EXTRA_CFLAGS)\ $(EXTRA_LDFLAGS)%' -e 's%cc%$(CC)%'  -e 's%c++%$(CXX)\ $(EXTRA_LDFLAGS)%' -i.orig  config.macosx)
1234
	(cd $<; ./genMakefiles macosx && make)
1235
else
1236
	(cd $<; sed -e 's/=/= EXTRA_CPPFLAGS/' -e 's%EXTRA_CPPFLAGS%-I/include%' -i.orig groupsock/Makefile.head)
1237 1238 1239 1240 1241
ifdef HAVE_UCLIBC
ifdef HAVE_BIGENDIAN
	(cd $<; ./genMakefiles armeb-uclibc && make $(HOSTCC))
endif
else
1242
	(cd $<; sed -e 's%-D_FILE_OFFSET_BITS=64%-D_FILE_OFFSET_BITS=64\ -fPIC\ -DPIC%' -i.orig config.linux)
1243
	(cd $<; ./genMakefiles linux && make $(HOSTCC))
1244
endif
1245
endif
Pierre Ynard's avatar
Pierre Ynard committed
1246
endif
1247
endif
1248
	mkdir -p $(PREFIX)/lib $(PREFIX)/include
1249 1250 1251 1252 1253 1254 1255 1256
	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
1257
	touch $@
1258 1259 1260

CLEAN_FILE += .live
CLEAN_PKG += live
1261
DISTCLEAN_PKG += live555-$(LIVEDOTCOM_VERSION).tar.gz
1262 1263 1264 1265 1266 1267

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

goom$(GOOM2k4_VERSION).tar.gz:
1268 1269
	$(WGET) $(GOOM2k4_URL)
	mv goom-$(GOOM2k4_VERSION)-src.tar.gz goom$(GOOM2k4_VERSION).tar.gz
1270 1271

goom: goom$(GOOM2k4_VERSION).tar.gz
1272
	$(EXTRACT_GZ)
1273
ifdef HAVE_WIN32
1274
	(cd $@; dos2unix configure.in)
Rafaël Carré's avatar
Rafaël Carré committed
1275
	patch -p0 < Patches/goom2k4-0-win32.patch
1276 1277
else
	patch -p0 < Patches/goom2k4-0-mmx.patch
1278
endif
1279
	patch -p0 < Patches/goom2k4-0-memleaks.patch
1280
	patch -p0 < Patches/goom2k4-autotools.patch
1281
	(cd $@; rm -f configure; ACLOCAL="aclocal -I m4/" autoreconf -ivf)
1282 1283

.goom2k4: goom
1284
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static --disable-glibtest --disable-gtktest && make && make install)
1285
	touch $@
1286 1287 1288

CLEAN_FILE += .goom2k4
CLEAN_PKG += goom
1289
DISTCLEAN_PKG += goom$(GOOM2k4_VERSION).tar.gz
1290 1291 1292 1293 1294 1295

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

libcaca-$(LIBCACA_VERSION).tar.gz:
1296
	$(WGET) $(LIBCACA_URL)
1297 1298

libcaca: libcaca-$(LIBCACA_VERSION).tar.gz
1299
	$(EXTRACT_GZ)
Christophe Mutricy's avatar
Christophe Mutricy committed
1300
	patch -p0 < Patches/libcaca-static.patch
1301
ifdef HAVE_DARWIN_OS
1302 1303
	patch -p0 < Patches/libcaca-osx-sdkofourchoice.patch
	(cd $@; sed -e 's%/Developer/SDKs/MacOSX10.4u.sdk%$(MACOSX_SDK)%' -i.orig  configure)
1304
endif
1305 1306

.caca: libcaca
1307
ifdef HAVE_WIN32
1308
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-win32 --disable-x11 --disable-imlib2 --disable-doc --disable-ruby --disable-csharp --disable-cxx && make && make install)
1309
else
1310
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-imlib2 --disable-doc --disable-ruby --disable-csharp --disable-cxx && make && make install)
1311
endif
1312
	touch $@
1313 1314 1315 1316 1317 1318

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

# ***************************************************************************
Antoine Cellerier's avatar
Antoine Cellerier committed
1319
# libdca
1320 1321
# ***************************************************************************

1322 1323 1324 1325 1326
libdca-$(LIBDCA_VERSION).tar.bz2:
	$(WGET) $(LIBDCA_URL)

libdca: libdca-$(LIBDCA_VERSION).tar.bz2
	$(EXTRACT_BZ2)
1327 1328 1329
ifdef HAVE_DARWIN_9
	( cd $@; patch -p0 < ../Patches/libdca-llvm-gcc.patch )
endif
1330

1331
.dca: libdca
1332
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1333
	$(INSTALL_NAME)
1334
	touch $@
1335

1336
CLEAN_FILE += .dca
Antoine Cellerier's avatar
Antoine Cellerier committed
1337
CLEAN_PKG += libdca
1338
DISTCLEAN_PKG += libdca-$(LIBDCA_VERSION).tar.bz2
1339

1340
# ***************************************************************************
1341
# libx264
1342 1343
# ***************************************************************************

1344 1345 1346
x264-$(X264_VERSION).tar.gz:
	$(WGET) $(X264_URL)

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1347 1348 1349 1350 1351 1352 1353 1354 1355 1356
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

else

1357
x264: x264-$(X264_VERSION).tar.gz
1358
	$(EXTRACT_GZ)
1359
ifdef HAVE_WIN32
1360
  ifndef HAVE_CYGWIN
Rafaël Carré's avatar
Rafaël Carré committed
1361
	(cd x264;patch -p0 <../Patches/x264-20050624-win32.patch)
1362
  endif
1363
else
Rafaël Carré's avatar
Rafaël Carré committed
1364
	patch -p0 < Patches/x264.patch
1365
	rm x264/x264.c
1366
endif
1367
endif
1368

1369 1370
ifdef HAVE_WIN32
.x264: x264 .pthreads
1371 1372 1373
  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
1374
	(cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" --enable-pthread && make && make install)
1375
  endif
1376
else
1377
ifdef HAVE_DARWIN_OS_ON_INTEL
1378
  .x264: x264 .yasm
1379
	(cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" && make && make install)
1380 1381
else
  .x264: x264
1382
	(cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" && make && make install)
1383
endif
1384
endif
1385
	touch $@
1386

1387
ifdef GIT
1388
x264-source: x264
1389 1390
	cd x264 && \
	git archive --format=tar HEAD | bzip2 > ../x264-$(DATE).tar.bz2
1391

1392
SOURCE += x264-source
1393 1394
endif

1395 1396 1397 1398
CLEAN_FILE += .x264
CLEAN_PKG += x264
DISTCLEAN_PKG += x264-$(X264_VERSION).tar.gz

1399 1400 1401 1402 1403
# ***************************************************************************
# libmodplug
# ***************************************************************************

libmodplug-$(MODPLUG_VERSION).tar.gz:
1404
	$(WGET) $(MODPLUG_URL)
1405 1406

libmodplug: libmodplug-$(MODPLUG_VERSION).tar.gz
1407
	$(EXTRACT_GZ)
1408
ifdef HAVE_WIN32
1409
	patch -p0 < Patches/libmodplug-win32.patch
1410
	(cd $@; autoreconf -ivf )
1411
endif
1412 1413

.mod: libmodplug
1414 1415
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
	touch $@
1416 1417 1418 1419 1420 1421 1422 1423 1424

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

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

1425
libcddb-$(CDDB_VERSION).tar.bz2:
1426
	$(WGET) $(CDDB_URL)
1427

1428
libcddb: libcddb-$(CDDB_VERSION).tar.bz2
1429
	$(EXTRACT_BZ2)
1430 1431 1432 1433 1434
	(cd $@; patch -p0 < ../Patches/libcddb-cross.patch )
ifdef HAVE_WIN32
	(cd $@; patch -p0 < ../Patches/libcddb-win32.patch )
endif
	(cd $@; autoreconf -fisv)
1435

1436 1437
ifdef HAVE_WIN32
.cddb: libcddb .regex
1438
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static --without-iconv CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" && make && make install)
1439
else
1440
.cddb: libcddb
1441
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" LDFLAGS="$(LDFLAGS) -liconv" && make && make install)
1442
endif
1443
	touch $@
1444 1445 1446

CLEAN_FILE += .cddb
CLEAN_PKG += libcddb
1447
DISTCLEAN_PKG += libcddb-$(CDDB_VERSION).tar.bz2
1448 1449 1450 1451 1452 1453

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

vcdimager-$(VCDIMAGER_VERSION).tar.gz:
1454
	$(WGET) $(VCDIMAGER_URL)
1455 1456

vcdimager: vcdimager-$(VCDIMAGER_VERSION).tar.gz
1457
	$(EXTRACT_GZ)
1458 1459 1460

ifdef HAVE_DARWIN_OS
.vcdimager: vcdimager
1461 1462
	(cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static LDFLAGS="$(LDFLAGS) -framework CoreFoundation -framework IOKit" && make && make install)
	touch $@
1463 1464
else
.vcdimager: vcdimager
1465 1466
	(cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
	touch $@
1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477
endif

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

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

libcdio-$(CDIO_VERSION).tar.gz:
1478
	$(WGET) $(CDIO_URL)
1479 1480

libcdio: libcdio-$(CDIO_VERSION).tar.gz
1481
	$(EXTRACT_GZ)
1482
	patch -p0 < Patches/libcdio-install-cdparanoia-pc.patch
1483 1484 1485
ifdef HAVE_DARWIN_OS
	patch -p0 < Patches/libcdio-modernOSX.patch
endif
1486 1487

.cdio: libcdio
1488
	(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)
1489
	touch $@
1490 1491 1492 1493 1494

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

1495 1496 1497 1498
# ***************************************************************************
# qt4 (win32 binary)
# ***************************************************************************

1499
qt4-$(QT4_VERSION)-win32-bin.tar.bz2:
1500
	$(WGET) $(QT4_URL)
Clément Stenac's avatar
Clément Stenac committed
1501

1502
qt4_win32: qt4-$(QT4_VERSION)-win32-bin.tar.bz2
1503
	$(EXTRACT_BZ2)
1504
	chmod -R 755 qt4_win32
Clément Stenac's avatar
Clément Stenac committed
1505

1506
.qt4_win32: qt4_win32
1507
	(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)
1508
ifeq ($(BUILD),i686-pc-cygwin)
1509
	(cd qt4_win32;cp bin/*.exe $(PREFIX)/bin)
1510
else
1511
	(cd qt4_win32;cp bin/* $(PREFIX)/bin)
1512
endif
1513
	touch $@
Clément Stenac's avatar
Clément Stenac committed
1514

1515 1516
CLEAN_FILE += .qt4_win32
CLEAN_PKG += qt4_win32
1517
DISTCLEAN_PKG += qt4-$(QT4_VERSION)-win32-bin.tar.bz2
Clément Stenac's avatar
Clément Stenac committed
1518

1519 1520 1521 1522 1523 1524 1525
# ***************************************************************************
# qt4 (trolltech binaries)
# ***************************************************************************

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

1526
Qt_win32: qt-win-opensource-$(QT4T_VERSION)-mingw.exe
1527
	mkdir Qt
1528
	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
1529 1530 1531
	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 {} \;
1532
	find Qt/translations -type f -a ! -name 'qt_*.qm' -exec rm {} \;
1533 1534 1535 1536
	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
1537

1538
.Qt_win32: Qt_win32
1539
	mkdir -p $(PREFIX)/bin $(PREFIX)/include/qt4/src $(PREFIX)/lib/pkgconfig $(PREFIX)/share/qt4/translations
1540 1541 1542 1543
	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
1544
	cp Qt/lib/pkgconfig/* $(PREFIX)/lib/pkgconfig
1545
	cp Qt/translations/* $(PREFIX)/share/qt4/translations
1546
	touch $@
1547

1548 1549
CLEAN_FILE += .Qt_win32
CLEAN_PKG += Qt_win32
1550
DISTCLEAN_PKG += qt-win-opensource-$(QT4T_VERSION)-mingw.exe
1551

1552 1553 1554 1555
# ***************************************************************************
# qt4 (source-code compilation for Mac)
# ***************************************************************************

1556
qt-mac-opensource-src-$(QT4_MAC_VERSION).tar.gz:
1557 1558
	$(WGET) $(QT4_MAC_URL)

1559
qt4_mac: qt-mac-opensource-src-$(QT4_MAC_VERSION).tar.gz
1560 1561 1562
	$(EXTRACT_GZ)

.qt4_mac: qt4_mac
1563
	(cd qt4_mac; ./configure -prefix $(PREFIX) -release -fast -no-qt3support -nomake "examples demos" -sdk $(MACOSX_SDK) -no-framework -arch $(ARCH) && make && make install)
1564 1565 1566 1567
	touch $@

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

1570 1571 1572 1573 1574
# ***************************************************************************
# zlib
# ***************************************************************************

zlib-$(ZLIB_VERSION).tar.gz:
1575
	$(WGET) $(ZLIB_URL)
1576 1577

zlib: zlib-$(ZLIB_VERSION).tar.gz
1578
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
1579
	patch -p0 < Patches/zlib.patch
1580 1581

.zlib: zlib
1582 1583 1584
	(cd zlib; $(HOSTCC2) ./configure --prefix=$(PREFIX) && make install)
	$(INSTALL_NAME)
	touch $@
1585 1586 1587 1588 1589

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

1590
# ***************************************************************************
1591
# PortAudio
1592 1593 1594
# ***************************************************************************

pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz:
1595
	$(WGET) $(PORTAUDIO_URL)
1596 1597

portaudio: pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz
1598
	$(EXTRACT_GZ)
1599
ifneq ($(HOST),$(BUILD))
Rafaël Carré's avatar
Rafaël Carré committed
1600
	(patch -p0 < Patches/portaudio-cross.patch;cd $@;  autoconf)
1601
endif
1602

1603
.portaudio: portaudio
1604 1605 1606
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make  install)
	$(INSTALL_NAME)
	touch $@
1607 1608 1609

CLEAN_FILE += .portaudio
CLEAN_PKG += portaudio
1610
DISTCLEAN_PKG += pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz
1611

1612 1613 1614 1615 1616
# ***************************************************************************
# xml
# ***************************************************************************

libxml2-$(XML_VERSION).tar.gz:
1617
	$(WGET) $(XML_URL)
1618 1619

xml: libxml2-$(XML_VERSION).tar.gz
1620
	$(EXTRACT_GZ)
Jean-Paul Saman's avatar
Jean-Paul Saman committed
1621 1622 1623
ifdef HAVE_UCLIBC
	patch -p0 < Patches/xml2-uclibc.patch
endif
1624

1625
XMLCONF = --with-minimal --with-catalog --with-reader --with-tree --with-push --with-xptr --with-valid --with-xpath --with-xinclude --with-sax1 --without-zlib --without-iconv --without-http --without-ftp  --without-debug --without-docbook --without-regexps --without-python
1626

1627
.xml: xml
1628
  ifdef HAVE_CYGWIN
1629
	(cd xml; ac_cv_header_pthread_h="no" CFLAGS="-DLIBXML_STATIC" $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(XMLCONF) && make && make install)
1630
  else
1631
	(cd xml; CFLAGS="-DLIBXML_STATIC" $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(XMLCONF) && make && make install)
1632
  endif
1633
ifndef HAVE_DARWIN_OS
1634
	$(INSTALL_NAME)
1635
endif
1636
	touch $@
1637 1638 1639 1640 1641

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

1642 1643 1644 1645 1646
# ***************************************************************************
# twolame
# ***************************************************************************

twolame-$(TWOLAME_VERSION).tar.gz:
1647
	$(WGET) $(TWOLAME_URL)
1648 1649

twolame: twolame-$(TWOLAME_VERSION).tar.gz
1650
	$(EXTRACT_GZ)
Christophe Mutricy's avatar
Christophe Mutricy committed
1651
ifdef HAVE_WIN32
1652
	(cd twolame/win32; $(WGET) "http://twolame.svn.sourceforge.net/viewvc/*checkout*/twolame/trunk/win32/winutil.h")
1653
endif
1654 1655

.twolame: twolame
1656
	(cd twolame; $(HOSTCC) CFLAGS="${CFLAGS}  -DLIBTWOLAME_STATIC" ./configure $(HOSTCONF) --prefix=$(PREFIX) &&  make && make install)
1657 1658
	$(INSTALL_NAME)
	touch $@
1659 1660 1661

CLEAN_FILE += .twolame
CLEAN_PKG += twolame
1662
DISTCLEAN_PKG += twolame-$(TWOLAME_VERSION).tar.gz
1663 1664 1665 1666 1667 1668

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

libpng-$(PNG_VERSION).tar.bz2:
1669
	$(WGET) $(PNG_URL)
1670 1671

libpng: libpng-$(PNG_VERSION).tar.bz2
1672
	$(EXTRACT_BZ2)
1673
ifdef HAVE_WIN32
1674
	(cd $@; cat ../Patches/libpng-win32.patch | sed s,??PREFIX??,$(PREFIX), | patch -p0)
1675
else
1676
	(cat Patches/libpng-osx.patch | sed -e 's%??PREFIX??%$(PREFIX)%' -e 's%??EXTRA_CFLAGS??%$(EXTRA_CFLAGS)%' -e 's%??EXTRA_LDFLAGS??%$(EXTRA_LDFLAGS)%' | patch -p0)
1677
endif
Rafaël Carré's avatar
Rafaël Carré committed
1678
	(patch -p0 < Patches/libpng-makefile.patch)
1679
ifdef HAVE_DARWIN_OS_ON_INTEL
Rafaël Carré's avatar
Rafaël Carré committed
1680
	(patch -p0 < Patches/libpng-darwin-mactel.patch)
1681
endif
1682

1683
.png: libpng .zlib
1684
ifdef HAVE_DARWIN_OS
1685
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1686 1687
else
ifdef HAVE_WIN32
1688
	(cd $<; rm -f INSTALL; cp scripts/makefile.cygwin Makefile && make $(HOSTCC) && make install-static)
1689 1690
else
ifeq ($(PNG_VERSION),1.2.8)
1691
	(cd $<; PREFIX=$(PREFIX) DESTDIR=$(PREFIX) cp scripts/makefile.linux Makefile && make && make install)
1692
else
1693
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
1694
endif
1695
endif
1696
endif
1697 1698
	$(INSTALL_NAME)
	touch $@
1699 1700 1701

CLEAN_FILE += .png
CLEAN_PKG += libpng
1702
DISTCLEAN_PKG += libpng-$(PNG_VERSION).tar.bz2
1703 1704 1705 1706 1707 1708

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

zvbi-$(ZVBI_VERSION).tar.bz2:
1709
	$(WGET) $(ZVBI_URL)
1710 1711

zvbi: zvbi-$(ZVBI_VERSION).tar.bz2
1712
	$(EXTRACT_BZ2)
1713
ifdef HAVE_WIN32
1714
	(cd $@; patch -p1 < ../Patches/zvbi-win32.patch; patch -p1 < ../Patches/zvbi-makefile.patch; autoreconf -ivf)
1715
endif
1716

1717 1718 1719
ifdef HAVE_WIN32
.zvbi: zvbi .pthreads
else
1720
.zvbi: zvbi
1721
endif
1722
ifdef HAVE_DARWIN_OS
1723
	(cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -fnested-functions" && make && make install)
1724 1725
else
ifdef HAVE_WIN32
1726
	(cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -DPTW32_STATIC_LIB --std=gnu99"  && make && make install)
1727
else
1728
	(cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" && make -C src && make -C src install)
1729
endif
1730
endif
1731
	$(INSTALL_NAME)
1732
	touch $@
1733 1734 1735

CLEAN_FILE += .zvbi
CLEAN_PKG += zvbi
1736
DISTCLEAN_PKG += zvbi-$(ZVBI_VERSION).tar.bz2
1737 1738

# ***************************************************************************
1739 1740 1741 1742 1743 1744 1745 1746 1747
# libraw1394
# ***************************************************************************

libraw1394-$(LIBRAW1394_VERSION).tar.gz:
	$(WGET) $(LIBRAW1394_URL)

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

1748
.raw1394: libraw1394
1749
	(cd $<; ./configure --prefix=$(PREFIX) && make && make DESTDIR=$(PREFIX) install)
1750
#	sed 's/^typedef u_int8_t  byte_t;/\/* typedef u_int8_t  byte_t;\*\//'
1751
	touch $@
1752

1753
CLEAN_FILE += .raw1394
1754
CLEAN_PKG += libraw1394
1755
DISTCLEAN_PKG += libraw1394-$(LIBRAW1394_VERSION).tar.gz
1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766

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

libdc1394-$(LIBDC1394_VERSION).tar.gz:
	$(WGET) $(LIBDC1394_URL)

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

1767
.dc1394: libdc1394
1768 1769
	(cd $<; ./configure --prefix=$(PREFIX) && \
	 patch -p1 < ../Patches/libdc1394-noexamples.patch && \
1770
	 make && make DESTDIR=$(PREFIX) install)
1771
	touch $@
1772

1773
CLEAN_FILE += .dc1394
1774
CLEAN_PKG += libdc1394
1775
DISTCLEAN_PKG += libdc1394-$(LIBDC1394_VERSION).tar.gz
1776 1777

# ***************************************************************************
1778
# gpg-error
1779 1780
# ***************************************************************************

1781
libgpg-error-$(GPGERROR_VERSION).tar.bz2:
1782
	$(WGET) $(GPGERROR_URL)
1783

1784 1785
libgpg-error: libgpg-error-$(GPGERROR_VERSION).tar.bz2
	$(EXTRACT_BZ2)
1786

1787
.gpg-error: libgpg-error
1788
ifdef HAVE_DARWIN_OS_ON_INTEL
1789
	(cd $<; ./autogen.sh)
1790
endif
1791
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-nls --disable-shared --disable-languages && make && make install)
1792 1793
#	$(INSTALL_NAME)
	touch $@
1794

1795
CLEAN_FILE += .gpg-error
1796
CLEAN_PKG += libgpg-error
1797
DISTCLEAN_PKG += libgpg-error-$(GPGERROR_VERSION).tar.bz2
1798 1799 1800 1801 1802

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

1803
libgcrypt-$(GCRYPT_VERSION).tar.bz2:
1804
	$(WGET) $(GCRYPT_URL)
1805

1806
libgcrypt: libgcrypt-$(GCRYPT_VERSION).tar.bz2
1807
	$(EXTRACT_BZ2)
Rafaël Carré's avatar
Rafaël Carré committed
1808
	patch -p0 < Patches/gcrypt.patch
1809

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

1812
.gcrypt: libgcrypt .gpg-error
1813
ifdef HAVE_WIN32
1814
	(cd $<; ./autogen.sh && $(HOSTCC) ./configure $(HOSTCONF) --target=i586-mingw32msvc --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(CIPHDIG) --disable-shared --enable-static --disable-nls && make && make install)
1815
else
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1816
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS) -lgpg-error" $(CIPHDIG) && make && make install)
1817
endif
1818 1819
	$(INSTALL_NAME)
	touch $@
1820 1821 1822

CLEAN_FILE += .gcrypt
CLEAN_PKG += libgcrypt
1823
DISTCLEAN_PKG += libgcrypt-$(GCRYPT_VERSION).tar.bz2
1824

1825 1826 1827 1828 1829 1830 1831
# ***************************************************************************
# opencdk (requires by gnutls 2.x)
# ***************************************************************************

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

1832
opencdk: opencdk-$(OPENCDK_VERSION).tar.bz2
1833 1834 1835 1836 1837 1838 1839 1840 1841 1842
	$(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

1843 1844 1845 1846 1847
# ***************************************************************************
# gnutls
# ***************************************************************************

gnutls-$(GNUTLS_VERSION).tar.bz2:
1848
	$(WGET) $(GNUTLS_URL)
1849 1850

gnutls: gnutls-$(GNUTLS_VERSION).tar.bz2
1851
	$(EXTRACT_BZ2)
1852
ifdef HAVE_WIN32
1853
	patch -p0 < Patches/gnutls-win32.patch
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1854
	(cd $@; autoreconf)
1855
endif
1856

1857
.gnutls: gnutls .gcrypt .gpg-error
1858
ifdef HAVE_WIN32
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
1859
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --target=i586-mingw32msvc --disable-cxx -disable-shared --enable-static --disable-nls --with-included-opencdk --with-included-libtasn1 &&  cd gl && make && cd ../lib && make && make install )
1860
else
1861
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --disable-cxx --with-included-opencdk --disable-guile && make && make install)
1862
endif
1863 1864
	$(INSTALL_NAME)
	touch $@
1865 1866 1867

CLEAN_FILE += .gnutls
CLEAN_PKG += gnutls
1868
DISTCLEAN_PKG += gnutls-$(GNUTLS_VERSION).tar.bz2
1869 1870 1871 1872 1873 1874

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

libopendaap-$(DAAP_VERSION).tar.bz2:
1875
	$(WGET) $(DAAP_URL)
1876 1877

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

1881
.opendaap: libopendaap
1882 1883 1884
	(cd $<; ./configure --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" && make install)
	$(INSTALL_NAME)
	touch $@
1885

1886
CLEAN_FILE += .opendaap
1887
CLEAN_PKG += libopendaap
1888
DISTCLEAN_PKG += libopendaap-$(DAAP_VERSION).tar.bz2
1889 1890 1891 1892 1893

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

1894
glib-$(GLIB_VERSION).tar.bz2:
1895
	$(WGET) $(GLIB_URL)
1896

1897 1898
glib: glib-$(GLIB_VERSION).tar.bz2
	$(EXTRACT_BZ2)
1899
	(cd $@; patch -p0 < ../Patches/glib-remove-gtkdoc.patch)
1900
ifdef HAVE_DARWIN_64
1901 1902
	(cd $@; patch -p0 < ../Patches/glib-Darwin64.patch)
endif
1903 1904

.glib: glib
1905
	(cd $<; sh autogen.sh --prefix=$(PREFIX) --host=$(HOST) && make && make install)
1906
	touch $@
1907

1908
CLEAN_FILE += .glib
1909
CLEAN_PKG += glib
1910
DISTCLEAN_PKG += glib-$(GLIB_VERSION).tar.gz
1911 1912 1913 1914 1915

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

1916
libIDL-$(LIBIDL_VERSION).tar.bz2:
1917
	$(WGET) $(LIBIDL_URL)
1918

1919 1920
libIDL: libIDL-$(LIBIDL_VERSION).tar.bz2
	$(EXTRACT_BZ2)
1921

1922
.IDL: libIDL
1923
	(cd $<; ./configure --prefix=$(PREFIX) --host=$(HOST) && make && make install )
1924
	touch $@
1925

1926
CLEAN_FILE += .IDL
1927
CLEAN_PKG += libIDL
1928
DISTCLEAN_PKG += libIDL-$(LIBIDL_VERSION).tar.gz
1929

1930 1931 1932 1933
# ***************************************************************************
# Gecko SDK
# ***************************************************************************

1934
gecko-sdk-ppc-macosx10.2-1.7.5.tar.gz:
1935
	$(WGET) $(GECKO_SDK_MAC_URL)
1936

1937 1938
gecko-sdk: gecko-sdk-ppc-macosx10.2-1.7.5.tar.gz
	$(EXTRACT_GZ)
1939 1940

.gecko: gecko-sdk
1941 1942
	rm -rf $(PREFIX)/gecko-sdk
	mv gecko-sdk $(PREFIX)
1943
	mkdir gecko-sdk #creating an empty dir is faster than copying the whole dir
1944 1945
	(cd $<)
	touch $@
1946 1947 1948

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

1951 1952 1953 1954
# ***************************************************************************
# Gecko SDK win32
# ***************************************************************************

1955
gecko-sdk-i586-pc-msvc-1.8b1.zip:
1956
	$(WGET) $(GECKO_SDK_WIN32_URL)
1957 1958

libIDL-0.6.3-win32-bin.zip:
1959
	$(WGET) $(LIBIDL_WIN32_BIN_URL)
1960

1961
glib-19990228.zip:
1962
	$(WGET) $(GLIB_WIN32_BIN_URL)
1963

1964
.gecko-win32: gecko-sdk-i586-pc-msvc-1.8b1.zip libIDL-0.6.3-win32-bin.zip glib-19990228.zip
1965
	unzip gecko-sdk-i586-pc-msvc-1.8b1.zip
1966 1967 1968 1969 1970
	rm -rf $(PREFIX)/gecko-sdk
	mv gecko-sdk $(PREFIX)
	unzip -j libIDL-0.6.3-win32-bin.zip libIDL-0.6.3-win32-bin/libIDL-0.6.dll -d $(PREFIX)/gecko-sdk/bin
	unzip glib-19990228.zip glib-1.2.dll -d $(PREFIX)/gecko-sdk/bin
	chmod a+x $(PREFIX)/gecko-sdk/bin/*
1971
	touch $@
1972 1973 1974

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

1977
# ***************************************************************************
1978
# mozilla-macosx
1979 1980 1981 1982
#
# Note that this dependency needs to be compiled against the 10.4u SDK using
# using GCC-4.0. Using newer releases of one of these won't lead to a 
# successful compilation! Adapt the respective variables in ../config.mak!
1983 1984
# ***************************************************************************

1985
firefox-$(MOZILLA_VERSION)-source.tar.bz2:
1986
	$(WGET) $(MOZILLA_URL)
1987

1988
mozilla: firefox-$(MOZILLA_VERSION)-source.tar.bz2
1989
	$(EXTRACT_BZ2)
1990
	(cd $@; patch -p0 < ../Patches/firefox-darwin.patch)
1991

1992 1993 1994 1995 1996 1997
.mozilla-macosx: mozilla .glib .IDL
	ifneq($(SDK_TARGET),"10.4")
	echo "Compiling the mozilla target requires the 10.4 SDK!"
	exit -1
	endif
	(cd $<; ./configure --prefix=$(PREFIX)/gecko-sdk-new --enable-default-toolkit=cairo-cocoa --enable-standalone-modules=xpcom,plugin  --enable-application=xulrunner && make && make install)
1998
	touch $@
1999

2000
CLEAN_FILE += .mozilla-macosx
2001 2002
CLEAN_PKG += mozilla
DISTCLEAN_PKG += firefox-source-$(MOZILLA_VERSION).tar.bz2
2003

2004 2005 2006 2007
# ***************************************************************************
# libjpeg
# ***************************************************************************

2008
jpegsrc.v$(JPEG_VERSION).tar.gz:
2009
	$(WGET) $(JPEG_URL)
2010

2011
jpeg-7: jpegsrc.v$(JPEG_VERSION).tar.gz
2012
	$(EXTRACT_GZ)
2013

2014 2015
.jpeg: jpeg-7
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(HOSTCC) && make && make install)
2016 2017
	$(RANLIB) $(PREFIX)/lib/libjpeg.a
	touch $@
2018 2019

CLEAN_FILE += .jpeg
2020 2021
CLEAN_PKG += jpeg-7
DISTCLEAN_PKG += jpegsrc.v$(JPEG_VERSION).tar.gz
2022 2023 2024 2025 2026 2027

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

tiff-$(TIFF_VERSION).tar.gz:
2028
	$(WGET) $(TIFF_URL)
2029

2030
tiff: tiff-$(TIFF_VERSION).tar.gz
2031
	$(EXTRACT_GZ)
2032 2033

.tiff: tiff
2034
ifdef HAVE_WIN32
2035
	(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)
2036
else
2037
	(cd $<; ./configure --with-CFLAGS="$(CFLAGS)" --with-JPEG=no --with-ZIP=no --prefix=$(PREFIX) && make -C port &&make -C libtiff && make -C libtiff install)
2038
endif
2039
	$(INSTALL_NAME)
2040
	touch $@
2041 2042 2043 2044 2045 2046

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

# ***************************************************************************
2047
# LibSDL
2048 2049
# ***************************************************************************

2050
ifndef HAVE_DARWIN_OS
2051
SDL-$(SDL_VERSION).tar.gz:
2052
	$(WGET) $(SDL_URL)
2053

2054
SDL: SDL-$(SDL_VERSION).tar.gz
2055
	$(EXTRACT_GZ)
2056
else
2057
SDL:
2058 2059 2060
	$(SVN) co http://svn.libsdl.org/trunk/SDL -r 4444 SDL
	(cd $@; sh autogen.sh)
endif
2061 2062

.SDL: SDL
2063 2064 2065
	(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 $@
2066 2067 2068 2069 2070 2071 2072 2073 2074 2075

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

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

SDL_image-$(SDL_IMAGE_VERSION).tar.gz:
2076
	$(WGET) $(SDL_IMAGE_URL)
2077

2078
SDL_image: SDL_image-$(SDL_IMAGE_VERSION).tar.gz
2079
	$(EXTRACT_GZ)
Rafaël Carré's avatar
Rafaël Carré committed
2080
	patch -p0 < Patches/SDL_image.patch
2081 2082

.SDL_image: SDL_image .SDL .png .jpeg .tiff
2083 2084 2085
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --enable-tif --disable-sdltest && make && make install)
	$(INSTALL_NAME)
	touch $@
2086 2087 2088 2089 2090

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

2091 2092 2093 2094 2095
# ***************************************************************************
# Musepack decoder library (libmpcdec)
# ***************************************************************************

libmpcdec-$(MUSE_VERSION).tar.bz2:
2096
	$(WGET) $(MUSE_URL)
2097

2098
mpcdec: libmpcdec-$(MUSE_VERSION).tar.bz2
2099
	$(EXTRACT_BZ2)
2100
	patch -p0 < Patches/mpcdec.patch
2101
	(cd $@; autoreconf -ivf)
2102

2103
.mpcdec: mpcdec
2104
ifdef HAVE_WIN32
2105
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS=-D_PTRDIFF_T=mpc_int32_t && make && make install)
2106
else
2107
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
2108 2109
endif
ifdef HAVE_DARWIN_OS
2110
	$(INSTALL_NAME)
2111
endif
2112
	touch $@
2113

2114 2115
CLEAN_FILE += .mpcdec
CLEAN_PKG += mpcdec
2116 2117
DISTCLEAN_PKG += libmpcdec-$(MUSE_VERSION).tar.bz2

2118
# ***************************************************************************
2119 2120
# Dirac
# ***************************************************************************
2121 2122

dirac-$(DIRAC_VERSION).tar.gz:
2123
	$(WGET) $(DIRAC_URL)
2124 2125

dirac: dirac-$(DIRAC_VERSION).tar.gz
2126
	$(EXTRACT_GZ)
2127
ifdef HAVE_CYGWIN
2128
	# incorrect compile warning with cygwin compiler 3.4.4
2129
	patch -p0 < Patches/dirac-cygwin.patch
2130
endif
2131
	patch -p0 < Patches/dirac-noutils.patch
2132
	(cd $@; ./bootstrap)
2133

2134 2135 2136 2137
DIRAC_SUBDIRS = libdirac_byteio libdirac_common libdirac_motionest libdirac_encoder libdirac_decoder

ifdef HAVE_WIN32
DIRAC_SUBDIRS += win32
2138
endif
2139

2140
.dirac: dirac
2141
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)  CFLAGS="$(CFLAGS)" && DOC_DIR="" make $(DIRAC_SUBDIRS) && DOC_DIR="" make install)
2142
	touch $@
2143 2144 2145

# for MacOS X, dirac is split into two libraries, which needs be installed using two targets
.dirac_encoder: .dirac
2146 2147
	$(INSTALL_NAME)
	touch $@
2148 2149

.dirac_decoder: .dirac
2150 2151
	$(INSTALL_NAME)
	touch $@
2152 2153 2154 2155 2156 2157 2158 2159 2160

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

# *************************************************************************
# DirectX headers
# *************************************************************************
win32-dx7headers.tgz:
2161
	$(WGET) $(DX_HEADERS_URL)
2162
.dx_headers: win32-dx7headers.tgz
2163
	tar xzf $< -C $(PREFIX)/include
2164
	touch $@
2165 2166
CLEAN_FILE += .dx_headers
DISTCLEAN_PKG += win32-dx7headers.tgz
2167

2168 2169 2170 2171
# *************************************************************************
# DirectShow headers
# *************************************************************************
dshow-headers.tgz:
2172
	$(WGET) $(DSHOW_HEADERS_URL)
2173 2174 2175 2176 2177

dxva2api.h:
	$(WGET) $(DXVA2_URL)

.dshow_headers: dshow-headers.tgz dxva2api.h
2178 2179
	tar xzf $< -C $(PREFIX)/include
	cp dxva2api.h $(PREFIX)/include
2180
	touch $@
2181

2182
CLEAN_FILE += .dshow_headers
2183
DISTCLEAN_PKG += dshow-headers.tgz dxva2api.h
2184 2185 2186 2187 2188 2189

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

expat-$(EXPAT_VERSION).tar.gz:
2190
	$(WGET) $(EXPAT_URL)
2191 2192

expat: expat-$(EXPAT_VERSION).tar.gz
2193
	$(EXTRACT_GZ)
2194 2195

.expat: expat
2196
ifdef HAVE_DARWIN_OS
2197
	(cd $< aclocal --force && libtoolize --force && autoconf --force && autoheader --force )
2198
endif
2199 2200
	(cd $<; ./configure --prefix=$(PREFIX) && make && make install)
	touch $@
2201 2202 2203 2204 2205 2206 2207 2208 2209 2210

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

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

clinkcc$(CLINKCC_VERSION).tar.gz:
2211
	$(WGET) $(CLINKCC_URL)
2212 2213

clinkcc: clinkcc$(CLINKCC_VERSION).tar.gz
2214 2215 2216
	tar xzf $<
	mv $(patsubst %.tar.gz,Cyberlink,$(patsubst %.tgz,Cyberlink,$(notdir $<))) $@ || true
	touch $@
Rafaël Carré's avatar
Rafaël Carré committed
2217
	patch -p0 < Patches/clinkcc.patch
2218
ifdef HAVE_DARWIN_OS
Rafaël Carré's avatar
Rafaël Carré committed
2219
	patch -p0 < Patches/clinkcc_osx.patch
2220
endif
2221
	(cd $@; ./bootstrap)
2222 2223

.clinkcc: clinkcc
2224
	(cd $<;./configure --prefix=$(PREFIX) --enable-expat && make && chmod 755 config/install-sh && make install )
2225
	touch $@
2226 2227 2228

CLEAN_FILE += .clinkcc
CLEAN_PKG += clinkcc
2229
DISTCLEAN_PKG += clinkcc$(CLINKCC_VERSION).tar.gz
2230

2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241
# ***************************************************************************
# YASM assembler
# ***************************************************************************

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

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

.yasm: yasm
2242
	(cd $< && $(HOSTCC) ./configure --prefix=$(PREFIX) --host=$(HOST) && make && make install)
2243 2244 2245 2246
	touch $@

CLEAN_FILE += .yasm
CLEAN_PKG += yasm
2247
DISTCLEAN_PKG += yasm-$(YASM_VERSION).tar.gz
2248

2249
# ***************************************************************************
2250 2251 2252 2253 2254 2255 2256 2257 2258 2259
# kate
# ***************************************************************************

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

libkate: libkate-$(KATE_VERSION).tar.gz
	$(EXTRACT_GZ)

.kate: libkate .ogg
2260
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-valgrind --disable-doc && make && make install)
2261 2262 2263 2264 2265 2266 2267
	$(INSTALL_NAME)
	touch $@

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

ogg.k.ogg.k's avatar
ogg.k.ogg.k committed
2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286
# ***************************************************************************
# tiger
# ***************************************************************************

libtiger-$(TIGER_VERSION).tar.gz:
	$(WGET) $(TIGER_URL)

libtiger: libtiger-$(TIGER_VERSION).tar.gz
	$(EXTRACT_GZ)

.tiger: libtiger .kate
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
	$(INSTALL_NAME)
	touch $@

CLEAN_FILE += .tiger
CLEAN_PKG += libtiger
DISTCLEAN_PKG += libtiger-$(TIGER_VERSION).tar.gz

2287
# ***************************************************************************
2288 2289 2290 2291 2292 2293
# Copy aclocal files
# This is necessary for --missing aclocal to succeed after a
# configure.ac/Makefile.am change in the vlc root dir
# **************************************************************************

.aclocal:
2294
	cp -R $(PREFIX)/share/aclocal/* ../../../m4/
2295
	touch $@
2296

Felix Paul Kühne's avatar
Felix Paul Kühne committed
2297
CLEAN_FILE += .aclocal
2298

2299 2300 2301 2302 2303
# ***************************************************************************
# TagLib read and editing of tags of popular audio formats
# ***************************************************************************

taglib-$(TAGLIB_VERSION).tar.gz:
2304
	$(WGET) $(TAGLIB_URL)
2305 2306

taglib: taglib-$(TAGLIB_VERSION).tar.gz
2307
	$(EXTRACT_GZ)
2308
ifdef HAVE_WIN32
2309
	patch -p0 < Patches/taglib-static.patch
2310
endif
2311
ifdef HAVE_CYGWIN
2312
	patch -p0 < Patches/taglib-cygwin.patch
2313
endif
2314 2315

.tag: taglib
2316
	(cd $<; $(HOSTCC)  ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
2317 2318
	$(INSTALL_NAME)
	touch $@
2319

2320 2321 2322 2323 2324 2325 2326
CLEAN_FILE += .tag
CLEAN_PKG += taglib
DISTCLEAN_PKG += taglib-$(TAGLIB_VERSION).tar.gz

# ***************************************************************************
# pthreads for win32
# ***************************************************************************
Christophe Mutricy's avatar
Christophe Mutricy committed
2327 2328 2329 2330 2331 2332

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

pthreads: pthreads-w32-$(PTHREADS_VERSION)-release.tar.gz
	$(EXTRACT_GZ)
Hannes Domani's avatar
Hannes Domani committed
2333
	(cd $@; patch -p0 < ../Patches/pthreads-detach.patch)
Christophe Mutricy's avatar
Christophe Mutricy committed
2334 2335

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

2340 2341 2342
CLEAN_FILE += .pthreads
CLEAN_PKG += pthreads
DISTCLEAN_PKG += pthreads-w32-$(PTHREADS_VERSION)-release.tar.gz
2343

2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354
# ***************************************************************************
# ncurses library (with wide chars support)
# ***************************************************************************

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

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

.ncurses: ncurses
Rafaël Carré's avatar
Rafaël Carré committed
2355 2356
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=/usr --without-debug --enable-widec --without-develop --without-shared && make -C ncurses && make -C include && make -C ncurses DESTDIR=$(PREFIX) install && make -C include DESTDIR=$(PREFIX) install)
	(cp -R $(PREFIX)/usr/* $(PREFIX) && rm -rf $(PREFIX)/usr)
2357 2358 2359 2360 2361
	touch $@

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

2363 2364 2365 2366 2367 2368 2369 2370 2371
# ***************************************************************************
# FluidSynth library (Midi)
# ***************************************************************************

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

fluidsynth: fluidsynth-$(FLUID_VERSION).tar.gz
	$(EXTRACT_GZ)
2372 2373
ifdef HAVE_WIN32
	patch -p0 < Patches/fluid-win32.patch
2374
	cd $@; ./autogen.sh || true
2375
endif
2376 2377

.fluid: fluidsynth
2378 2379 2380 2381 2382 2383 2384 2385
	cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) \
		--disable-ladspa \
		--disable-oss-support \
		--disable-alsa-support \
		--disable-midishare \
		--disable-jack-support \
		--disable-coreaudio \
		--disable-lash \
2386 2387
		--disable-ladcca \
		--without-readline
2388 2389
	cd $< && make
	cd $< && make install
2390 2391 2392 2393
	touch $@

CLEAN_FILE += .fluid
CLEAN_PKG += fluidsynth
2394
DISTCLEAN_PKG += fluidsynth-$(FLUID_VERSION).tar.gz
2395

2396 2397 2398 2399 2400 2401 2402 2403 2404
# ***************************************************************************
# liboil
# ***************************************************************************

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

liboil: liboil-$(OIL_VERSION).tar.gz
	$(EXTRACT_GZ)
2405
	patch -d liboil -p1 < Patches/liboil-noshared.patch
2406
	patch -d liboil -p1 < Patches/liboil-win64.patch
2407 2408 2409
	patch -d liboil -p1 < Patches/liboil-Xcompile.patch
	(cd $@; autoreconf)

2410
.liboil: liboil
2411
ifdef HAVE_DARWIN_OS
2412
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)")
2413 2414 2415 2416
else
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -O2")
endif
	(cd $<; make && make install)
2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431
	touch $@

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

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

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

schroedinger: schroedinger-$(SCHROED_VERSION).tar.gz
	$(EXTRACT_GZ)
2432
	patch -p0 < Patches/schroedinger-notests.patch
2433
	(cd $@; autoreconf -iv)
2434

2435
.schroedinger: schroedinger .liboil
2436
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --with-thread=none --disable-gtk-doc --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -O3" && make && make install)
2437 2438 2439 2440 2441
	touch $@

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

2443
# ***************************************************************************
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2444
# libass
2445 2446 2447 2448 2449
# ***************************************************************************

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

2450 2451
libass:
	$(GIT) clone $(ASS_GIT)
2452
	(cd $@; autoreconf -ivf)
2453

2454
.libass: libass .freetype
2455
	(cd $<; $(HOSTCC) ./configure --disable-png --disable-shared $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -O3" && make && make install)
2456 2457
	touch $@

2458 2459 2460
CLEAN_FILE += .libass
CLEAN_PKG += libass
DISTCLEAN_PKG += libass-$(ASS_VERSION).tar.bz2
2461

2462 2463 2464 2465
# ***************************************************************************
# Sparkle
# ***************************************************************************

Rafaël Carré's avatar
Rafaël Carré committed
2466
Sparkle-$(SPARKLE_VERSION).zip:
2467 2468
	$(WGET) $(SPARKLE_URL)

Rafaël Carré's avatar
Rafaël Carré committed
2469
.Sparkle: Sparkle-$(SPARKLE_VERSION).zip
2470 2471
	rm -rf $@ || true
	unzip $<
2472 2473
	rm -rf $(PREFIX)/Sparkle
	mv Sparkle $(PREFIX)
2474 2475 2476 2477
	touch $@

CLEAN_FILE += .Sparkle
CLEAN_PKG += Sparkle
2478
DISTCLEAN_PKG += Sparkle-$(SPARKLE_VERSION).zip
2479

2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497
# ***************************************************************************
# UPNP library
# ***************************************************************************

libupnp-$(UPNP_VERSION).tar.bz2:
	$(WGET) $(UPNP_URL)

libupnp: libupnp-$(UPNP_VERSION).tar.bz2
	$(EXTRACT_BZ2)

.libupnp: libupnp
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-samples --without-documentation --disable-webserver CFLAGS="$(CFLAGS) -O3" && make && make install)
	touch $@

CLEAN_FILE += .libupnp
CLEAN_PKG += libupnp
DISTCLEAN_PKG += libupnp-$(UPNP_VERSION).tar.bz2

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2498
# ***************************************************************************
2499
# GSM
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2500
# ***************************************************************************
2501 2502 2503 2504 2505 2506 2507 2508 2509 2510
gsm-$(GSM_VERSION).tar.gz:
	$(WGET) $(GSM_URL)

gsm: gsm-$(GSM_VERSION).tar.gz
	rm -rf $@ || true
	gunzip -c $< | tar xf - --exclude='[*?:<>\|]'
	mv gsm-1.0-* gsm || true
ifneq ($(HOST),$(BUILD))
	(patch -p0 < Patches/gsm-cross.patch)
endif
2511 2512 2513
ifdef HAVE_DARWIN_OS
	(cd $@; sed -e 's%-O2%-O2\ $(EXTRA_CFLAGS)\ $(EXTRA_LDFLAGS)%' -e 's%# LDFLAGS 	=%LDFLAGS 	= $(EXTRA_LDFLAGS)%' -e 's%gcc%$(CC)%' -i.orig  Makefile)
endif
2514 2515

.gsm: gsm
2516
	(cd $<; $(HOSTCC) make && mkdir -p $(PREFIX)/include/gsm && cp inc/gsm.h $(PREFIX)/include/gsm && cp lib/libgsm.a  $(PREFIX)/lib)
2517 2518 2519 2520 2521 2522
	touch $@

CLEAN_FILE += .gsm
CLEAN_PKG += gsm
DISTCLEAN_PKG += gsm-$(GSM_VERSION).tar.gz

2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533
# ***************************************************************************
### GLEW 
# ***************************************************************************
glew-$(GLEW_VERSION)-src.tgz:
	$(WGET) $(GLEW_URL)

glew: glew-$(GLEW_VERSION)-src.tgz
	$(EXTRACT_GZ)
	(patch -p0 < Patches/glew-win32.patch)

.glew: glew
2534 2535 2536 2537
	(cd $<; $(HOSTCC) CFLAGS="$(CFLAGS) -DGLEW_STATIC" make && $(HOSTCC) GLEW_DEST=$(PREFIX) make install)
ifdef HAVE_WIN32
	rm -rf $(PREFIX)/lib/libglew32.dll*
endif
2538 2539 2540 2541 2542 2543 2544
	touch $@

CLEAN_FILE += .glew
CLEAN_PKG += glew
DISTCLEAN_PKG += glew-$(GLEW_VERSION)-src.tgz


Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2545
# ***************************************************************************
2546
# projectM
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2547
# ***************************************************************************
2548
libprojectM-$(LIBPROJECTM_VERSION)-Source.tar.gz:
2549 2550
	$(WGET) $(LIBPROJECTM_URL)

2551 2552 2553 2554
libprojectM: libprojectM-$(LIBPROJECTM_VERSION)-Source.tar.gz
	rm -rf $@ || true
	gunzip -c $< | tar xf - --exclude='[*?:<>\|]'
	mv projectM-$(LIBPROJECTM_VERSION)-Source $@ || true
2555
	patch -p0 < Patches/libprojectM-win32.patch
2556
	cd $@; rm CMakeCache.txt
2557

2558
.libprojectM: libprojectM .glew
2559 2560 2561 2562
	(cd $<; $(HOSTCC) CPPFLAGS="$(CPPFLAGS)" cmake . -DCMAKE_TOOLCHAIN_FILE=../../toolchain.cmake -DINCLUDE-PROJECTM-LIBVISUAL:BOOL=OFF -DDISABLE_NATIVE_PRESETS:BOOL=ON -DUSE_FTGL:BOOL=OFF -DINCLUDE-PROJECTM-PULSEAUDIO:BOOL=OFF -DINCLUDE-PROJECTM-QT:BOOL=OFF -DBUILD_PROJECTM_STATIC:BOOL=ON -DCMAKE_INSTALL_PREFIX=$(PREFIX) && make install)
ifdef HAVE_WIN32
	(cd $<;cp Renderer/libRenderer.a MilkdropPresetFactory/libMilkdropPresetFactory.a $(PREFIX)/lib)
endif
2563 2564 2565 2566
	touch $@

CLEAN_FILE += .libprojectM
CLEAN_PKG += libprojectM
2567
DISTCLEAN_PKG += libprojectM-$(LIBPROJECTM_VERSION)-Source.tar.gz
2568

2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583
# ***************************************************************************
# X11 C Bindings
# ***************************************************************************

libxcb-$(XCB_VERSION).tar.bz2:
	$(WGET) $(XCB_URL)/$@

libxcb: libxcb-$(XCB_VERSION).tar.bz2
	-rm -rf $@
	bzcat $< | tar xf -
	mv libxcb-$(XCB_VERSION) $@
	touch $@

.xcb: libxcb
	cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) \
2584
		--disable-shared \
2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607
		--disable-composite \
		--disable-damage \
		--disable-dpms \
		--disable-glx \
		--enable-randr \
		--disable-record \
		--enable-render \
		--disable-resource \
		--disable-screensaver \
		--disable-shape \
		--enable-shm \
		--disable-sync \
		--disable-xevie \
		--disable-xfixes \
		--disable-xfree86-dri \
		--disable-xinerama \
		--disable-xinput \
		--disable-xprint \
		--disable-selinux \
		--disable-xtest \
		--enable-xv \
		--disable-xvmc \
		--disable-build-docs
2608 2609
	cd $< && make
	cd $< && sed -i -e s,^Requires.private:,Requires:,g xcb.pc
2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626
	cd $< && make install
	touch $@

xcb-util-$(XCB_UTIL_VERSION).tar.bz2:
	$(WGET) $(XCB_UTIL_URL)/$@

xcb-util: xcb-util-$(XCB_UTIL_VERSION).tar.bz2
	-rm -rf $@
	bzcat $< | tar xf -
	mv xcb-util-$(XCB_UTIL_VERSION) $@
	touch $@

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

2627
CLEAN_FILE += .xcb-util .xcb
2628 2629 2630
CLEAN_PKG += xcb-util xcb
DISTCLEAN_PKG += xcb-util-$(XCB_UTIL_VERSION).tar.bz2 libxcb-$(XCB_VERSION).tar.bz2

2631 2632 2633 2634
# ***************************************************************************
# Peflags utility (Windows only)
# ***************************************************************************

2635 2636 2637
peflags/peflags.c:
	mkdir -p peflags
	cd peflags && $(WGET) $(PEFLAGS_URL)/peflags.c
2638

2639
.peflags: peflags/peflags.c
2640 2641 2642
	cd peflags && gcc peflags.c -o peflags
	install -d $(PREFIX)/bin
	cd peflags && install ./peflags $(PREFIX)/bin
Rafaël Carré's avatar
Rafaël Carré committed
2643 2644
	touch $@

2645
CLEAN_PKG += peflags
2646
CLEAN_FILE += .peflags
2647

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2648
# ***************************************************************************
2649
# Regex
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2650
# ***************************************************************************
2651 2652 2653 2654 2655 2656 2657 2658
regex-$(REGEX_VERSION).tar.gz:
	$(WGET) $(REGEX_URL)

regex: regex-$(REGEX_VERSION).tar.gz
	$(EXTRACT_GZ)

.regex: regex
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make subirs= && $(AR) ru libregex.a regex.o && $(RANLIB) libregex.a && cp -v regex.h $(PREFIX)/include && cp -v libregex.a $(PREFIX)/lib )
2659
	touch $@
2660 2661 2662 2663 2664

CLEAN_FILE += .regex
CLEAN_PKG += regex
DISTCLEAN_PKG += regex-$(REGEX_VERSION).tar.gz

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2665
# ***************************************************************************
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2666
# SQLite
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2667
# ***************************************************************************
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2668 2669 2670 2671 2672 2673 2674 2675
sqlite-amalgamation-$(SQLITE_VERSION).tar.gz:
	$(WGET) $(SQLITE_URL)

sqlite-$(SQLITE_VERSION): sqlite-amalgamation-$(SQLITE_VERSION).tar.gz
	$(EXTRACT_GZ)

.sqlite3: sqlite-$(SQLITE_VERSION)
	(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install )
2676
	touch $@
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2677 2678

CLEAN_FILE += .sqlite3
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2679
CLEAN_PKG += sqlite-$(SQLITE_VERSION)
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
2680 2681 2682
DISTCLEAN_PKG += sqlite-amalgamation-$(SQLITE_VERSION).tar.gz


2683
# ***************************************************************************
2684
# Some cleaning
2685 2686 2687
# ***************************************************************************

clean-dots: FORCE
2688
	rm -f $(CLEAN_FILE)
2689 2690

clean: clean-dots
2691
	rm -rf $(CLEAN_PKG)
2692 2693

clean-src: clean
2694
	rm -rf $(DISTCLEAN_PKG)
2695

2696
clean-svn:
2697
	rm -rf ffmpeg tremor x264 libdca pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz portaudio live555-$(LIVEDOTCOM_VERSION).tar.gz live libass
2698

2699
distclean: clean-src
2700

2701 2702 2703 2704
# ***************************************************************************
# Download all the sources and package unversionned copies of subversion trees
# ***************************************************************************

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