diff options
author | konablend <[email protected]> | 2012-09-07 20:10:37 +0000 |
---|---|---|
committer | konablend <[email protected]> | 2012-09-07 20:10:37 +0000 |
commit | 421129c9b2ae62557ef0afdcd82c0da750a1e000 (patch) | |
tree | 65d216511b3686c6c4ca268adc2d0b0f946245f2 | |
parent | f5bd3741a9df3d157a223650740bc0510cf1e18a (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.defs | 4 | ||||
-rw-r--r-- | contrib/autoconf/module.rules | 2 | ||||
-rw-r--r-- | contrib/automake/module.defs | 4 | ||||
-rw-r--r-- | contrib/automake/module.rules | 2 | ||||
-rw-r--r-- | contrib/libtool/module.defs | 4 | ||||
-rw-r--r-- | contrib/libtool/module.rules | 2 | ||||
-rw-r--r-- | contrib/m4/module.defs | 4 | ||||
-rw-r--r-- | contrib/m4/module.rules | 2 | ||||
-rw-r--r-- | make/configure.py | 32 | ||||
-rw-r--r-- | make/include/contrib.defs | 3 | ||||
-rw-r--r-- | make/include/main.defs | 12 |
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 |