mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-11-27 07:21:09 +08:00
6de89c9ab7
that now functions as a wrapper around the MakeMaker stuff. It might even behave sensically when we have separate build dirs. Same for plperl, which of course still doesn't work very well. Made sure that plperl respects the choice of --libdir. Added --with-python to automatically build and install the Python interface. Works similarly to the Perl5 stuff. Moved the burden of the distclean targets lower down into the source tree. Eventually, each make file should have its own. Added automatic remaking of makefiles and configure. Currently only for the top-level because of a bug(?) in Autoconf. Use GNU `missing' to work around missing autoconf and aclocal. Start factoring out macros into their own config/*.m4 files to increase readability and organization.
266 lines
8.1 KiB
Bash
Executable File
266 lines
8.1 KiB
Bash
Executable File
#! /bin/sh
|
|
# Common stub for a few missing GNU programs while installing.
|
|
# Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
|
|
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
|
|
|
# This program 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.
|
|
|
|
# This program 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 this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
# 02111-1307, USA.
|
|
|
|
if test $# -eq 0; then
|
|
echo 1>&2 "Try \`$0 --help' for more information"
|
|
exit 1
|
|
fi
|
|
|
|
run=:
|
|
|
|
case "$1" in
|
|
--run)
|
|
# Try to run requested program, and just exit if it succeeds.
|
|
run=
|
|
shift
|
|
"$@" && exit 0
|
|
;;
|
|
esac
|
|
|
|
# If it does not exist, or fails to run (possibly an outdated version),
|
|
# try to emulate it.
|
|
case "$1" in
|
|
|
|
-h|--h|--he|--hel|--help)
|
|
echo "\
|
|
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
|
|
|
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
|
error status if there is no known handling for PROGRAM.
|
|
|
|
Options:
|
|
-h, --help display this help and exit
|
|
-v, --version output version information and exit
|
|
--run try to run the given command, and emulate it if it fails
|
|
|
|
Supported PROGRAM values:
|
|
aclocal touch file \`aclocal.m4'
|
|
autoconf touch file \`configure'
|
|
autoheader touch file \`config.h.in'
|
|
automake touch all \`Makefile.in' files
|
|
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
|
flex create \`lex.yy.c', if possible, from existing .c
|
|
help2man touch the output file
|
|
lex create \`lex.yy.c', if possible, from existing .c
|
|
makeinfo touch the output file
|
|
tar try tar, gnutar, gtar, then tar without non-portable flags
|
|
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
|
|
;;
|
|
|
|
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
|
echo "missing 0.3 - GNU automake"
|
|
;;
|
|
|
|
-*)
|
|
echo 1>&2 "$0: Unknown \`$1' option"
|
|
echo 1>&2 "Try \`$0 --help' for more information"
|
|
exit 1
|
|
;;
|
|
|
|
aclocal)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is missing on your system. You should only need it if
|
|
you modified \`acinclude.m4' or \`configure.in'. You might want
|
|
to install the \`Automake' and \`Perl' packages. Grab them from
|
|
any GNU archive site."
|
|
touch aclocal.m4
|
|
;;
|
|
|
|
autoconf)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is missing on your system. You should only need it if
|
|
you modified \`configure.in'. You might want to install the
|
|
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
|
archive site."
|
|
touch configure
|
|
;;
|
|
|
|
autoheader)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is missing on your system. You should only need it if
|
|
you modified \`acconfig.h' or \`configure.in'. You might want
|
|
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
|
from any GNU archive site."
|
|
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
|
|
test -z "$files" && files="config.h"
|
|
touch_files=
|
|
for f in $files; do
|
|
case "$f" in
|
|
*:*) touch_files="$touch_files "`echo "$f" |
|
|
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
|
*) touch_files="$touch_files $f.in";;
|
|
esac
|
|
done
|
|
touch $touch_files
|
|
;;
|
|
|
|
automake)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is missing on your system. You should only need it if
|
|
you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
|
|
You might want to install the \`Automake' and \`Perl' packages.
|
|
Grab them from any GNU archive site."
|
|
find . -type f -name Makefile.am -print |
|
|
sed 's/\.am$/.in/' |
|
|
while read f; do touch "$f"; done
|
|
;;
|
|
|
|
bison|yacc)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is missing on your system. You should only need it if
|
|
you modified a \`.y' file. You may need the \`Bison' package
|
|
in order for those modifications to take effect. You can get
|
|
\`Bison' from any GNU archive site."
|
|
rm -f y.tab.c y.tab.h
|
|
if [ $# -ne 1 ]; then
|
|
eval LASTARG="\${$#}"
|
|
case "$LASTARG" in
|
|
*.y)
|
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
|
if [ -f "$SRCFILE" ]; then
|
|
cp "$SRCFILE" y.tab.c
|
|
fi
|
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
|
if [ -f "$SRCFILE" ]; then
|
|
cp "$SRCFILE" y.tab.h
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
if [ ! -f y.tab.h ]; then
|
|
echo >y.tab.h
|
|
fi
|
|
if [ ! -f y.tab.c ]; then
|
|
echo 'main() { return 0; }' >y.tab.c
|
|
fi
|
|
;;
|
|
|
|
lex|flex)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is missing on your system. You should only need it if
|
|
you modified a \`.l' file. You may need the \`Flex' package
|
|
in order for those modifications to take effect. You can get
|
|
\`Flex' from any GNU archive site."
|
|
rm -f lex.yy.c
|
|
if [ $# -ne 1 ]; then
|
|
eval LASTARG="\${$#}"
|
|
case "$LASTARG" in
|
|
*.l)
|
|
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
|
if [ -f "$SRCFILE" ]; then
|
|
cp "$SRCFILE" lex.yy.c
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
if [ ! -f lex.yy.c ]; then
|
|
echo 'main() { return 0; }' >lex.yy.c
|
|
fi
|
|
;;
|
|
|
|
help2man)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is missing on your system. You should only need it if
|
|
you modified a dependancy of a manual page. You may need the
|
|
\`Help2man' package in order for those modifications to take
|
|
effect. You can get \`Help2man' from any GNU archive site."
|
|
|
|
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
|
if test -z "$file"; then
|
|
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
|
fi
|
|
if [ -f "$file" ]; then
|
|
touch $file
|
|
else
|
|
test -z "$file" || exec >$file
|
|
echo ".ab help2man is required to generate this page"
|
|
exit 1
|
|
fi
|
|
;;
|
|
|
|
makeinfo)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is missing on your system. You should only need it if
|
|
you modified a \`.texi' or \`.texinfo' file, or any other file
|
|
indirectly affecting the aspect of the manual. The spurious
|
|
call might also be the consequence of using a buggy \`make' (AIX,
|
|
DU, IRIX). You might want to install the \`Texinfo' package or
|
|
the \`GNU make' package. Grab either from any GNU archive site."
|
|
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
|
if test -z "$file"; then
|
|
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
|
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
|
|
fi
|
|
touch $file
|
|
;;
|
|
|
|
tar)
|
|
shift
|
|
if test -n "$run"; then
|
|
echo 1>&2 "ERROR: \`tar' requires --run"
|
|
exit 1
|
|
fi
|
|
|
|
# We have already tried tar in the generic part.
|
|
# Look for gnutar/gtar before invocation to avoid ugly error
|
|
# messages.
|
|
if (gnutar --version > /dev/null 2>&1); then
|
|
gnutar ${1+"$@"} && exit 0
|
|
fi
|
|
if (gtar --version > /dev/null 2>&1); then
|
|
gtar ${1+"$@"} && exit 0
|
|
fi
|
|
firstarg="$1"
|
|
if shift; then
|
|
case "$firstarg" in
|
|
*o*)
|
|
firstarg=`echo "$firstarg" | sed s/o//`
|
|
tar "$firstarg" ${1+"$@"} && exit 0
|
|
;;
|
|
esac
|
|
case "$firstarg" in
|
|
*h*)
|
|
firstarg=`echo "$firstarg" | sed s/h//`
|
|
tar "$firstarg" ${1+"$@"} && exit 0
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
echo 1>&2 "\
|
|
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
|
You may want to install GNU tar or Free paxutils, or check the
|
|
command line arguments."
|
|
exit 1
|
|
;;
|
|
|
|
*)
|
|
echo 1>&2 "\
|
|
WARNING: \`$1' is needed, and you do not seem to have it handy on your
|
|
system. You might have modified some files without having the
|
|
proper tools for further handling them. Check the \`README' file,
|
|
it often tells you about the needed prerequirements for installing
|
|
this package. You may also peek at any GNU archive site, in case
|
|
some other package would contain this missing \`$1' program."
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|