aboutsummaryrefslogtreecommitdiff
path: root/tclconfig
diff options
context:
space:
mode:
authorlecoanet2006-10-17 09:32:39 +0000
committerlecoanet2006-10-17 09:32:39 +0000
commitcd748d0696ed7c03a329472c06db5b1370ad2bd2 (patch)
tree5d676cdaa3ca1a5790f972d552fa55e60ce4621a /tclconfig
parent5f67fef2a4659329cb35d1b133a0198005630ea7 (diff)
downloadtkzinc-cd748d0696ed7c03a329472c06db5b1370ad2bd2.zip
tkzinc-cd748d0696ed7c03a329472c06db5b1370ad2bd2.tar.gz
tkzinc-cd748d0696ed7c03a329472c06db5b1370ad2bd2.tar.bz2
tkzinc-cd748d0696ed7c03a329472c06db5b1370ad2bd2.tar.xz
Switch to the new TEA 3 build framework.
Diffstat (limited to 'tclconfig')
-rw-r--r--tclconfig/teax.m4109
1 files changed, 109 insertions, 0 deletions
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
+])
+