From cd748d0696ed7c03a329472c06db5b1370ad2bd2 Mon Sep 17 00:00:00 2001 From: lecoanet Date: Tue, 17 Oct 2006 09:32:39 +0000 Subject: Switch to the new TEA 3 build framework. --- tclconfig/teax.m4 | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 tclconfig/teax.m4 (limited to 'tclconfig') diff --git a/tclconfig/teax.m4 b/tclconfig/teax.m4 new file mode 100644 index 0000000..e2b6355 --- /dev/null +++ b/tclconfig/teax.m4 @@ -0,0 +1,109 @@ +dnl +dnl $Id$ +dnl +dnl Additional autoconf macros for TEA +dnl +dnl + +dnl _TEAX_CHECK_MSVC -- +dnl +dnl Defines the shell variable "USING_MSVC" as "yes" or "no". +dnl Several tests on Windows work differently depending on +dnl whether we're using MSVC or GCC. Current heuristic: +dnl if it's Windows, and CC is not gcc, we're using MSVC. +dnl +dnl This macro doesn't need to be called from configure.ac; +dnl other macros that need it will AC_REQUIRE it. +dnl +AC_DEFUN([_TEAX_CHECK_MSVC],[ +#@ _TEAX_CHECK_MSVC +AC_REQUIRE([AC_PROG_CC]) +if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then + USING_MSVC="yes" +else + USING_MSVC="no" +fi; +]) + +dnl TEAX_CONFIG_LDFLAGS -- +dnl +dnl Sets the following additional variables used when building libraries: +dnl +dnl SHLIB_LD_OUT +dnl Either "-o " or "/out:" depending on whether SHLIB_LD +dnl is a Unix-style linker (ld) or MS-style (link) +dnl +dnl STLIB_LD_OUT -- +dnl Either " " or "/out:" depending on whether STLIB_LD +dnl is Unix-style (ar) or MS-style (lib) +dnl +dnl SHLIB_SUFFIX -- +dnl Suffix for shared libraries. This is actually computed by +dnl TEA_CONFIG_CFLAGS, but it doesn't AC_SUBST() it. +dnl +dnl STLIB_SUFFIX -- +dnl Suffix for static libraries (.a, .lib, ...) +dnl +dnl LIB_PREFIX -- +dnl Prefix for library names; either "lib" or empty. +dnl +AC_DEFUN([TEAX_CONFIG_LDFLAGS],[ +#@ TEAX_CONFIG_LDFLAGS + AC_REQUIRE([_TEAX_CHECK_MSVC]) + if test "${USING_MSVC}" = "yes"; then + SHLIB_LD_OUT="/out:" + STLIB_LD_OUT="/out:" + STLIB_SUFFIX=".lib" + LIB_PREFIX="" + else + SHLIB_LD_OUT="-o " + STLIB_LD_OUT=" " + STLIB_SUFFIX=".a" + LIB_PREFIX="lib" + fi + AC_SUBST(SHLIB_LD_OUT) + AC_SUBST(STLIB_LD_OUT) + AC_SUBST(SHLIB_SUFFIX) + AC_SUBST(STLIB_SUFFIX) + AC_SUBST(LIB_PREFIX) +]) + +dnl TEAX_EXPAND_CFLAGS -- +dnl Computes final value of CFLAGS macro. +dnl +dnl Uses the same logic as TEA_MAKE_LIB, except that +dnl ${CFLAGS_DEFAULT}, ${CFLAGS_WARNING}, and ${SHLIB_CFLAGS} +dnl are expanded at configure-time instead of at make-time. +dnl +AC_DEFUN([TEAX_EXPAND_CFLAGS],[ +#@ TEAX_EXPAND_CFLAGS + AC_REQUIRE([TEA_ENABLE_SYMBOLS]) + CFLAGS="${CFLAGS} ${CFLAGS_DEFAULT} ${CFLAGS_WARNING}" + if test "${SHARED_BUILD}" = "1" ; then + CFLAGS="${CFLAGS} ${SHLIB_CFLAGS}" + fi +]) + +dnl TEAX_FIX_LIB_SPECS -- +dnl TCL_STUB_LIB_SPEC is supposed to contain the linker flags +dnl for picking up the Tcl stub library; however, the settings +dnl in tclConfig.sh only work on Unix and with GCC on Windows. +dnl TEAX_FIX_LIB_SPECS adjusts TCL_STUB_LIB_SPEC et. al. so +dnl they work with MSVC as well. +dnl +dnl (TEA_MAKE_LIB works around this in a different way.) +dnl +AC_DEFUN([TEAX_FIX_LIB_SPECS],[ +#@TEAX_FIX_LIB_SPECS +AC_REQUIRE([_TEAX_CHECK_MSVC]) +if test "${USING_MSVC}" = "yes"; then + TCL_STUB_LIB_SPEC="$TCL_STUB_LIB_PATH" + TK_STUB_LIB_SPEC="$TK_STUB_LIB_PATH" + # tclConfig.sh doesn't define TCL_LIB_SPEC, but if it did, + # it would be as follows: + eval TCL_LIB_SPEC="${TCL_EXEC_PREFIX}/lib/$TCL_LIB_FILE" + # Same for TK_LIB_SPEC: + eval TK_LIB_SPEC="${TK_EXEC_PREFIX}/lib/$TK_LIB_FILE" +fi +]) + -- cgit v1.1