mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-17 19:30:00 +08:00
Use system install program when available and usable
In a3176dac22
we switched to using
install-sh unconditionally, because the configure check
AC_PROG_INSTALL would pick up any random program named install, which
has caused failure reports
(http://archives.postgresql.org/pgsql-hackers/2001-03/msg00312.php).
Now the configure check is much improved and should avoid false
positives. It has also been shown that using a system install program
can significantly reduce "make install" times, so it's worth trying.
This commit is contained in:
parent
c60ca19de9
commit
9db7ccae20
109
configure
vendored
109
configure
vendored
@ -693,6 +693,9 @@ MKDIR_P
|
||||
AWK
|
||||
LN_S
|
||||
TAR
|
||||
INSTALL_DATA
|
||||
INSTALL_SCRIPT
|
||||
INSTALL_PROGRAM
|
||||
WINDRES
|
||||
DLLWRAP
|
||||
DLLTOOL
|
||||
@ -6855,6 +6858,106 @@ fi
|
||||
|
||||
fi
|
||||
|
||||
# Find a good install program. We prefer a C program (faster),
|
||||
# so one script is as good as another. But avoid the broken or
|
||||
# incompatible versions:
|
||||
# SysV /etc/install, /usr/sbin/install
|
||||
# SunOS /usr/etc/install
|
||||
# IRIX /sbin/install
|
||||
# AIX /bin/install
|
||||
# AmigaOS /C/install, which installs bootblocks on floppy discs
|
||||
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
|
||||
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
|
||||
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
|
||||
# OS/2's system install, which has a completely different semantic
|
||||
# ./install, which can be erroneously created by make from ./install.sh.
|
||||
# Reject install programs that cannot install multiple files.
|
||||
{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
|
||||
$as_echo_n "checking for a BSD-compatible install... " >&6; }
|
||||
if test -z "$INSTALL"; then
|
||||
if test "${ac_cv_path_install+set}" = set; then
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
# Account for people who put trailing slashes in PATH elements.
|
||||
case $as_dir/ in
|
||||
./ | .// | /cC/* | \
|
||||
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
|
||||
?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
|
||||
/usr/ucb/* ) ;;
|
||||
*)
|
||||
# OSF1 and SCO ODT 3.0 have their own names for install.
|
||||
# Don't use installbsd from OSF since it installs stuff as root
|
||||
# by default.
|
||||
for ac_prog in ginstall scoinst install; do
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
|
||||
if test $ac_prog = install &&
|
||||
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
|
||||
# AIX install. It has an incompatible calling convention.
|
||||
:
|
||||
elif test $ac_prog = install &&
|
||||
grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
|
||||
# program-specific install script used by HP pwplus--don't use.
|
||||
:
|
||||
else
|
||||
rm -rf conftest.one conftest.two conftest.dir
|
||||
echo one > conftest.one
|
||||
echo two > conftest.two
|
||||
mkdir conftest.dir
|
||||
if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
|
||||
test -s conftest.one && test -s conftest.two &&
|
||||
test -s conftest.dir/conftest.one &&
|
||||
test -s conftest.dir/conftest.two
|
||||
then
|
||||
ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
|
||||
break 3
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
|
||||
rm -rf conftest.one conftest.two conftest.dir
|
||||
|
||||
fi
|
||||
if test "${ac_cv_path_install+set}" = set; then
|
||||
INSTALL=$ac_cv_path_install
|
||||
else
|
||||
# As a last resort, use the slow shell script. Don't cache a
|
||||
# value for INSTALL within a source directory, because that will
|
||||
# break other packages using the cache if that directory is
|
||||
# removed, or if the value is a relative name.
|
||||
INSTALL=$ac_install_sh
|
||||
fi
|
||||
fi
|
||||
{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
|
||||
$as_echo "$INSTALL" >&6; }
|
||||
|
||||
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
|
||||
# It thinks the first close brace ends the variable substitution.
|
||||
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
|
||||
|
||||
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
|
||||
|
||||
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
||||
|
||||
# When Autoconf chooses install-sh as install program it tries to generate
|
||||
# a relative path to it in each makefile where it subsitutes it. This clashes
|
||||
# with our Makefile.global concept. This workaround helps.
|
||||
case $INSTALL in
|
||||
*install-sh*) INSTALL='';;
|
||||
esac
|
||||
|
||||
# Extract the first word of "tar", so it can be a program name with args.
|
||||
set dummy tar; ac_word=$2
|
||||
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
|
||||
@ -30284,6 +30387,7 @@ gives unlimited permission to copy, distribute and modify it."
|
||||
|
||||
ac_pwd='$ac_pwd'
|
||||
srcdir='$srcdir'
|
||||
INSTALL='$INSTALL'
|
||||
MKDIR_P='$MKDIR_P'
|
||||
AWK='$AWK'
|
||||
test -n "\$AWK" || AWK=awk
|
||||
@ -30897,6 +31001,10 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
|
||||
# CONFIG_FILE
|
||||
#
|
||||
|
||||
case $INSTALL in
|
||||
[\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
|
||||
*) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
|
||||
esac
|
||||
ac_MKDIR_P=$MKDIR_P
|
||||
case $MKDIR_P in
|
||||
[\\/$]* | ?:[\\/]* ) ;;
|
||||
@ -30957,6 +31065,7 @@ s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
|
||||
s&@builddir@&$ac_builddir&;t t
|
||||
s&@abs_builddir@&$ac_abs_builddir&;t t
|
||||
s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
|
||||
s&@INSTALL@&$ac_INSTALL&;t t
|
||||
s&@MKDIR_P@&$ac_MKDIR_P&;t t
|
||||
$ac_datarootdir_hack
|
||||
"
|
||||
|
@ -809,6 +809,14 @@ if test "$PORTNAME" = "win32"; then
|
||||
AC_CHECK_TOOL(WINDRES, windres, windres)
|
||||
fi
|
||||
|
||||
AC_PROG_INSTALL
|
||||
# When Autoconf chooses install-sh as install program it tries to generate
|
||||
# a relative path to it in each makefile where it subsitutes it. This clashes
|
||||
# with our Makefile.global concept. This workaround helps.
|
||||
case $INSTALL in
|
||||
*install-sh*) INSTALL='';;
|
||||
esac
|
||||
|
||||
AC_PATH_PROG(TAR, tar)
|
||||
AC_PROG_LN_S
|
||||
AC_PROG_AWK
|
||||
|
@ -289,7 +289,8 @@ BZIP2 = bzip2
|
||||
|
||||
# Installation.
|
||||
|
||||
INSTALL = $(SHELL) $(top_srcdir)/config/install-sh -c
|
||||
install_sh = $(SHELL) $(top_srcdir)/config/install-sh -c
|
||||
INSTALL = $(if $(use_install_sh),$(install_sh),$(or @INSTALL@,$(install_sh)))
|
||||
|
||||
INSTALL_SCRIPT_MODE = 755
|
||||
INSTALL_DATA_MODE = 644
|
||||
@ -561,7 +562,10 @@ endif # not PGXS
|
||||
|
||||
|
||||
install-strip:
|
||||
@$(MAKE) INSTALL_PROGRAM_ENV="STRIPPROG='$(STRIP)'" \
|
||||
# install-strip always uses install-sh, so that strip options can be
|
||||
# passed.
|
||||
$(MAKE) use_install_sh=yes \
|
||||
INSTALL_PROGRAM_ENV="STRIPPROG='$(STRIP)'" \
|
||||
INSTALL_STLIB_ENV="STRIPPROG='$(STRIP_STATIC_LIB)'" \
|
||||
INSTALL_SHLIB_ENV="STRIPPROG='$(STRIP_SHARED_LIB)'" \
|
||||
INSTALL_STRIP_FLAG=-s \
|
||||
|
Loading…
Reference in New Issue
Block a user