mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
b21c569cea
Peter Eisentraut noted that commit 40b9f1921
had broken a configure
behavior that some people might rely on: AC_CHECK_PROGS(FOO,...) will
allow the search to be overridden by specifying a value for FOO on
configure's command line or in its environment, but AC_PATH_PROGS(FOO,...)
accepts such an override only if it's an absolute path. We had worked
around that behavior for some, but not all, of the pre-existing uses
of AC_PATH_PROGS by just skipping the macro altogether when FOO is
already set. Let's standardize on that workaround for all uses of
AC_PATH_PROGS, new and pre-existing, by wrapping AC_PATH_PROGS in a
new macro PGAC_PATH_PROGS. While at it, fix a deficiency of the old
workaround code by making sure we report the setting to configure's log.
Eventually I'd like to improve PGAC_PATH_PROGS so that it converts
non-absolute override inputs to absolute form, eg "PYTHON=python3"
becomes, say, PYTHON = /usr/bin/python3. But that will take some
nontrivial coding so it doesn't seem like a thing to do in late beta.
Discussion: https://postgr.es/m/90a92a7d-938e-507a-3bd7-ecd2b4004689@2ndquadrant.com
94 lines
2.4 KiB
Plaintext
94 lines
2.4 KiB
Plaintext
# config/tcl.m4
|
|
|
|
# Autoconf macros to check for Tcl related things
|
|
|
|
|
|
AC_DEFUN([PGAC_PATH_TCLSH],
|
|
[PGAC_PATH_PROGS(TCLSH, [tclsh tcl tclsh8.6 tclsh86 tclsh8.5 tclsh85 tclsh8.4 tclsh84])
|
|
if test x"$TCLSH" = x""; then
|
|
AC_MSG_ERROR([Tcl shell not found])
|
|
fi
|
|
])
|
|
|
|
|
|
# PGAC_PATH_TCLCONFIGSH([SEARCH-PATH])
|
|
# ------------------------------------
|
|
AC_DEFUN([PGAC_PATH_TCLCONFIGSH],
|
|
[AC_REQUIRE([PGAC_PATH_TCLSH])[]dnl
|
|
AC_BEFORE([$0], [PGAC_PATH_TKCONFIGSH])[]dnl
|
|
AC_MSG_CHECKING([for tclConfig.sh])
|
|
# Let user override test
|
|
if test -z "$TCL_CONFIG_SH"; then
|
|
pgac_test_dirs="$1"
|
|
|
|
set X $pgac_test_dirs; shift
|
|
if test $[#] -eq 0; then
|
|
test -z "$TCLSH" && AC_MSG_ERROR([unable to locate tclConfig.sh because no Tcl shell was found])
|
|
set X `echo 'puts $auto_path' | $TCLSH`; shift
|
|
fi
|
|
|
|
for pgac_dir do
|
|
if test -r "$pgac_dir/tclConfig.sh"; then
|
|
TCL_CONFIG_SH=$pgac_dir/tclConfig.sh
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if test -z "$TCL_CONFIG_SH"; then
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([file 'tclConfig.sh' is required for Tcl])
|
|
else
|
|
AC_MSG_RESULT([$TCL_CONFIG_SH])
|
|
fi
|
|
|
|
AC_SUBST([TCL_CONFIG_SH])
|
|
])# PGAC_PATH_TCLCONFIGSH
|
|
|
|
|
|
# PGAC_PATH_TKCONFIGSH([SEARCH-PATH])
|
|
# ------------------------------------
|
|
AC_DEFUN([PGAC_PATH_TKCONFIGSH],
|
|
[AC_REQUIRE([PGAC_PATH_TCLSH])[]dnl
|
|
AC_MSG_CHECKING([for tkConfig.sh])
|
|
# Let user override test
|
|
if test -z "$TK_CONFIG_SH"; then
|
|
pgac_test_dirs="$1"
|
|
|
|
set X $pgac_test_dirs; shift
|
|
if test $[#] -eq 0; then
|
|
test -z "$TCLSH" && AC_MSG_ERROR([unable to locate tkConfig.sh because no Tcl shell was found])
|
|
set X `echo 'puts $auto_path' | $TCLSH`; shift
|
|
fi
|
|
|
|
for pgac_dir do
|
|
if test -r "$pgac_dir/tkConfig.sh"; then
|
|
TK_CONFIG_SH=$pgac_dir/tkConfig.sh
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if test -z "$TK_CONFIG_SH"; then
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_ERROR([file 'tkConfig.sh' is required for Tk])
|
|
else
|
|
AC_MSG_RESULT([$TK_CONFIG_SH])
|
|
fi
|
|
|
|
AC_SUBST([TK_CONFIG_SH])
|
|
])# PGAC_PATH_TKCONFIGSH
|
|
|
|
|
|
# PGAC_EVAL_TCLCONFIGSH(FILE, WANTED-VARS)
|
|
# ----------------------------------------
|
|
# Assigns variables listed in WANTED-VARS by reading FILE and
|
|
# evaluating it according to the quoting scheme of tclConfig.sh and
|
|
# tkConfig.sh. Calls AC_SUBST for each variable.
|
|
|
|
AC_DEFUN([PGAC_EVAL_TCLCONFIGSH],
|
|
[. "$1"
|
|
m4_foreach([pgac_item], [$2],
|
|
[eval pgac_item=\"[$]pgac_item\"
|
|
AC_SUBST(pgac_item)])])
|