diff options
Diffstat (limited to 'build/generator/gen_make.py')
-rw-r--r-- | build/generator/gen_make.py | 74 |
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() { |