Alien-SVN
view release on metacpan or search on metacpan
src/subversion/build/generator/gen_make.py view on Meta::CPAN
for itype, i_targets in install_deps:
# perl bindings do their own thing, "swig-pl" target is
# already specified in Makefile.in
if itype == "swig-pl":
continue
outputs = [ ]
for t in i_targets:
if hasattr(t, 'filename'):
outputs.append(t.filename)
data.itargets.append(_eztdata(type=itype, outputs=outputs))
########################################
# for each install group, write a rule to install its outputs
for area, inst_targets in install_deps:
# perl bindings do their own thing, "install-swig-pl" target is
# already specified in Makefile.in
if area == "swig-pl":
continue
# get the output files for these targets, sorted in dependency order
files = gen_base._sorted_files(self.graph, area)
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.filename)
base, ext = os.path.splitext(fname)
name = base.replace('mod_', '')
return _eztdata(mode='apache-mod',
fullname=file.filename, dirname=dirname,
name=name, filename=fname, when=file.when)
if area != 'test' and area != 'bdb-test':
data.areas.append(ezt_area)
area_var = area.replace('-', '_')
upper_var = area_var.upper()
ezt_area.varname = area_var
ezt_area.uppervar = upper_var
for file in files:
if isinstance(file.target, gen_base.TargetApacheMod):
ezt_file = apache_file_to_eztdata(file)
else:
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-' \
or area[:6] == 'cxxhl-' \
or area == 'tools':
ezt_area.extra_install = 'yes'
########################################
includedir = build_path_join('$(includedir)',
'subversion-%s' % self.version)
data.includes = [_eztdata(file=file,
src=build_path_join('$(abs_srcdir)', file),
dst=build_path_join(includedir,
build_path_basename(file)))
for file in self.includes]
data.includedir = includedir
########################################
for target in install_sources:
if not isinstance(target, gen_base.TargetScript) and \
not isinstance(target, gen_base.TargetJava) and \
not isinstance(target, gen_base.TargetI18N):
data.isources.append(_eztdata(name=target.name,
filename=target.filename))
########################################
# write dependencies and build rules (when not using suffix rules)
# for all other generated files which will not be installed
# (or will be installed, but not by the main generated build)
obj_deps = sorted(self.graph.get_deps(gen_base.DT_OBJECT),
key=lambda t: t[0].filename)
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]))
data.deps.append(dep)
dep.generated = ezt.boolean(getattr(objname, 'source_generated', 0))
template = ezt.Template(os.path.join('build', 'generator', 'templates',
'build-outputs.mk.ezt'),
compress_whitespace=False)
template.generate(open('build-outputs.mk', 'w'), data)
( run in 0.532 second using v1.01-cache-2.11-cpan-ceb78f64989 )