Alien-SVN
view release on metacpan or search on metacpan
src/subversion/build/generator/gen_make.py view on Meta::CPAN
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')
standalone.write('top_builddir = .\n')
standalone.write('SWIG = swig\n')
standalone.write('PYTHON = python\n')
standalone.write('\n')
standalone.write(open("build-outputs.mk","r").read())
standalone.close()
def write_transform_libtool_scripts(self, install_sources):
"""Write build/transform_libtool_scripts.sh"""
script = 'build/transform_libtool_scripts.sh'
fd = open(script, 'w')
fd.write('''#!/bin/sh
# DO NOT EDIT -- AUTOMATICALLY GENERATED BY build/generator/gen_make.py
transform()
{
SCRIPT="$1"
LIBS="$2"
if [ -f $SCRIPT ]; then
if grep LD_PRELOAD "$SCRIPT" > /dev/null; then
:
elif grep LD_LIBRARY_PATH "$SCRIPT" > /dev/null; then
echo "Transforming $SCRIPT"
EXISTINGLIBS=""
for LIB in $LIBS; do
# exclude libsvn_test since the undefined test_funcs breaks libtool
case $LIB in
*libsvn_test-*) continue ;;
esac
if [ ! -f $LIB ]; then
continue
fi
if [ -z "$EXISTINGLIBS" ]; then
EXISTINGLIBS="$LIB"
else
EXISTINGLIBS="$EXISTINGLIBS $LIB"
fi
done
if [ ! -z "$EXISTINGLIBS" ]; then
cat "$SCRIPT" |
(
read LINE
echo "$LINE"
read LINE
echo "$LINE"
read LINE
echo "$LINE"
read LINE
echo "$LINE"
echo "LD_PRELOAD=\\"$EXISTINGLIBS\\""
echo "export LD_PRELOAD"
cat
) < "$SCRIPT" > "$SCRIPT.new"
mv -f "$SCRIPT.new" "$SCRIPT"
chmod +x "$SCRIPT"
fi
fi
fi
}
DIR=`pwd`
''')
libdep_cache = {}
paths = {}
for lib in ('libsvn_auth_gnome_keyring', 'libsvn_auth_kwallet'):
paths[lib] = self.sections[lib].options.get('path')
for target_ob in install_sources:
if not isinstance(target_ob, gen_base.TargetExe):
continue
name = target_ob.name
libs = self._get_all_lib_deps(target_ob.name, libdep_cache, paths)
path = paths[name]
for i in range(0, len(libs)):
lib = libs[i]
libpath = paths[libs[i]]
libs[i] = '$DIR/%s/.libs/%s-%s.so' % (libpath, lib, self.version)
fd.write('transform %s/%s "%s"\n' % (path, name, " ".join(libs)))
fd.close()
mode = stat.S_IRWXU|stat.S_IRGRP|stat.S_IXGRP|stat.S_IROTH|stat.S_IXOTH
os.chmod(script, mode)
def _get_all_lib_deps(self, target_name, libdep_cache, paths):
if not target_name in libdep_cache:
libs = set()
path = None
if target_name in self.sections:
section = self.sections[target_name]
opt_libs = self.sections[target_name].options.get('libs')
paths[target_name] = section.options.get('path')
if opt_libs:
for lib_name in opt_libs.split():
if lib_name.startswith('libsvn_'):
libs.add(lib_name)
for lib in self._get_all_lib_deps(lib_name, libdep_cache, paths):
libs.add(lib)
if target_name == 'libsvn_subr':
libs.update(('libsvn_auth_gnome_keyring', 'libsvn_auth_kwallet'))
libdep_cache[target_name] = sorted(libs)
return libdep_cache[target_name]
class UnknownDependency(Exception):
"We don't know how to deal with the dependent to link it in."
pass
### End of file.
( run in 0.988 second using v1.01-cache-2.11-cpan-5623c5533a1 )