summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkonablend <[email protected]>2012-09-07 20:10:37 +0000
committerkonablend <[email protected]>2012-09-07 20:10:37 +0000
commit421129c9b2ae62557ef0afdcd82c0da750a1e000 (patch)
tree65d216511b3686c6c4ca268adc2d0b0f946245f2
parentf5bd3741a9df3d157a223650740bc0510cf1e18a (diff)
Add autotools { autoconf, automake, libtool } as contribs.
Primarily necessary for OSX platform after Xcode 4.2.x, but also useful for any platform which is missing or has obsolete versions. 1. add configure option: --enable-local-autotools 2. --enable-local-autotools is automatically TRUE when any of { autoconf, automake, libtool } are not found in path. 3. --enable-local-autotools causes contribs of { m4, autoconf, automake, lib tool } to be built 4. add m4 to contrib (prerequisite for autoconf) 5. add autoconf to contrib (prerequisite for automaker and many contribs) 6. add automake to contrib (prerequisite for many contribs) 7. add libtool to contrib (prerequisite for many contribs) 8. All contribs (except the autotools themselves) automatically mark autotools as a prerequisite. 9. $(AUTOTOOL_MODULES) is available if other non-contrib modules need to mark as prerequisite. 10. PATH is automatically prefixed with contrib/bin for all modules, all targets. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4933 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--contrib/autoconf/module.defs4
-rw-r--r--contrib/autoconf/module.rules2
-rw-r--r--contrib/automake/module.defs4
-rw-r--r--contrib/automake/module.rules2
-rw-r--r--contrib/libtool/module.defs4
-rw-r--r--contrib/libtool/module.rules2
-rw-r--r--contrib/m4/module.defs4
-rw-r--r--contrib/m4/module.rules2
-rw-r--r--make/configure.py32
-rw-r--r--make/include/contrib.defs3
-rw-r--r--make/include/main.defs12
11 files changed, 58 insertions, 13 deletions
diff --git a/contrib/autoconf/module.defs b/contrib/autoconf/module.defs
new file mode 100644
index 000000000..c1c4140d9
--- /dev/null
+++ b/contrib/autoconf/module.defs
@@ -0,0 +1,4 @@
+$(eval $(call import.MODULE.defs,AUTOCONF,autoconf,M4))
+$(eval $(call import.CONTRIB.defs,AUTOCONF))
+
+AUTOCONF.FETCH.url = http://download.handbrake.fr/handbrake/contrib/autoconf-2.69.tar.bz2
diff --git a/contrib/autoconf/module.rules b/contrib/autoconf/module.rules
new file mode 100644
index 000000000..3132ae5a0
--- /dev/null
+++ b/contrib/autoconf/module.rules
@@ -0,0 +1,2 @@
+$(eval $(call import.MODULE.rules,AUTOCONF))
+$(eval $(call import.CONTRIB.rules,AUTOCONF))
diff --git a/contrib/automake/module.defs b/contrib/automake/module.defs
new file mode 100644
index 000000000..e553257da
--- /dev/null
+++ b/contrib/automake/module.defs
@@ -0,0 +1,4 @@
+$(eval $(call import.MODULE.defs,AUTOMAKE,automake,AUTOCONF))
+$(eval $(call import.CONTRIB.defs,AUTOMAKE))
+
+AUTOMAKE.FETCH.url = http://download.handbrake.fr/handbrake/contrib/automake-1.12.3.tar.bz2
diff --git a/contrib/automake/module.rules b/contrib/automake/module.rules
new file mode 100644
index 000000000..a33554e9c
--- /dev/null
+++ b/contrib/automake/module.rules
@@ -0,0 +1,2 @@
+$(eval $(call import.MODULE.rules,AUTOMAKE))
+$(eval $(call import.CONTRIB.rules,AUTOMAKE))
diff --git a/contrib/libtool/module.defs b/contrib/libtool/module.defs
new file mode 100644
index 000000000..492a36e70
--- /dev/null
+++ b/contrib/libtool/module.defs
@@ -0,0 +1,4 @@
+$(eval $(call import.MODULE.defs,LIBTOOL,libtool,AUTOCONF AUTOMAKE))
+$(eval $(call import.CONTRIB.defs,LIBTOOL))
+
+LIBTOOL.FETCH.url = http://download.handbrake.fr/handbrake/contrib/libtool-2.4.2.tar.bz2
diff --git a/contrib/libtool/module.rules b/contrib/libtool/module.rules
new file mode 100644
index 000000000..875b4594e
--- /dev/null
+++ b/contrib/libtool/module.rules
@@ -0,0 +1,2 @@
+$(eval $(call import.MODULE.rules,LIBTOOL))
+$(eval $(call import.CONTRIB.rules,LIBTOOL))
diff --git a/contrib/m4/module.defs b/contrib/m4/module.defs
new file mode 100644
index 000000000..1fd5b0aa4
--- /dev/null
+++ b/contrib/m4/module.defs
@@ -0,0 +1,4 @@
+$(eval $(call import.MODULE.defs,M4,m4))
+$(eval $(call import.CONTRIB.defs,M4))
+
+M4.FETCH.url = http://download.handbrake.fr/handbrake/contrib/m4-1.4.16.tar.bz2
diff --git a/contrib/m4/module.rules b/contrib/m4/module.rules
new file mode 100644
index 000000000..69c279563
--- /dev/null
+++ b/contrib/m4/module.rules
@@ -0,0 +1,2 @@
+$(eval $(call import.MODULE.rules,M4))
+$(eval $(call import.CONTRIB.rules,M4))
diff --git a/make/configure.py b/make/configure.py
index ed78d026d..b6fe3b60c 100644
--- a/make/configure.py
+++ b/make/configure.py
@@ -1111,6 +1111,8 @@ def createCLI():
h = IfHost( 'Build and use local yasm', '*-*-*', none=optparse.SUPPRESS_HELP ).value
grp.add_option( '--enable-local-yasm', default=False, action='store_true', help=h )
+ h = IfHost( 'Build and use local autotools', '*-*-*', none=optparse.SUPPRESS_HELP ).value
+ grp.add_option( '--enable-local-autotools', default=False, action='store_true', help=h )
cli.add_option_group( grp )
@@ -1269,15 +1271,18 @@ try:
else:
gmake = ToolProbe( 'GMAKE.exe', 'gmake', 'make' )
- m4 = ToolProbe( 'M4.exe', 'm4' )
- mkdir = ToolProbe( 'MKDIR.exe', 'mkdir' )
- patch = ToolProbe( 'PATCH.exe', 'gpatch', 'patch' )
- rm = ToolProbe( 'RM.exe', 'rm' )
- ranlib = ToolProbe( 'RANLIB.exe', 'ranlib' )
- strip = ToolProbe( 'STRIP.exe', 'strip' )
- tar = ToolProbe( 'TAR.exe', 'gtar', 'tar' )
- wget = ToolProbe( 'WGET.exe', 'wget', abort=False )
- yasm = ToolProbe( 'YASM.exe', 'yasm', abort=False )
+ m4 = ToolProbe( 'M4.exe', 'm4' )
+ mkdir = ToolProbe( 'MKDIR.exe', 'mkdir' )
+ patch = ToolProbe( 'PATCH.exe', 'gpatch', 'patch' )
+ rm = ToolProbe( 'RM.exe', 'rm' )
+ ranlib = ToolProbe( 'RANLIB.exe', 'ranlib' )
+ strip = ToolProbe( 'STRIP.exe', 'strip' )
+ tar = ToolProbe( 'TAR.exe', 'gtar', 'tar' )
+ wget = ToolProbe( 'WGET.exe', 'wget', abort=False )
+ yasm = ToolProbe( 'YASM.exe', 'yasm', abort=False )
+ autoconf = ToolProbe( 'AUTOCONF.exe', 'autoconf', abort=False )
+ automake = ToolProbe( 'AUTOMAKE.exe', 'automake', abort=False )
+ libtool = ToolProbe( 'LIBTOOL.exe', 'libtool', abort=False )
xcodebuild = ToolProbe( 'XCODEBUILD.exe', 'xcodebuild', abort=False )
lipo = ToolProbe( 'LIPO.exe', 'lipo', abort=False )
@@ -1335,9 +1340,13 @@ try:
action.run()
## enable local yasm when yasm probe fails
- if Tools.yasm.fail and not options.enable_local_yasm:
+ if not options.enable_local_yasm and Tools.yasm.fail:
options.enable_local_yasm = True
+ ## enable local autotools when any of { autoconf, automake, libtool } probe fails
+ if not options.enable_local_autotools and (Tools.autoconf.fail or Tools.automake.fail or Tools.libtool.fail):
+ options.enable_local_autotools = True
+
if build.system == 'mingw':
dlfcn_test = """
#include <dlfcn.h>
@@ -1499,7 +1508,8 @@ int main ()
doc.add( 'PREFIX/', cfg.prefix_final + os.sep )
doc.addBlank()
- doc.add( 'FEATURE.local_yasm', int( options.enable_local_yasm ) )
+ doc.add( 'FEATURE.local_yasm', int( options.enable_local_yasm ))
+ doc.add( 'FEATURE.local_autotools', int( options.enable_local_autotools ))
doc.add( 'FEATURE.asm', 'disabled' )
doc.add( 'FEATURE.gtk', int( not options.disable_gtk ))
doc.add( 'FEATURE.gtk.update.checks', int( not options.disable_gtk_update_checks ))
diff --git a/make/include/contrib.defs b/make/include/contrib.defs
index 9dfddea6e..963e98226 100644
--- a/make/include/contrib.defs
+++ b/make/include/contrib.defs
@@ -19,7 +19,8 @@ define import.CONTRIB.defs
##
$(1).src/ = $$(SRC/)contrib/$($(1).name)/
$(1).build/ = $$(CONTRIB.build/)$($(1).name)/
- $(1).deps = $$(foreach n,$($(1).prerequisites),$$($$n.INSTALL.target))
+ ## add prerequisites and autotool modules for all contribs
+ $(1).deps = $$(foreach n,$($(1).prerequisites) $(if $(filter $1,$(AUTOTOOL_MODULES)),,$(AUTOTOOL_MODULES)),$$($$n.INSTALL.target))
##
## target: fetch
diff --git a/make/include/main.defs b/make/include/main.defs
index df81a0fda..ff6e73f2a 100644
--- a/make/include/main.defs
+++ b/make/include/main.defs
@@ -8,6 +8,17 @@ include $(SRC/)make/include/tool.defs
###############################################################################
+ifeq (1,$(FEATURE.local_autotools))
+ MODULES += contrib/autoconf
+ MODULES += contrib/automake
+ MODULES += contrib/libtool
+ MODULES += contrib/m4
+ AUTOTOOL_MODULES = AUTOCONF AUTOMAKE LIBTOOL M4
+ PATH := $(call fn.ABSOLUTE,$(CONTRIB.build/)bin):$(PATH)
+else
+ AUTOTOOL_MODULES =
+endif
+
MODULES += contrib/a52dec
ifneq (,$(filter $(BUILD.system),cygwin mingw))
@@ -20,7 +31,6 @@ ifneq (,$(filter $(BUILD.system),darwin cygwin mingw))
MODULES += contrib/fribidi
endif
-
MODULES += contrib/faac
MODULES += contrib/ffmpeg
MODULES += contrib/fontconfig