diff options
author | Andy Wingo <wingo@pobox.com> | 2009-03-27 14:03:03 -0700 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-03-27 14:03:03 -0700 |
commit | 0b6d8fdc28ed8af56e93157179c305fef037e0a0 (patch) | |
tree | ef27c6f315e1f289639bc2febba5907bb313401a /meta/uninstalled-env.in | |
parent | 0fe95f9c4ce063781e79a15bc123c57c33ef9755 (diff) | |
download | guile-0b6d8fdc28ed8af56e93157179c305fef037e0a0.tar.gz |
allow building against uninstalled guile; move some things to meta/
* README: Add more info about building against an uninstalled Guile.
* meta/: New directory. The proximate cause of its creation is that I
want to be able to build external packages against uninstalled Guile,
and to do that I need guile-tools in the PATH, but I don't want
$top_builddir/libtool in the path. But it seems like a good
reorganization, for things that are /about/ Guile: pkg-config files, m4
files, guile-config... then we also include uninstalled info: the
environment, the pre-inst-guile script, etc.
* meta/guile-1.8-uninstalled.pc.in: New pkg-config template. pkg-config
prefers -uninstalled pkg-config files, if they are in its path.
* meta/Makefile.am:
* meta/ChangeLog-2008:
* meta/gdb-uninstalled-guile.in:
* meta/guile-1.8.pc.in:
* meta/guile-config.in:
* meta/guile.m4:
* meta/guile-tools.in: Moved to meta/.
* meta/guile.in: This is the new name of pre-inst-guile.in.
* meta/uninstalled-env.in: And this, pre-inst-guile-env.in.
* Makefile.am:
* am/guilec:
* am/pre-inst-guile:
* check-guile.in:
* configure.in:
* doc/ref/Makefile.am:
* gc-benchmarks/run-benchmark.scm:
* test-suite/standalone/Makefile.am:
* test-suite/standalone/README:
* testsuite/Makefile.am: Adapt to meta/ change.
Diffstat (limited to 'meta/uninstalled-env.in')
-rw-r--r-- | meta/uninstalled-env.in | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/meta/uninstalled-env.in b/meta/uninstalled-env.in new file mode 100644 index 000000000..fa8285d94 --- /dev/null +++ b/meta/uninstalled-env.in @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright (C) 2003, 2006, 2008 Free Software Foundation +# +# This file is part of GUILE. +# +# This script is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +# NOTE: If you update this file, please update uninstalled.in as +# well, if appropriate. + +# Usage: uninstalled-env [ARGS] + +# This script arranges for the environment to support running Guile +# from the build tree. The following env vars are modified (but not +# clobbered): GUILE_LOAD_PATH, LTDL_LIBRARY_PATH, and PATH. + +# Example: uninstalled-env guile -c '(display "hello\n")' +# Example: ../../uninstalled-env ./guile-test-foo + +# config +subdirs_with_ltlibs="srfi guile-readline libguile" # maintain me + +# env (set by configure) +top_srcdir="@top_srcdir_absolute@" +top_builddir="@top_builddir_absolute@" + +[ x"$top_srcdir" = x -o ! -d "$top_srcdir" -o \ + x"$top_builddir" = x -o ! -d "$top_builddir" ] && { + echo $0: bad environment + echo top_srcdir=$top_srcdir + echo top_builddir=$top_builddir + exit 1 +} + +if [ x"$GUILE_LOAD_PATH" = x ] +then + if test "${top_srcdir}" != "${top_builddir}"; then + GUILE_LOAD_PATH="${top_builddir}/guile-readline:${top_srcdir}/guile-readline:${top_builddir}:${top_srcdir}:${top_builddir}/module:${top_srcdir}/module" + else + GUILE_LOAD_PATH="${top_srcdir}/guile-readline:${top_srcdir}:${top_srcdir}/module:${top_srcdir}/module" + fi +else + for d in "${top_srcdir}" "${top_srcdir}/guile-readline" \ + "${top_srcdir}/module" "${top_builddir}/module" + do + # This hair prevents double inclusion. + # The ":" prevents prefix aliasing. + case x"$GUILE_LOAD_PATH" in + x*${d}:*) ;; + *) GUILE_LOAD_PATH="${d}:$GUILE_LOAD_PATH" ;; + esac + done +fi +export GUILE_LOAD_PATH + +# Don't look in installed dirs for guile modules +if ( env | grep -v -q -E '^GUILE_SYSTEM_PATH=' ); then + export GUILE_SYSTEM_PATH= +fi + +# handle LTDL_LIBRARY_PATH (no clobber) +ltdl_prefix="" +dyld_prefix="" +for dir in $subdirs_with_ltlibs ; do + ltdl_prefix="${top_builddir}/${dir}:${ltdl_prefix}" + dyld_prefix="${top_builddir}/${dir}/.libs:${dyld_prefix}" +done +LTDL_LIBRARY_PATH="${ltdl_prefix}$LTDL_LIBRARY_PATH" +export LTDL_LIBRARY_PATH +DYLD_LIBRARY_PATH="${dyld_prefix}${top_builddir}/libguile/.libs:$DYLD_LIBRARY_PATH" +export DYLD_LIBRARY_PATH + +if [ x"$PKG_CONFIG_PATH" = x ] +then + PKG_CONFIG_PATH="${top_builddir}" +else + PKG_CONFIG_PATH="${top_builddir}:$PKG_CONFIG_PATH" +fi +export PKG_CONFIG_PATH + +# handle PATH (no clobber) +PATH="${top_builddir}/guile-config:${PATH}" +PATH="${top_builddir}/libguile:${PATH}" +PATH="${top_builddir}/meta:${PATH}" +export PATH + +exec "$@" |