Alien-SVN
view release on metacpan or search on metacpan
src/subversion/build/generator/gen_make.py view on Meta::CPAN
name = target.name[7:].upper()
# construct a list of the other .la libs to link against
retreat = build_path_retreat(target.path)
if target.name in self.installed_libs:
deps = []
link = [ '-l%s-%s' % (target.name[3:], self.version) ]
else:
deps = [ target.filename ]
link = [ build_path_join(retreat, target.filename) ]
for source in self.graph.get_sources(gen_base.DT_LINK, target.name):
if not isinstance(source, gen_base.TargetLib) or source.external_lib:
continue
elif source.name in self.installed_libs:
continue
deps.append(source.filename)
link.append(build_path_join(retreat, source.filename))
data.modules.append(_eztdata(name=name, deps=deps, link=link))
# write a list of directories in which things are built
# get all the test scripts' directories
script_dirs = list(map(build_path_dirname, self.scripts + self.bdb_scripts))
# remove duplicate directories between targets and tests
build_dirs = unique(self.target_dirs + script_dirs + self.swig_dirs)
data.build_dirs = build_dirs
# write lists of test files
# deps = all, progs = not including those marked "testing = skip"
data.bdb_test_deps = self.bdb_test_deps + self.bdb_scripts
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
# write a list of files to remove during "make clean"
cfiles = [ ]
for target in install_sources:
# .la files are handled by the standard 'clean' rule; clean all the
# other targets
if not isinstance(target, gen_base.TargetScript) \
and not isinstance(target, gen_base.TargetProject) \
and not isinstance(target, gen_base.TargetI18N) \
and not isinstance(target, gen_base.TargetJava) \
and not target.external_lib \
and target.filename[-3:] != '.la':
cfiles.append(target.filename)
for script in self.scripts:
if script.endswith('.py'):
cfiles.append(script + 'c')
data.cfiles = sorted(cfiles)
# here are all the SQL files and their generated headers. the Makefile
# has an implicit rule for generating these, so there isn't much to do
# except to clean them out. we only do that for 'make extraclean' since
# these are included as part of the tarball. the files are transformed
# by gen-make, and developers also get a Make rule to keep them updated.
for hdrfile, sqlfile in sorted(self.graph.get_deps(gen_base.DT_SQLHDR),
key=lambda t: t[0]):
data.sql.append(_eztdata(header=hdrfile, source=sqlfile[0]))
data.release_mode = ezt.boolean(self.release_mode)
########################################
if not self.release_mode:
swig_rules = StringIO()
for swig in (generator.swig.header_wrappers,
generator.swig.checkout_swig_header,
generator.swig.external_runtime):
gen = swig.Generator(self.conf, "swig")
gen.write_makefile_rules(swig_rules)
data.swig_rules = swig_rules.getvalue()
########################################
# write dependencies and build rules for generated .c files
swig_c_deps = sorted(self.graph.get_deps(gen_base.DT_SWIG_C),
key=lambda t: t[0].filename)
swig_lang_deps = {}
for lang in self.swig.langs:
swig_lang_deps[lang] = []
for objname, sources in swig_c_deps:
swig_lang_deps[objname.lang].append(str(objname))
for lang in self.swig.langs:
data.swig_langs.append(_eztdata(short=self.swig.short[lang],
deps=swig_lang_deps[lang]))
########################################
if not self.release_mode:
for objname, sources in swig_c_deps:
data.swig_c.append(_eztdata(c_file=str(objname),
deps=list(map(str, sources)),
opts=self.swig.opts[objname.lang],
source=str(sources[0])))
########################################
for target_ob in install_sources:
if isinstance(target_ob, gen_base.TargetScript):
# there is nothing to build
continue
target = target_ob.name
if isinstance(target_ob, gen_base.TargetJava):
path = target_ob.output_dir
else:
path = target_ob.path
retreat = build_path_retreat(path)
( run in 1.133 second using v1.01-cache-2.11-cpan-5623c5533a1 )