annotate gub/tools.py @ 6477:00000bc42f8a

guile: depend on pkg-config and bump to 1.9.15.
author Jan Nieuwenhuizen <janneke@gnu.org>
date Thu, 03 Feb 2011 12:58:34 +0100
parents 659bf46a5aee
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
1 import os
5661
9cc45009b221 Grand install_command () -> class.install_command hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5660
diff changeset
2 import sys
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
3 #
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
4 from gub import build
4648
789cb738d254 Fix tools.broken_install_command (). Eradicate packaging_suffix_dir () usage.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4628
diff changeset
5 from gub import context
4895
43408bcf252d Move octal constants to gub.octal. Helps python2 <-> python3 transition.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4827
diff changeset
6 from gub import loggedos
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
7 from gub import misc
4895
43408bcf252d Move octal constants to gub.octal. Helps python2 <-> python3 transition.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4827
diff changeset
8 from gub import octal
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
9
3942
4cc1bff16fc7 Grand refactoring of get_build_spec.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
10 def get_cross_build_dependencies (settings):
4cc1bff16fc7 Grand refactoring of get_build_spec.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
11 return []
4cc1bff16fc7 Grand refactoring of get_build_spec.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
12
4979
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
13 def change_target_package (package):
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
14 package_auto_dependency_dict (package)
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
15
6071
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
16 # tools packages, such as guile 2.0, that can only compile
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
17 # to equivalent binary platforms: endianness and word length
6477
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
18 tools_archmatch = [
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
19 'guile',
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
20 'tools::guile'
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
21 ]
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
22 libs_archmatch = [
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
23 'gettext',
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
24 'gmp',
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
25 'guile',
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
26 'libffi',
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
27 'libtool',
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
28 'libunistring',
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
29 'libgc',
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
30 'pkg-config'
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
31 ]
6071
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
32
4979
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
33 def package_auto_dependency_dict (package):
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
34 '''Generate get_build_dependencies () and get_dependency_dict ({'':})
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
35 from _get_build_dependencies ().
6477
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
36
4979
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
37 For most packages, this either removes the need of having both,
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
38 or adds the dict where it was missing.
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
39 '''
5635
3ecad6b5f9b1 Grand rename: _get_build_dependencies () -> dependencies.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5597
diff changeset
40 if (not package.get_dependency_dict ().get ('', None)
3ecad6b5f9b1 Grand rename: _get_build_dependencies () -> dependencies.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5597
diff changeset
41 and not package.get_dependency_dict ().get ('devel', None)):
4979
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
42 def get_build_dependencies (foo):
5137
5742a4510175 tools.package_auto_dependency_dict: change tools::libtool into libtool dep.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5096
diff changeset
43 # If a package depends on tools::libtool, ie not on
5742a4510175 tools.package_auto_dependency_dict: change tools::libtool into libtool dep.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5096
diff changeset
44 # libltdl, we still also need <target-arch>::libtool,
5742a4510175 tools.package_auto_dependency_dict: change tools::libtool into libtool dep.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5096
diff changeset
45 # because of our update_libtool (). We fix this here,
5742a4510175 tools.package_auto_dependency_dict: change tools::libtool into libtool dep.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5096
diff changeset
46 # because it's not a package's real dependency but rather
5742a4510175 tools.package_auto_dependency_dict: change tools::libtool into libtool dep.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5096
diff changeset
47 # a detail of our libtool breakage fixup.
5352
57422e18b02c Add far-fetched ill-advised system:: platform to check for build essentials.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5239
diff changeset
48 if (not 'cross/' in package.name ()
57422e18b02c Add far-fetched ill-advised system:: platform to check for build essentials.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5239
diff changeset
49 and not 'system::' in package.platform_name ()):
6071
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
50 package.dependencies = [name.replace ('tools::libtool', 'libtool')
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
51 for name in package.dependencies]
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
52 if (package.name () in tools_archmatch):
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
53 # on linux-x86, refuse to build linux-x64::guile
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
54 if (package.settings.target_bits == '64'
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
55 and package.settings.build_bits == '32'):
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
56 raise Exception ('cannot build %s for 64 bits' + package.platform_name ())
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
57 # on linux-64, build linux-x86::guile with tools32::guile
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
58 if (package.settings.target_bits == '32'
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
59 and package.settings.build_bits == '64'):
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
60 package.dependencies = [name.replace ('tools::', 'tools32::')
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
61 if (misc.strip_platform (name) in libs_archmatch
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
62 and 'system::' not in name
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
63 and ('cross/' not in name
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
64 or 'runtime' in name)) else name
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
65 for name in package.dependencies]
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
66 # only keep tools32:: for libraries linked against,
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
67 # do not build tools32::autotools etc
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
68 if (package.settings.target_bits == '32'
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
69 and package.settings.build_bits == '64'):
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
70 package.dependencies = ['tools::' + misc.strip_platform (name)
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
71 if (misc.strip_platform (name) not in libs_archmatch
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
72 and misc.strip_name (name, package.platform ()) == 'tools32'
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
73 and 'system::' not in name
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
74 and ('cross/' not in name
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
75 or 'runtime' in name)) else name
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
76 for name in package.dependencies]
5635
3ecad6b5f9b1 Grand rename: _get_build_dependencies () -> dependencies.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5597
diff changeset
77 return package.dependencies
4979
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
78 package.get_build_dependencies \
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
79 = misc.MethodOverrider (package.nop, get_build_dependencies)
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
80 def get_dependency_dict (foo):
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
81 d = {'': [x.replace ('-devel', '')
5635
3ecad6b5f9b1 Grand rename: _get_build_dependencies () -> dependencies.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5597
diff changeset
82 for x in package.dependencies
5352
57422e18b02c Add far-fetched ill-advised system:: platform to check for build essentials.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5239
diff changeset
83 if ('system::' not in x
57422e18b02c Add far-fetched ill-advised system:: platform to check for build essentials.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5239
diff changeset
84 and 'tools::' not in x
6071
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
85 and 'tools32::' not in x
5649
801cfb67b10e Grand makeflags () -> compile_flags, install_flags [make_flags] hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5645
diff changeset
86 and ('cross/' not in x
801cfb67b10e Grand makeflags () -> compile_flags, install_flags [make_flags] hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5645
diff changeset
87 or 'runtime' in x))]}
5645
362550f2054b Grand def get_subpackage_names () -> subpackage_names replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5644
diff changeset
88 if 'runtime' in package.subpackage_names:
4979
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
89 d[''] += [package.name () + '-runtime']
5352
57422e18b02c Add far-fetched ill-advised system:: platform to check for build essentials.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5239
diff changeset
90 if package.platform_name () not in ['system', 'tools']:
5635
3ecad6b5f9b1 Grand rename: _get_build_dependencies () -> dependencies.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5597
diff changeset
91 d['devel'] = ([x for x in package.dependencies
5352
57422e18b02c Add far-fetched ill-advised system:: platform to check for build essentials.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5239
diff changeset
92 if ('system::' not in x
57422e18b02c Add far-fetched ill-advised system:: platform to check for build essentials.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5239
diff changeset
93 and 'tools::' not in x
6071
c0339ac4ba5f tools32: new platform.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5732
diff changeset
94 and 'tools32::' not in x
5649
801cfb67b10e Grand makeflags () -> compile_flags, install_flags [make_flags] hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5645
diff changeset
95 and ('cross/' not in x
801cfb67b10e Grand makeflags () -> compile_flags, install_flags [make_flags] hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5645
diff changeset
96 or 'runtime' in x))]
4979
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
97 + [package.name ()])
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
98 return d
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
99 package.get_dependency_dict \
0fb231221057 Also automate _get_build_dependencies for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4937
diff changeset
100 = misc.MethodOverrider (package.nop, get_dependency_dict)
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
101
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
102 class AutoBuild (build.AutoBuild):
5641
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
103 configure_flags = (build.AutoBuild.configure_flags
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
104 + misc.join_lines ('''
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
105 --enable-shared
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
106 --enable-static
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
107 --disable-silent-rules
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
108 '''))
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
109 configure_variables = (build.AutoBuild.configure_variables
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
110 + misc.join_lines ('''
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
111 CFLAGS=-I%(system_prefix)s/include
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
112 LDFLAGS='-L%(system_prefix)s/lib %(rpath)s %(libs)s'
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
113 '''))
5662
13f949bf6968 Grand _native (), autodir (), configure_binary () hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5661
diff changeset
114 subpackage_names = ['']
5641
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
115 def __init__ (self, settings, source):
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
116 build.AutoBuild.__init__ (self, settings, source)
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
117 if self.config_cache_settings ():
387483526bff Grand configure_flags (), Class.configure_flags replacement. Also _vars.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5635
diff changeset
118 self.configure_flags += ' --cache-file=config.cache'
5732
fec3ceb5ef84 LIBRESTRICT=open:stat updates.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5701
diff changeset
119 if 'stat' in misc.librestrict ():
fec3ceb5ef84 LIBRESTRICT=open:stat updates.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5701
diff changeset
120 self.LD_PRELOAD = misc.bind_method (build.AutoBuild.LD_PRELOAD,
fec3ceb5ef84 LIBRESTRICT=open:stat updates.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5701
diff changeset
121 self)
fec3ceb5ef84 LIBRESTRICT=open:stat updates.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5701
diff changeset
122 from gub.cross import bootstrap_names
fec3ceb5ef84 LIBRESTRICT=open:stat updates.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5701
diff changeset
123 if self.platform_name () not in bootstrap_names + [
fec3ceb5ef84 LIBRESTRICT=open:stat updates.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5701
diff changeset
124 'tools::git',
fec3ceb5ef84 LIBRESTRICT=open:stat updates.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5701
diff changeset
125 'tools::gettext',
fec3ceb5ef84 LIBRESTRICT=open:stat updates.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5701
diff changeset
126 'tools::tar'
fec3ceb5ef84 LIBRESTRICT=open:stat updates.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5701
diff changeset
127 ]:
fec3ceb5ef84 LIBRESTRICT=open:stat updates.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5701
diff changeset
128 self.configure_variables = (self.configure_variables
fec3ceb5ef84 LIBRESTRICT=open:stat updates.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5701
diff changeset
129 + ' SHELL=%(tools_prefix)s/bin/sh ')
5597
f2836aba1edf tools: make autoupdate/cross_compling MI-safe. Fixes curl build.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5591
diff changeset
130 # FIXME: MI-hacks
f2836aba1edf tools: make autoupdate/cross_compling MI-safe. Fixes curl build.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5591
diff changeset
131 # must not set cross-compiling, a config cache or update libtool
f2836aba1edf tools: make autoupdate/cross_compling MI-safe. Fixes curl build.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5591
diff changeset
132 def autoupdate (self):
f2836aba1edf tools: make autoupdate/cross_compling MI-safe. Fixes curl build.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5591
diff changeset
133 build.AutoBuild.autoupdate (self)
f2836aba1edf tools: make autoupdate/cross_compling MI-safe. Fixes curl build.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5591
diff changeset
134 def config_cache_settings (self):
f2836aba1edf tools: make autoupdate/cross_compling MI-safe. Fixes curl build.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5591
diff changeset
135 return ''
f2836aba1edf tools: make autoupdate/cross_compling MI-safe. Fixes curl build.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5591
diff changeset
136 def update_libtool (self):
f2836aba1edf tools: make autoupdate/cross_compling MI-safe. Fixes curl build.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5591
diff changeset
137 build.AutoBuild.update_libtool (self)
5408
95b3a706b813 /GUB: install_root/system_prefix -> install_prefix and BOOTSTRAP for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5405
diff changeset
138 def configure_prefix (self):
95b3a706b813 /GUB: install_root/system_prefix -> install_prefix and BOOTSTRAP for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5405
diff changeset
139 return '%(system_prefix)s'
5591
8c4c67e75cab Grand rpath, configure_flags, configure_variables, cross_compiling hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5552
diff changeset
140 def post_install (self):
8c4c67e75cab Grand rpath, configure_flags, configure_variables, cross_compiling hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5552
diff changeset
141 build.AutoBuild.post_install (self)
8c4c67e75cab Grand rpath, configure_flags, configure_variables, cross_compiling hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5552
diff changeset
142 if not self.expand ('rpath'):
8c4c67e75cab Grand rpath, configure_flags, configure_variables, cross_compiling hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5552
diff changeset
143 # and not if no shared libs?
5393
a9e728eddb12 /GUB: Get cross/gcc to build.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5352
diff changeset
144 self.wrap_executables ()
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
145
5408
95b3a706b813 /GUB: install_root/system_prefix -> install_prefix and BOOTSTRAP for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5405
diff changeset
146 @context.subst_method
95b3a706b813 /GUB: install_root/system_prefix -> install_prefix and BOOTSTRAP for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5405
diff changeset
147 def install_prefix (self):
5451
963ce152f0af tools: recurse substitute oopslet.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5408
diff changeset
148 return '%(install_root)s/%(system_prefix)s'
5408
95b3a706b813 /GUB: install_root/system_prefix -> install_prefix and BOOTSTRAP for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5405
diff changeset
149
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
150 def wrap_executables (self):
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
151 def wrap (logger, file):
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
152 dir = os.path.dirname (file)
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
153 base = os.path.basename (file)
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
154 cmd = self.expand ('mv %(file)s %(dir)s/.%(base)s', locals ())
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
155 loggedos.system (logger, cmd)
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
156 loggedos.dump_file (logger, self.expand ('''#!/bin/sh
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
157 LD_LIBRARY_PATH=%(system_prefix)s/lib
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
158 %(system_prefix)s/bin/.%(base)s "$@"
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
159 ''', locals ()), file)
4895
43408bcf252d Move octal constants to gub.octal. Helps python2 <-> python3 transition.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4827
diff changeset
160 loggedos.chmod (logger, file, octal.o755)
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
161 self.map_locate (wrap, '%(install_prefix)s/bin', '*')
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
162 self.map_locate (wrap, '%(install_root)s/%(tools_prefix)s/bin', '*')
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
163
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
164 ## we need to tar up %(install_root)/%(prefix)
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
165 def packaging_suffix_dir (self):
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
166 return '%(system_root)s'
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
167
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
168 def configure (self):
5239
cee142369244 Make overriding of a tools' config.cache bit easier.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5234
diff changeset
169 self.config_cache ()
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
170 build.AutoBuild.configure (self)
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
171 self.update_libtool ()
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
172
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
173 def get_substitution_dict (self, env={}):
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
174 dict = {
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
175 'C_INCLUDE_PATH': '%(system_prefix)s/include'
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
176 + misc.append_path (os.environ.get ('C_INCLUDE_PATH', '')),
5096
0afd51bcc3f7 tools, cross: set make as ignored executable.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5055
diff changeset
177 'CPLUS_INCLUDE_PATH': '%(system_prefix)s/include'
0afd51bcc3f7 tools, cross: set make as ignored executable.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5055
diff changeset
178 + misc.append_path (os.environ.get ('CPLUS_INCLUDE_PATH', '')),
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
179 'LIBRARY_PATH': '%(system_prefix)s/lib'
5485
e506118f65a8 tools:: lift LD_PRELOAD restrictions. Fixes confusion.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5472
diff changeset
180 # 'LIBRESTRICT_IGNORE': '%(system_prefix)s/bin/make:%(system_prefix)s/gcc:%(system_prefix)s/g++:%(system_prefix)s/ld', #etc.
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
181 + misc.append_path (os.environ.get ('LIBRARY_PATH', '')),
5405
53a9f1d78f1d /GUB: initial full cross root build setup.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5393
diff changeset
182 'PATH': '%(system_prefix)s/bin:%(system_cross_prefix)s/bin:' + os.environ['PATH'],
5457
f65d6e563f9f /GUB: slew of bootstrap/root fixes.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5451
diff changeset
183 'PERL5LIB': 'foo:%(tools_prefix)s/lib/perl5/5.10.0'
5493
fba5536cc30f Autoconf: depend on perl. Fixes build in minimal etch debootstrap.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5485
diff changeset
184 + ':%(tools_prefix)s/lib/perl5/5.10.0/%(build_architecture)s'
5457
f65d6e563f9f /GUB: slew of bootstrap/root fixes.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5451
diff changeset
185 + ':%(tools_prefix)s/share/autoconf'
f65d6e563f9f /GUB: slew of bootstrap/root fixes.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5451
diff changeset
186 + misc.append_path (os.environ.get ('PERL5LIB', '')),
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
187 }
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
188 dict.update (env)
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
189 d = build.AutoBuild.get_substitution_dict (self, dict).copy ()
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
190 return d
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
191
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
192 class MakeBuild (AutoBuild):
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
193 def stages (self):
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
194 return [s.replace ('configure', 'shadow') for s in AutoBuild.stages (self) if s not in ['autoupdate']]
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
195
4937
ad70c1a27d49 tools.py: Add ShBuild class.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4907
diff changeset
196 class ShBuild (AutoBuild):
ad70c1a27d49 tools.py: Add ShBuild class.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4907
diff changeset
197 def stages (self):
ad70c1a27d49 tools.py: Add ShBuild class.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4907
diff changeset
198 return [s.replace ('configure', 'shadow') for s in AutoBuild.stages (self) if s not in ['autoupdate']]
5660
f1cc9e07d8a9 Grand compile_command () -> class.compile_command hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5649
diff changeset
199 compile_command = 'bash build.sh %(make_flags)s %(compile_flags)s'
5661
9cc45009b221 Grand install_command () -> class.install_command hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5660
diff changeset
200 install_command = '%%%override-me'
4937
ad70c1a27d49 tools.py: Add ShBuild class.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4907
diff changeset
201
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
202 class PythonBuild (AutoBuild):
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
203 def stages (self):
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
204 return [s for s in AutoBuild.stages (self) if s not in ['autoupdate', 'configure']]
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
205 def compile (self):
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
206 self.system ('mkdir -p %(builddir)s')
5661
9cc45009b221 Grand install_command () -> class.install_command hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5660
diff changeset
207 install_command = sys.executable + ' %(srcdir)s/setup.py install --prefix=%(tools_prefix)s --root=%(install_root)s'
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
208
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
209 class SConsBuild (AutoBuild):
5644
7aee893b7746 Grand make_flags, compile_flags, install_flags hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5641
diff changeset
210 scons_flags = ''
4628
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
211 def stages (self):
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
212 return [s for s in AutoBuild.stages (self) if s not in ['autoupdate', 'configure']]
e4825590ebe5 s/targetbuild/target/, s/toolsbuild/tools/.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4507
diff changeset
213 # SCons barfs on trailing / on directory names
5660
f1cc9e07d8a9 Grand compile_command () -> class.compile_command hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5649
diff changeset
214 compile_command = ('scons PREFIX=%(system_prefix)s'
5644
7aee893b7746 Grand make_flags, compile_flags, install_flags hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5641
diff changeset
215 ' PREFIX_DEST=%(install_root)s'
7aee893b7746 Grand make_flags, compile_flags, install_flags hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5641
diff changeset
216 ' %(compile_flags)s'
7aee893b7746 Grand make_flags, compile_flags, install_flags hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5641
diff changeset
217 ' %(scons_flags)s')
5661
9cc45009b221 Grand install_command () -> class.install_command hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5660
diff changeset
218 install_command = compile_command + ' %(install_flags)s'
4907
4f3f97469dda Python3: Start simple runtime test: bin/gub tools:test-23.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4895
diff changeset
219
5234
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
220 class BjamBuild_v2 (MakeBuild):
5635
3ecad6b5f9b1 Grand rename: _get_build_dependencies () -> dependencies.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5597
diff changeset
221 dependencies = ['boost-jam']
5234
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
222 def patch (self):
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
223 MakeBuild.patch (self)
5660
f1cc9e07d8a9 Grand compile_command () -> class.compile_command hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5649
diff changeset
224 compile_command = misc.join_lines ('''
5234
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
225 bjam
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
226 -q
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
227 --layout=system
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
228 --builddir=%(builddir)s
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
229 --prefix=%(system_prefix)s
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
230 --exec-prefix=%(system_prefix)s
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
231 --libdir=%(system_prefix)s/lib
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
232 --includedir=%(system_prefix)s/include
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
233 --verbose
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
234 cxxflags=-fPIC
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
235 toolset=gcc
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
236 debug-symbols=off
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
237 link=shared
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
238 runtime-link=shared
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
239 threading=multi
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
240 release
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
241 ''')
5661
9cc45009b221 Grand install_command () -> class.install_command hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5660
diff changeset
242 install_command = (compile_command
9cc45009b221 Grand install_command () -> class.install_command hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5660
diff changeset
243 .replace ('=%(system_prefix)s', '=%(install_prefix)s')
9cc45009b221 Grand install_command () -> class.install_command hack.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5660
diff changeset
244 + ' install')
5234
87363393b295 tools::Boost: new package. Move BjamBuild_v2 to target, tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5137
diff changeset
245
4907
4f3f97469dda Python3: Start simple runtime test: bin/gub tools:test-23.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4895
diff changeset
246 class NullBuild (AutoBuild):
4f3f97469dda Python3: Start simple runtime test: bin/gub tools:test-23.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4895
diff changeset
247 def stages (self):
4f3f97469dda Python3: Start simple runtime test: bin/gub tools:test-23.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4895
diff changeset
248 return ['patch', 'install', 'package', 'clean']
5645
362550f2054b Grand def get_subpackage_names () -> subpackage_names replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5644
diff changeset
249 subpackage_names = ['']
4907
4f3f97469dda Python3: Start simple runtime test: bin/gub tools:test-23.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 4895
diff changeset
250 def install (self):
5408
95b3a706b813 /GUB: install_root/system_prefix -> install_prefix and BOOTSTRAP for tools.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5405
diff changeset
251 self.system ('mkdir -p %(install_prefix)s')
5472
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
252
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
253 class BinaryBuild (AutoBuild):
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
254 def stages (self):
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
255 return ['untar', 'install', 'package', 'clean']
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
256 def install (self):
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
257 self.system ('mkdir -p %(install_root)s')
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
258 _v = '' #self.os_interface.verbose_flag ()
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
259 self.system ('tar -C %(srcdir)s -cf- . | tar -C %(install_root)s%(_v)s -p -xf-', env=locals ())
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
260 self.libtool_installed_la_fixups ()
5645
362550f2054b Grand def get_subpackage_names () -> subpackage_names replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5644
diff changeset
261 subpackage_names = ['']
6477
00000bc42f8a guile: depend on pkg-config and bump to 1.9.15.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6140
diff changeset
262
5472
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
263 class CpanBuild (AutoBuild):
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
264 def stages (self):
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
265 return [s for s in AutoBuild.stages (self) if s not in ['autoupdate']]
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
266 def configure (self):
e1ceedf77679 Add CpanBuild.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5459
diff changeset
267 self.shadow ()
5552
fd3f5dbe840f cpanbuild: build shared extensions. Fixes perl XML::Parser.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 5503
diff changeset
268 self.system ('cd %(builddir)s && perl Makefile.PL PREFIX=%(system_prefix)s LINKTYPE=dynamic')