Index: kitdll/buildsrc/kitdll-0.0/aclocal.m4 ================================================================== --- kitdll/buildsrc/kitdll-0.0/aclocal.m4 +++ kitdll/buildsrc/kitdll-0.0/aclocal.m4 @@ -215,10 +215,31 @@ cygwin*) CFLAGS="${CFLAGS} -mms-bitfields" ;; esac ]) + +AC_DEFUN(DC_TEST_WHOLE_ARCHIVE_SHARED_LIB, [ + SAVE_LIBS="${LIBS}" + + LIBS="-Wl,--whole-archive $1 -Wl,--no-whole-archive ${SAVE_LIBS}" + AC_LINK_IFELSE( + AC_LANG_PROGRAM([[ + ]], [[ + ]] + ), + [ + LIBS="${SAVE_LIBS}" + + $2 + ], [ + LIBS="${SAVE_LIBS}" + + $3 + ] + ) +]) AC_DEFUN(DC_FIND_TCLKIT_LIBS, [ DC_SETUP_TCL_PLAT_DEFS WISH_CFLAGS="" @@ -229,17 +250,30 @@ libdir="../../../${proj}/inst" libfiles="`find "${libdir}" -name '*.a' 2>/dev/null | tr "\n" ' '`" libfilesnostub="`find "${libdir}" -name '*.a' 2>/dev/null | grep -v 'stub' | tr "\n" ' '`" if test "$proj" = "tcl"; then - libfiles="${libfilesnostub}" + DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $libfilesnostub], [ + libfiles="${libfilesnostub}" + ], [ + DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $libfiles], [ + libfiles="${libfiles}" + ]) + ]) fi if test "$proj" = "tk"; then - libfiles="${libfilesnostub}" if test -n "$libfiles"; then DC_DO_TK + DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $libfilesnostub], [ + libfiles="${libfilesnostub}" + ], [ + DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $libfiles], [ + libfiles="${libfiles}" + ]) + ]) + AC_DEFINE(KIT_INCLUDES_TK, [1], [Specify this if we link statically to Tk]) if test -n "${TK_VERSION}"; then AC_DEFINE_UNQUOTED(KIT_TK_VERSION, "${TK_VERSION}${TK_PATCH_LEVEL}", [Specify the version of Tk]) fi