Commit | Line | Data |
---|---|---|
99d8f2d5 TTN |
1 | #!/bin/sh |
2 | ||
3 | # Copyright (C) 2002 Free Software Foundation | |
4 | # | |
5 | # This file is part of GUILE. | |
6 | # | |
7 | # GUILE is free software; you can redistribute it and/or modify | |
8 | # it under the terms of the GNU General Public License as | |
9 | # published by the Free Software Foundation; either version 2, or | |
10 | # (at your option) any later version. | |
11 | # | |
12 | # GUILE is distributed in the hope that it will be useful, but | |
13 | # WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | # GNU General Public License for more details. | |
16 | # | |
17 | # You should have received a copy of the GNU General Public | |
18 | # License along with GUILE; see the file COPYING. If not, write | |
19 | # to the Free Software Foundation, Inc., 59 Temple Place, Suite | |
20 | # 330, Boston, MA 02111-1307 USA | |
21 | ||
07921c76 RB |
22 | # NOTE: at some point we might consider invoking this under |
23 | # pre-inst-guile-env. If this will work, then most of the code below | |
24 | # can be removed. | |
25 | ||
26 | # NOTE: If you update this file, please update pre-inst-guile-env.in | |
27 | # as well, if appropriate. | |
28 | ||
99d8f2d5 TTN |
29 | # Commentary: |
30 | ||
31 | # Usage: pre-inst-guile [ARGS] | |
32 | # | |
33 | # This script arranges for the environment to support, and eventaully execs, | |
34 | # the uninstalled binary guile executable located somewhere under libguile/, | |
35 | # passing ARGS to it. In the process, env var GUILE is clobbered, and the | |
36 | # following env vars are modified (but not clobbered): | |
37 | # GUILE_LOAD_PATH | |
ec99391a | 38 | # LTDL_LIBRARY_PATH |
99d8f2d5 TTN |
39 | # |
40 | # This script can be used as a drop-in replacement for $bindir/guile; | |
41 | # if there is a discrepency in behavior, that's a bug. | |
42 | ||
43 | # Code: | |
44 | ||
45 | # config | |
46 | subdirs_with_ltlibs="srfi guile-readline" # maintain me | |
47 | ||
48 | # env (set by configure) | |
ce8b584c | 49 | top_srcdir="@top_srcdir_absolute@" |
99d8f2d5 TTN |
50 | top_builddir="@top_builddir_absolute@" |
51 | ||
52 | [ x"$top_srcdir" = x -o ! -d "$top_srcdir" -o \ | |
53 | x"$top_builddir" = x -o ! -d "$top_builddir" ] && { | |
54 | echo $0: bad environment | |
55 | echo top_srcdir=$top_srcdir | |
56 | echo top_builddir=$top_builddir | |
57 | exit 1 | |
58 | } | |
59 | ||
60 | # handle GUILE_LOAD_PATH (no clobber) | |
61 | if [ x"$GUILE_LOAD_PATH" = x ] ; then | |
62 | GUILE_LOAD_PATH="${top_srcdir}" | |
63 | else | |
64 | # This hair prevents double inclusion. | |
65 | # The ":" prevents prefix aliasing. | |
66 | case x"$GUILE_LOAD_PATH" in x*${top_srcdir}:*) ;; | |
67 | *) GUILE_LOAD_PATH="${top_srcdir}:$GUILE_LOAD_PATH" ;; | |
68 | esac | |
69 | fi | |
70 | export GUILE_LOAD_PATH | |
71 | ||
72 | # handle LTDL_LIBRARY_PATH (no clobber) | |
73 | ltdl_prefix="" | |
74 | for dir in $subdirs_with_ltlibs ; do | |
75 | ltdl_prefix="${top_builddir}/${dir}:${ltdl_prefix}" | |
76 | done | |
77 | LTDL_LIBRARY_PATH="${ltdl_prefix}$LTDL_LIBRARY_PATH" | |
78 | export LTDL_LIBRARY_PATH | |
79 | ||
80 | # set GUILE (clobber) | |
81 | GUILE=${top_builddir}/libguile/guile | |
82 | export GUILE | |
83 | ||
84 | # do it | |
85 | exec $GUILE "$@" | |
86 | ||
87 | # never reached | |
88 | exit 1 | |
89 | ||
90 | # pre-inst-guile ends here |