summaryrefslogtreecommitdiff
path: root/build/generator/gen_make.py
diff options
context:
space:
mode:
Diffstat (limited to 'build/generator/gen_make.py')
-rw-r--r--build/generator/gen_make.py74
1 files changed, 38 insertions, 36 deletions
diff --git a/build/generator/gen_make.py b/build/generator/gen_make.py
index 697f267..5c2db16 100644
--- a/build/generator/gen_make.py
+++ b/build/generator/gen_make.py
@@ -141,6 +141,7 @@ class Generator(gen_base.GeneratorBase):
data.bdb_test_progs = self.bdb_test_progs + self.bdb_scripts
data.test_deps = self.test_deps + self.scripts
data.test_progs = self.test_progs + self.scripts
+ data.test_helpers = self.test_helpers
# write list of all manpages
data.manpages = self.manpages
@@ -288,6 +289,7 @@ class Generator(gen_base.GeneratorBase):
add_deps=target_ob.add_deps,
objects=objects,
deps=deps,
+ when=target_ob.when,
)
data.target.append(ezt_target)
@@ -369,23 +371,26 @@ class Generator(gen_base.GeneratorBase):
# get the output files for these targets, sorted in dependency order
files = gen_base._sorted_files(self.graph, area)
- ezt_area = _eztdata(type=area, files=[ ], apache_files=[ ],
- extra_install=None)
+ ezt_area_type = (area == 'apache-mod' and 'mods-shared' or area)
+ ezt_area = _eztdata(type=ezt_area_type, files=[], extra_install=None)
+
+ def file_to_eztdata(file):
+ # cd to dirname before install to work around libtool 1.4.2 bug.
+ dirname, fname = build_path_splitfile(file.filename)
+ return _eztdata(mode=None,
+ dirname=dirname, fullname=file.filename,
+ filename=fname, when=file.when)
def apache_file_to_eztdata(file):
# cd to dirname before install to work around libtool 1.4.2 bug.
- dirname, fname = build_path_splitfile(file)
+ dirname, fname = build_path_splitfile(file.filename)
base, ext = os.path.splitext(fname)
name = base.replace('mod_', '')
- return _eztdata(fullname=file, dirname=dirname,
- name=name, filename=fname)
- if area == 'apache-mod':
- data.areas.append(ezt_area)
-
- for file in files:
- ezt_area.files.append(apache_file_to_eztdata(file))
+ return _eztdata(mode='apache-mod',
+ fullname=file.filename, dirname=dirname,
+ name=name, filename=fname, when=file.when)
- elif area != 'test' and area != 'bdb-test':
+ if area != 'test' and area != 'bdb-test':
data.areas.append(ezt_area)
area_var = area.replace('-', '_')
@@ -393,35 +398,29 @@ class Generator(gen_base.GeneratorBase):
ezt_area.varname = area_var
ezt_area.uppervar = upper_var
- # ### TODO: This is a hack. See discussion here:
- # ### http://mid.gmane.org/20120316191639.GA28451@daniel3.local
- apache_files = [t.filename for t in inst_targets
- if isinstance(t, gen_base.TargetApacheMod)]
-
- files = [f for f in files if f not in apache_files]
- for file in apache_files:
- ezt_area.apache_files.append(apache_file_to_eztdata(file))
for file in files:
- # cd to dirname before install to work around libtool 1.4.2 bug.
- dirname, fname = build_path_splitfile(file)
- ezt_file = _eztdata(dirname=dirname, fullname=file,
- filename=fname)
- if area == 'locale':
- lang, objext = os.path.splitext(fname)
- installdir = '$(DESTDIR)$(%sdir)/%s/LC_MESSAGES' % (area_var, lang)
- ezt_file.installdir = installdir
- ezt_file.objext = objext
+ if isinstance(file.target, gen_base.TargetApacheMod):
+ ezt_file = apache_file_to_eztdata(file)
else:
- ezt_file.install_fname = build_path_join('$(%sdir)' % area_var,
- fname)
-
+ ezt_file = file_to_eztdata(file)
+ if area == 'locale':
+ lang, objext = os.path.splitext(ezt_file.filename)
+ installdir = ('$(DESTDIR)$(%sdir)/%s/LC_MESSAGES'
+ % (area_var, lang))
+ ezt_file.installdir = installdir
+ ezt_file.objext = objext
+ else:
+ ezt_file.install_fname = build_path_join('$(%sdir)' % area_var,
+ ezt_file.filename)
ezt_area.files.append(ezt_file)
# certain areas require hooks for extra install rules defined
# in Makefile.in
### we should turn AREA into an object, then test it instead of this
- if area[:5] == 'swig-' and area[-4:] != '-lib' or \
- area[:7] == 'javahl-':
+ if area[:5] == 'swig-' and area[-4:] != '-lib' \
+ or area[:7] == 'javahl-' \
+ or area[:6] == 'cxxhl-' \
+ or area == 'tools':
ezt_area.extra_install = 'yes'
########################################
@@ -454,6 +453,7 @@ class Generator(gen_base.GeneratorBase):
for objname, sources in obj_deps:
dep = _eztdata(name=str(objname),
+ when=objname.when,
deps=list(map(str, sources)),
cmd=objname.compile_cmd,
source=str(sources[0]))
@@ -461,7 +461,7 @@ class Generator(gen_base.GeneratorBase):
dep.generated = ezt.boolean(getattr(objname, 'source_generated', 0))
template = ezt.Template(os.path.join('build', 'generator', 'templates',
- 'makefile.ezt'),
+ 'build-outputs.mk.ezt'),
compress_whitespace=False)
template.generate(open('build-outputs.mk', 'w'), data)
@@ -473,7 +473,9 @@ class Generator(gen_base.GeneratorBase):
"""Write autogen-standalone.mk"""
standalone = open("autogen-standalone.mk", "w")
- standalone.write('# DO NOT EDIT -- AUTOMATICALLY GENERATED\n')
+ standalone.write('# DO NOT EDIT -- AUTOMATICALLY GENERATED '
+ 'BY build/generator/gen_make.py\n')
+ standalone.write('# FROM build-outputs.mk\n')
standalone.write('abs_srcdir = %s\n' % os.getcwd())
standalone.write('abs_builddir = %s\n' % os.getcwd())
standalone.write('top_srcdir = .\n')
@@ -489,7 +491,7 @@ class Generator(gen_base.GeneratorBase):
script = 'build/transform_libtool_scripts.sh'
fd = open(script, 'w')
fd.write('''#!/bin/sh
-# DO NOT EDIT -- AUTOMATICALLY GENERATED
+# DO NOT EDIT -- AUTOMATICALLY GENERATED BY build/generator/gen_make.py
transform()
{