mktemp usage fixed
[platform/upstream/autogen.git] / config / mk-shdefs.in
1 #! @CONFIG_SHELL@
2 # -*- Mode: shell-script -*-
3
4 ## mk-shdefs.in - extract the substitutions in config.status into
5 ##                environment variables.
6 ##
7 ## This file is part of AutoGen.
8 ## AutoGen Copyright (C) 1992-2018 by Bruce Korb - all rights reserved
9 ##
10 ## AutoGen is free software: you can redistribute it and/or modify it
11 ## under the terms of the GNU General Public License as published by the
12 ## Free Software Foundation, either version 3 of the License, or
13 ## (at your option) any later version.
14 ##
15 ## AutoGen is distributed in the hope that it will be useful, but
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 ## See the GNU General Public License for more details.
19 ##
20 ## You should have received a copy of the GNU General Public License along
21 ## with this program.  If not, see <http://www.gnu.org/licenses/>.
22
23 die() {
24     echo "$prog fatal error:  $*"
25     kill -TERM $progpid
26     exit 1
27 } >&2
28
29 init() {
30     prog=`basename $1 .sh`
31     progpid=$$
32
33     if (exec 2> /dev/null ; unset CDPATH)
34     then unset CDPATH
35     elif test ${#CDPATH} -gt 0
36     then CDPATH=
37     fi
38
39     SED='@SED@'
40     AWK='@AWK@'
41     GREP='@GREP@'
42     EGREP='@EGREP@'
43     target=`basename $2`
44     builddir=`dirname $2`
45     builddir=`cd $builddir >/dev/null && pwd`
46     srcdir=`dirname $1`
47     srcdir=`cd $srcdir >/dev/null && pwd`
48
49     cd ${builddir} || die no builddir
50
51     # top_builddir may be relative to the build directory that corresponds
52     # to the source directory for this file.  Make it absolute
53     #
54     top_builddir=`cd @top_builddir@ >/dev/null && pwd`
55     top_srcdir=`
56         cd ${builddir} >/dev/null && cd @top_srcdir@ >/dev/null && pwd`
57
58     rm -f ${target}
59     exec 3> shdef-temp.in || die cannot create output
60     cd ..
61 }
62
63 mk_config() {
64     cat >&3 <<- _EOF_
65         prefix='@prefix@'
66         exec_prefix="@exec_prefix@"
67         PACKAGE_TARNAME='@PACKAGE_TARNAME@'
68         _EOF_
69
70     # Skip the stuff we force to be first
71     #
72     skip_list='top_srcdir|top_builddir|prefix|exec_prefix|PACKAGE_TARNAME'
73
74     # skip the autoconf/automake internal names
75     #
76     skip_list=${skip_list}"|a[mc]_.*|.*_TRUE|.*_FALSE|HAVE_.*|AM*"
77
78     # These must be in the correct order.  Ensure it and don't do 'em twice
79     #
80     eval_fmt='eval "%s=\\"@%s@\\""\n'
81     for v in datarootdir mandir localedir infodir docdir datadir \
82         libdir libexecdir sbindir bindir \
83         includedir localstatedir sharedstatedir sysconfdir oldincludedir
84     do  printf "${eval_fmt}" $v $v
85         skip_list=${skip_list}"|$v"
86     done >&3
87
88     for f in `${GREP} '^S\["' config.status`
89     do
90         v=`echo "$f" | ${SED}   's/".=.*//;s/[SD]\["//'`
91         x=`echo "$v" | ${EGREP} "^($skip_list)\$"`
92         test "X$x" = X || continue
93
94         case "$f" in
95         *'$('* ) : ;; # no make file only substitutions
96         *'missing --run '* ) : ;; # no bootstrap tools
97         S*\$* )  printf "${eval_fmt}" $v $v ;;
98         S*    )  echo   "$v='@$v@'" ;;
99         esac
100     done >&3
101
102     exec 3>&-
103 }
104
105 configure() {
106     cd config
107
108     ../config.status --file shdef-temp
109     {
110         cmd='`set -o | '${AWK}" '/^allexport/ {print \$2}'"\`
111         cat <<- _EOF_
112                 #! `which echo` this-file-should-be-sourced,-not-executed
113                 # -*- Mode: shell-script -*-
114
115                 case "$cmd" in
116                 on  ) cleara=: ;;
117                 *   ) cleara='set +a' ; set -a ;;
118                 esac
119
120                 top_srcdir="$top_srcdir"
121                 top_builddir="$top_builddir"
122                 _EOF_
123
124         cat shdef-temp
125         echo 'eval $cleara'
126     } > ${target}
127
128     rm -f shdef-temp*
129 }
130
131 set -x
132 exec 9>&2
133 tmp=$(mktemp -d /tmp/shdefs-XXXXXXXXX)
134 exec 2>> $tmp/mk-shdef.log
135 init $0 $1
136 mk_config
137 configure
138 exec 2>&9 9>&-