diff --git a/am/ChangeLog b/am/ChangeLog new file mode 100644 index 000000000..16ea39030 --- /dev/null +++ b/am/ChangeLog @@ -0,0 +1,4 @@ +2002-02-26 Thien-Thi Nguyen + + * pre-inst-guile, Makefile.am, README: New files. + diff --git a/am/Makefile.am b/am/Makefile.am new file mode 100644 index 000000000..a4bfbc415 --- /dev/null +++ b/am/Makefile.am @@ -0,0 +1,28 @@ +## Process this file with Automake to create Makefile.in +## +## Copyright (C) 2002 Free Software Foundation, Inc. +## +## This file is part of GUILE. +## +## GUILE is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2, or +## (at your option) any later version. +## +## GUILE 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 General Public License for more details. +## +## You should have received a copy of the GNU General Public +## License along with GUILE; see the file COPYING. If not, write +## to the Free Software Foundation, Inc., 59 Temple Place, Suite +## 330, Boston, MA 02111-1307 USA + +AUTOMAKE_OPTIONS = gnu + +am_frags = pre-inst-guile + +EXTRA_DIST = $(am_frags) + +## Makefile.am ends here diff --git a/am/README b/am/README new file mode 100644 index 000000000..c7883c37c --- /dev/null +++ b/am/README @@ -0,0 +1,3 @@ +data directory: automake frags + +do not name files using extension ".am", as automake is overzealous sometimes. diff --git a/am/pre-inst-guile b/am/pre-inst-guile new file mode 100644 index 000000000..2cf240104 --- /dev/null +++ b/am/pre-inst-guile @@ -0,0 +1,34 @@ +## am/pre-inst-guile --- define preinstguile and preinstguiletool vars + +## Copyright (C) 2002 Free Software Foundation +## +## This file is part of GUILE. +## +## GUILE is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as +## published by the Free Software Foundation; either version 2, or +## (at your option) any later version. +## +## GUILE 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 General Public License for more details. +## +## You should have received a copy of the GNU General Public +## License along with GUILE; see the file COPYING. If not, write +## to the Free Software Foundation, Inc., 59 Temple Place, Suite +## 330, Boston, MA 02111-1307 USA + +## Commentary: + +## This fragment defines two variables: preinstguile, preinstguiletool. +## It can be included in any Makefile.am by adding the line: +## include $(top_srcdir)/am/pre-inst-guile +## See devel/build/pre-inst-guile.text (CVS only) for more info. + +## Code: + +preinstguile = $(top_builddir_absolute)/pre-inst-guile +preinstguiletool = GUILE="$(preinstguile)" $(top_srcdir)/scripts + +## am/pre-inst-guile ends here diff --git a/pre-inst-guile.in b/pre-inst-guile.in new file mode 100644 index 000000000..428e04b14 --- /dev/null +++ b/pre-inst-guile.in @@ -0,0 +1,83 @@ +#!/bin/sh + +# Copyright (C) 2002 Free Software Foundation +# +# This file is part of GUILE. +# +# GUILE is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2, or +# (at your option) any later version. +# +# GUILE 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with GUILE; see the file COPYING. If not, write +# to the Free Software Foundation, Inc., 59 Temple Place, Suite +# 330, Boston, MA 02111-1307 USA + +# Commentary: + +# Usage: pre-inst-guile [ARGS] +# +# This script arranges for the environment to support, and eventaully execs, +# the uninstalled binary guile executable located somewhere under libguile/, +# passing ARGS to it. In the process, env var GUILE is clobbered, and the +# following env vars are modified (but not clobbered): +# GUILE_LOAD_PATH +# LTDL_LOAD_PATH +# +# This script can be used as a drop-in replacement for $bindir/guile; +# if there is a discrepency in behavior, that's a bug. + +# Code: + +# config +subdirs_with_ltlibs="srfi guile-readline" # maintain me + +# env (set by configure) +top_srcdir="@top_srcdir@" +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 +} + +# handle GUILE_LOAD_PATH (no clobber) +if [ x"$GUILE_LOAD_PATH" = x ] ; then + GUILE_LOAD_PATH="${top_srcdir}" +else + # This hair prevents double inclusion. + # The ":" prevents prefix aliasing. + case x"$GUILE_LOAD_PATH" in x*${top_srcdir}:*) ;; + *) GUILE_LOAD_PATH="${top_srcdir}:$GUILE_LOAD_PATH" ;; + esac +fi +export GUILE_LOAD_PATH + +# handle LTDL_LIBRARY_PATH (no clobber) +ltdl_prefix="" +for dir in $subdirs_with_ltlibs ; do + ltdl_prefix="${top_builddir}/${dir}:${ltdl_prefix}" +done +LTDL_LIBRARY_PATH="${ltdl_prefix}$LTDL_LIBRARY_PATH" +export LTDL_LIBRARY_PATH + +# set GUILE (clobber) +GUILE=${top_builddir}/libguile/guile +export GUILE + +# do it +exec $GUILE "$@" + +# never reached +exit 1 + +# pre-inst-guile ends here