jhbuild r2019 - in trunk: . doc/C jhbuild/modtypes modulesets
- From: apwingo svn gnome org
- To: svn-commits-list gnome org
- Subject: jhbuild r2019 - in trunk: . doc/C jhbuild/modtypes modulesets
- Date: Mon, 14 Apr 2008 14:48:03 +0100 (BST)
Author: apwingo
Date: Mon Apr 14 14:48:03 2008
New Revision: 2019
URL: http://svn.gnome.org/viewvc/jhbuild?rev=2019&view=rev
Log:
2008-04-14 Andy Wingo <wingo pobox com>
* jhbuild/modtypes/autotools.py (AutogenModule.do_configure):
Construct the autogen command line from an overridable template.
See #486949.
(AutogenModule): Add autogen_template initarg and member variable,
to override the default template.
(parse_autotools): Parse out an 'autogen-template' attribute.
* doc/C/jhbuild.xml: Doc autogen-template.
* modulesets/moduleset.dtd: Add autogen-template attr.
Modified:
trunk/ChangeLog
trunk/doc/C/jhbuild.xml
trunk/jhbuild/modtypes/autotools.py
trunk/modulesets/moduleset.dtd
Modified: trunk/doc/C/jhbuild.xml
==============================================================================
--- trunk/doc/C/jhbuild.xml (original)
+++ trunk/doc/C/jhbuild.xml Mon Apr 14 14:48:03 2008
@@ -1884,6 +1884,7 @@
[ autogen-sh="<replaceable>autogen-sh</replaceable>" ]
[ makefile="<replaceable>makefile</replaceable>" ]
[ skip-autogen="<replaceable>skip-autogen</replaceable>" ]
+ [ autogen-template="<replaceable>autogen-template</replaceable>" ]
[ supports-non-srcdir-builds="<replaceable>supports-non-srcdir-builds</replaceable>" ]>
<branch [ ... ] >
@@ -1927,6 +1928,19 @@
attribute is used to mark modules that can't be cleanly built
using a separate source directory.</para>
+ <para>The <sgmltag class="attribute">autogen-template</sgmltag>
+ attribute can be used if you need finer control over the autogen
+ command line. It is a python format string, which will be
+ substituted with the following variables:
+ <varname>srcdir</varname>, <varname>autogen-sh</varname>,
+ <varname>prefix</varname>, <varname>libdir</varname>, and
+ <varname>autogenargs</varname>. For example, here is the default
+ autogen-template:</para>
+
+ <programlisting>
+%(srcdir)s/%(autogen-sh)s --prefix %(prefix)s --libdir %(libdir)s %(autogenargs)s
+</programlisting>
+
</section>
<section id="moduleset-syntax-defs-cmake">
Modified: trunk/jhbuild/modtypes/autotools.py
==============================================================================
--- trunk/jhbuild/modtypes/autotools.py (original)
+++ trunk/jhbuild/modtypes/autotools.py Mon Apr 14 14:48:03 2008
@@ -53,7 +53,8 @@
skip_autogen=False,
autogen_sh='autogen.sh',
makefile='Makefile',
- extra_env = None):
+ extra_env = None,
+ autogen_template=None):
Package.__init__(self, name, dependencies, after, suggests, extra_env)
self.branch = branch
self.autogenargs = autogenargs
@@ -63,6 +64,7 @@
self.skip_autogen = skip_autogen
self.autogen_sh = autogen_sh
self.makefile = makefile
+ self.autogen_template = autogen_template
def get_srcdir(self, buildscript):
return self.branch.srcdir
@@ -126,14 +128,27 @@
os.makedirs(builddir)
buildscript.set_action('Configuring', self)
+ if self.autogen_template:
+ template = self.autogen_template
+ else:
+ template = ("%(srcdir)s/%(autogen-sh)s --prefix %(prefix)s"
+ " --libdir %(libdir)s %(autogenargs)s ")
+
+ vars = {'prefix': buildscript.config.prefix,
+ 'autogen-sh': self.autogen_sh,
+ 'autogenargs': self.autogenargs}
+
if buildscript.config.buildroot and self.supports_non_srcdir_builds:
- cmd = self.get_srcdir(buildscript) + '/' + self.autogen_sh
+ vars['srcdir'] = self.get_srcdir(buildscript)
else:
- cmd = './' + self.autogen_sh
- cmd += ' --prefix %s' % buildscript.config.prefix
+ vars['srcdir'] = '.'
+
if buildscript.config.use_lib64:
- cmd += " --libdir '${exec_prefix}/lib64'"
- cmd += ' %s' % self.autogenargs
+ vars['libdir'] = "'${exec_prefix}/lib64'"
+ else:
+ vars['libdir'] = "'${exec_prefix}/lib'"
+
+ cmd = template % vars
if self.autogen_sh == 'autoreconf':
buildscript.execute(['autoreconf', '-i'], cwd = builddir,
@@ -263,6 +278,7 @@
autogen_sh = 'autogen.sh'
skip_autogen = False
makefile = 'Makefile'
+ autogen_template = None
if node.hasAttribute('autogenargs'):
autogenargs = node.getAttribute('autogenargs')
if node.hasAttribute('makeargs'):
@@ -278,6 +294,8 @@
autogen_sh = node.getAttribute('autogen-sh')
if node.hasAttribute('makefile'):
makefile = node.getAttribute('makefile')
+ if node.hasAttribute('autogen-template'):
+ autogen_template = node.getAttribute('autogen-template')
# Make some substitutions; do special handling of '${prefix}' and '${libdir}'
p = re.compile('(\${prefix})')
@@ -311,7 +329,8 @@
skip_autogen=skip_autogen,
autogen_sh=autogen_sh,
makefile=makefile,
- extra_env=extra_env)
+ extra_env=extra_env,
+ autogen_template=autogen_template)
register_module_type('autotools', parse_autotools)
Modified: trunk/modulesets/moduleset.dtd
==============================================================================
--- trunk/modulesets/moduleset.dtd (original)
+++ trunk/modulesets/moduleset.dtd Mon Apr 14 14:48:03 2008
@@ -34,7 +34,8 @@
autogen-sh CDATA #IMPLIED
makefile CDATA #IMPLIED
skip-autogen (true|false) "false"
- supports-non-srcdir-builds (yes|no) "yes">
+ supports-non-srcdir-builds (yes|no) "yes"
+ autogen-template CDATA #IMPLIED>
<!ELEMENT waf (branch,dependencies?,suggests?,after?)>
<!-- Note: Here the ID type is not used as some existing IDs in modsets are not
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]