diff options
Diffstat (limited to 'unix/tcl.m4')
-rw-r--r-- | unix/tcl.m4 | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/unix/tcl.m4 b/unix/tcl.m4 index 8239fb8..73fb065 100644 --- a/unix/tcl.m4 +++ b/unix/tcl.m4 @@ -387,6 +387,10 @@ AC_DEFUN(SC_ENABLE_FRAMEWORK, [ AC_MSG_WARN("Frameworks can only be built if --enable-shared is yes") FRAMEWORK_BUILD=0 fi + if test $tcl_corefoundation = no; then + AC_MSG_WARN("Frameworks can only be used when CoreFoundation is available") + FRAMEWORK_BUILD=0 + fi else AC_MSG_RESULT([standard shared library]) FRAMEWORK_BUILD=0 @@ -1389,11 +1393,35 @@ dnl AC_CHECK_TOOL(AR, ar) PLAT_SRCS=\$\(MAC\_OSX_SRCS\) TCL_SHLIB_LD_EXTRAS='-compatibility_version ${VERSION} -current_version ${VERSION} -install_name ${DYLIB_INSTALL_DIR}/${TCL_LIB_FILE} -seg1addr 0xa000000' TK_SHLIB_LD_EXTRAS=' -compatibility_version ${VERSION} -current_version ${VERSION} -install_name ${DYLIB_INSTALL_DIR}/${TK_LIB_FILE} -seg1addr 0xb000000 -unexported_symbols_list $$(f=$(TCL_STUB_LIB_FILE).E && nm -gjp $(TCL_BIN_DIR)/$(TCL_STUB_LIB_FILE) | tail +3 > $$f && echo $$f)' - LIBS="$LIBS -framework CoreFoundation" + AC_MSG_CHECKING([whether to use CoreFoundation]) + AC_ARG_ENABLE(corefoundation, [ --enable-corefoundation use CoreFoundation API [--enable-corefoundation]], + [tcl_corefoundation=$enableval], [tcl_corefoundation=yes]) + AC_MSG_RESULT([$tcl_corefoundation]) + if test $tcl_corefoundation = yes; then + AC_CACHE_CHECK([for CoreFoundation.framework], tcl_cv_lib_corefoundation, [ + hold_libs=$LIBS + LIBS="$LIBS -framework CoreFoundation" + AC_TRY_LINK([#include <CoreFoundation/CoreFoundation.h>], + [CFBundleRef b = CFBundleGetMainBundle();], + tcl_cv_lib_corefoundation=yes, tcl_cv_lib_corefoundation=no) + LIBS=$hold_libs]) + if test $tcl_cv_lib_corefoundation = yes; then + LIBS="$LIBS -framework CoreFoundation" + AC_DEFINE(HAVE_COREFOUNDATION) + fi + fi + AC_CHECK_HEADERS(libkern/OSAtomic.h) + AC_CHECK_FUNCS(OSSpinLockLock) AC_DEFINE(MAC_OSX_TCL) - AC_DEFINE(HAVE_CFBUNDLE) AC_DEFINE(USE_VFORK) AC_DEFINE(TCL_DEFAULT_ENCODING,"utf-8") + # prior to Darwin 7, realpath is not threadsafe, so don't + # use it when threads are enabled, c.f. bug # 711232: + AC_CHECK_FUNC(realpath) + if test "$ac_cv_func_realpath" = yes -a "${TCL_THREADS}" = 1 \ + -a `uname -r | awk -F. '{print [$]1}'` -lt 7 ; then + ac_cv_func_realpath=no + fi ;; NEXTSTEP-*) SHLIB_CFLAGS="" |