diff options
Diffstat (limited to 'config/tcl.m4')
-rw-r--r-- | config/tcl.m4 | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/config/tcl.m4 b/config/tcl.m4 new file mode 100644 index 0000000..9de31a5 --- /dev/null +++ b/config/tcl.m4 @@ -0,0 +1,105 @@ +# 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]) +AC_ARG_VAR(TCLSH, [Tcl interpreter program (tclsh)])dnl +if test x"$TCLSH" = x""; then + AC_MSG_ERROR([Tcl shell not found]) +fi +]) + + +# PGAC_PATH_TCLCONFIGSH([SEARCH-PATH]) +# ------------------------------------ +# If the user doesn't specify $TCL_CONFIG_SH directly, search for it in +# the list of directories passed as parameter (from --with-tclconfig). +# If no list is given, try the Tcl shell's $auto_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]) + pgac_test_dirs=`echo 'puts $auto_path' | $TCLSH` + # On newer macOS, $auto_path frequently doesn't include the place + # where tclConfig.sh actually lives. Append that to the end, so as not + # to break cases where a non-default Tcl installation is being used. + if test -d "$PG_SYSROOT/System/Library/Frameworks/Tcl.framework" ; then + pgac_test_dirs="$pgac_test_dirs $PG_SYSROOT/System/Library/Frameworks/Tcl.framework" + fi + set X $pgac_test_dirs; 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)])]) |