diff options
author | Tim Edwards <tim@opencircuitdesign.com> | 2014-09-16 10:20:18 -0400 |
---|---|---|
committer | Tim Edwards <tim@opencircuitdesign.com> | 2014-09-16 10:20:18 -0400 |
commit | 5dc5691ea246a85d546f3c1ff01fd13279731bd2 (patch) | |
tree | 233bf593f254f5525eaa4249d094b6dac4440004 /configure.in |
Initial commit at Tue Sep 16 10:20:18 EDT 2014 by tim on stravinsky.tim.linglan.net
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 863 |
1 files changed, 863 insertions, 0 deletions
diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..eb29e48 --- /dev/null +++ b/configure.in @@ -0,0 +1,863 @@ +#!/bin/sh + +AC_INIT(VERSION,, eda-dev@opencircuitdesign.com) +AC_PREREQ(2.60) +AC_CONFIG_SRCDIR([Makefile.in]) + +# Determine the host and build type. +# =========================================================================== +AC_CANONICAL_HOST +AC_CANONICAL_TARGET + +PACKAGE=qrouter +VERSION=`cat ./VERSION | cut -d. -f1-2` +REVISION=`cat ./VERSION | cut -d. -f3` + +AC_SUBST(VERSION) +AC_SUBST(REVISION) +AC_ARG_PROGRAM + +# Required programs +# =========================================================================== +AC_PROG_CC +AC_PROG_CPP +AC_ISC_POSIX +if test "x$U" != "x"; then + AC_MSG_ERROR(Compiler not ANSI compliant) +fi +AC_PROG_INSTALL +AC_PROG_RANLIB +AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, :) +AC_CHECK_PROG(CP, cp, cp, :) +AC_CHECK_PROG(RM, rm, rm, :) + +AC_LANG_C +AC_HEADER_STDC +AC_CHECK_FUNCS(setenv putenv) + +# Linker +# ========================================= + +#------------------------------------------------------------ +# AC_PROG_LD - find the path to the GNU or non-GNU linker +# (This stuff ripped from libtool) +#------------------------------------------------------------ +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH(gnu-ld, +[ --with-gnu-ld assume the C compiler uses GNU ld [[default=no]]], +test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +dnl ###not for PostgreSQL### AC_REQUIRE([AC_CANONICAL_BUILD])dnl +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by GCC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case "$ac_prog" in + # Accept absolute paths. +changequote(,)dnl + [\\/]* | [A-Za-z]:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' +changequote([,])dnl + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(ac_cv_path_LD, +[if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + ac_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break + fi + fi + done + IFS="$ac_save_ifs" +else + ac_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$ac_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_PROG_LD_GNU +]) + +AC_DEFUN([AC_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU ld's only accept -v. +if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then + ac_cv_prog_gnu_ld=yes +else + ac_cv_prog_gnu_ld=no +fi]) +with_gnu_ld=$ac_cv_prog_gnu_ld +]) + +AC_PROG_LD + +dnl Check for va_copy +AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy, + AC_TRY_LINK( + [#include <stdarg.h>], + [va_list ap1, ap2; + va_copy(ap1,ap2); + ], + [ac_cv_c_va_copy="yes"], + [ac_cv_c_va_copy="no"]) + ) +if test "$ac_cv_c_va_copy" = "yes" +then + AC_DEFINE(HAVE_VA_COPY, 1, [Define if we have va_copy]) +fi +AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy, + AC_TRY_LINK( + [#include <stdarg.h>], + [va_list ap1, ap2; + __va_copy(ap1,ap2); + ], + [ac_cv_c___va_copy="yes"], + [ac_cv_c___va_copy="no"]) + ) +if test "$ac_cv_c___va_copy" = "yes" +then + AC_DEFINE(HAVE___VA_COPY, 1, [Define if we have __va_copy]) +fi + +# Options +# ========================================= + +QROUTER_LIB_DIR=${ac_default_prefix}/share/qrouter +AC_ARG_WITH(libdir, +[ --with-libdir=DIR path to qrouter default config files], [ + QROUTER_LIB_DIR=$withval +], []) +AC_DEFINE_UNQUOTED(QROUTER_PATH, "$QROUTER_LIB_DIR") + +# Interpreter Options +# ========================================= + +qrouter_with_tcl="yes" +qrouter_with_tk="yes" +qrouter_with_tcl_includes="" +qrouter_with_tk_includes="" +qrouter_with_tcl_libraries="" +qrouter_with_tk_libraries="" + +usingTcl=1 + +AC_ARG_WITH(tcl, +[ --with-tcl=DIR Find tclConfig.sh in DIR], [ + qrouter_with_tcl=$withval + if test "$withval" = "no" -o "$withval" = "NO"; then + usingTcl= + fi +], ) + +#----------------------------------------------------- +# SHDLIB_EXT needs to be defined outside of the +# Tcl/Tk environment, otherwise the Makefile +# target can't differentiate between qrouter and +# qrouter.so +#----------------------------------------------------- + +case $target in + *-hpux*) + SHDLIB_EXT=".sl" + ;; + *cygwin*) + SHDLIB_EXT=".dll" + ;; + *darwin*) + SHDLIB_EXT=".dylib" + ;; + *) + SHDLIB_EXT=".so" + ;; +esac + +dnl ---------------------------------------------------------------- +dnl Do our best to find Tcl/Tk. If we can't, then flag a warning +dnl and don't set the usingTcl variable. +dnl +dnl This has been broken up into a number of sections, each of which +dnl depends independently on the setting of usingTcl. +dnl ---------------------------------------------------------------- + +AC_ARG_WITH(tk, [ --with-tk=DIR Find tkConfig.sh in DIR], + qrouter_with_tk=$withval) +AC_ARG_WITH(tclincls, [ --with-tclincls=DIR Find tcl.h in DIR], + qrouter_with_tcl_includes=$withval) +AC_ARG_WITH(tkincls, [ --with-tkincls=DIR Find tk.h in DIR], + qrouter_with_tk_includes=$withval) +AC_ARG_WITH(tcllibs, [ --with-tcllibs=DIR Find Tcl library in DIR], + qrouter_with_tcl_libraries=$withval) +AC_ARG_WITH(tklibs, [ --with-tklibs=DIR Find Tk library in DIR], + qrouter_with_tk_libraries=$withval) + +# ----------------------------------------------------------------------- +# Find the Tcl build configuration file "tclConfig.sh" +# ----------------------------------------------------------------------- + +if test $usingTcl ; then + TCL_INC_DIR="." + TK_INC_DIR="." + + AC_MSG_CHECKING([for tclConfig.sh]) + tcl_config_sh="" + + if test "$qrouter_with_tcl" = "no" ; then + qrouter_with_tcl="" + elif test "$qrouter_with_tcl" != "yes" ; then + # + # Verify that a tclConfig.sh file exists in the directory specified + # by --with-tcl. + # + for dir in \ + $qrouter_with_tcl + do + if test -r "$dir/tclConfig.sh" ; then + tcl_config_sh="$dir/tclConfig.sh" + break + elif test -r "$dir/lib/tclConfig.sh" ; then + tcl_config_sh="$dir/lib/tclConfig.sh" + break + elif test -r "$dir/unix/tclConfig.sh" ; then + tcl_config_sh="$dir/unix/tclConfig.sh" + break + fi + done + else + # + # Otherwise, search for Tcl configuration file. + # + + # 1. Search previously named locations. + + for dir in \ + $prefix \ + $exec_prefix + do + if test -r "$dir/tclConfig.sh" ; then + tcl_config_sh="$dir/tclConfig.sh" + break + elif test -r "$dir/lib/tclConfig.sh" ; then + tcl_config_sh="$dir/lib/tclConfig.sh" + break + elif test -r "$dir/unix/tclConfig.sh" ; then + tcl_config_sh="$dir/unix/tclConfig.sh" + break + fi + done + + # 2. Search standard locations. + + if test "x$tcl_config_sh" = "x" ; then + for dir in \ + `ls -dr /usr/local/tcl/tcl[[7-9]].[[0-9]]* 2>/dev/null` \ + /usr/local/tcl \ + /usr/local/lib \ + /usr/local \ + `ls -dr /usr/share/tcltk/tcl[[7-9]].[[0-9]]* 2>/dev/null` \ + /sw/lib \ + /usr/lib \ + /usr/lib64 \ + /usr + do + if test -r "$dir/tclConfig.sh" ; then + tcl_config_sh="$dir/tclConfig.sh" + break + elif test -r "$dir/lib/tclConfig.sh" ; then + tcl_config_sh="$dir/lib/tclConfig.sh" + break + fi + done + fi + fi + + AC_MSG_RESULT([${tcl_config_sh}]) + + if test "x$tcl_config_sh" = "x" ; then + echo "Can't find Tcl configuration script \"tclConfig.sh\"" + echo "Reverting to non-Tcl compilation" + usingTcl= + fi +fi + +# ----------------------------------------------------------------------- +# Find the Tk build configuration file "tkConfig.sh" +# ----------------------------------------------------------------------- + +if test $usingTcl ; then + + AC_MSG_CHECKING([for tkConfig.sh]) + tk_config_sh="" + if test "$qrouter_with_tk" != "yes"; then + # + # Verify that a tkConfig.sh file exists in the directory specified + # by --with-tcl or --with-tk. + # + for dir in \ + $qrouter_with_tk \ + $qrouter_with_tcl + do + if test -r "$dir/tkConfig.sh" ; then + tk_config_sh="$dir/tkConfig.sh" + break + elif test -r "$dir/lib/tkConfig.sh" ; then + tk_config_sh="$dir/lib/tkConfig.sh" + break + elif test -r "$dir/unix/tkConfig.sh" ; then + tk_config_sh="$dir/unix/tkConfig.sh" + break + fi + done + else + # + # Search for Tk configuration file. + # + + # + # 1. Search previously named locations. + # + for dir in \ + $prefix \ + $exec_prefix + do + if test -r "$dir/tkConfig.sh" ; then + tk_config_sh="$dir/tkConfig.sh" + break + elif test -r "$dir/lib/tkConfig.sh" ; then + tk_config_sh="$dir/lib/tkConfig.sh" + break + elif test -r "$dir/unix/tkConfig.sh" ; then + tk_config_sh="$dir/unix/tkConfig.sh" + break + fi + done + # + # 2. Search standard locations. + # + if test "x$tk_config_sh" = "x" ; then + for dir in \ + `ls -dr /usr/local/tcl/tcl[[7-9]].[[0-9]]* 2>/dev/null` \ + /usr/local/tcl \ + /usr/local/lib \ + /sw/lib \ + /usr/local \ + `ls -dr /usr/share/tcltk/tk[[7-9]].[[0-9]]* 2>/dev/null` \ + ${x_libraries} \ + /usr/lib \ + /usr/lib64 \ + /usr + do + if test -r "$dir/tkConfig.sh" ; then + tk_config_sh="$dir/tkConfig.sh" + break + elif test -r "$dir/lib/tkConfig.sh" ; then + tk_config_sh="$dir/lib/tkConfig.sh" + break + fi + done + fi + fi + AC_MSG_RESULT([${tk_config_sh}]) + + if test "x$tk_config_sh" = "x" ; then + echo "can't find Tk configuration script \"tkConfig.sh\"" + echo "Reverting to non-Tcl compilation" + usingTcl= + fi +fi + +# ----------------------------------------------------------------------- +# Source in the Tcl/Tk configuration scripts. +# ----------------------------------------------------------------------- + +if test $usingTcl ; then + . $tcl_config_sh + . $tk_config_sh + + if test "$TCL_VERSION" = "7.6" -a "$TK_VERSION" = "4.2" ; then + : + elif test "$TCL_VERSION" = "7.5" -a "$TK_VERSION" = "4.1" ; then + : + elif test "$TCL_VERSION" = "$TK_VERSION" ; then + : + else + echo "Mismatched Tcl/Tk versions ($TCL_VERSION != $TK_VERSION)" + echo "Reverting to non-Tcl compile" + usingTcl= + fi +fi + +if test $usingTcl ; then + if test "x${qrouter_with_tcl_includes}" != "x" ; then + if test -r "${qrouter_with_tcl_includes}/tcl.h" ; then + TCL_INC_DIR=${qrouter_with_tcl_includes} + else + echo "Can't find tcl.h in \"${qrouter_with_tcl_includes}\"" + echo "Reverting to non-Tcl compile" + usingTcl= + fi + else + for dir in \ + ${TCL_PREFIX}/include/tcl${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION} \ + ${TCL_PREFIX}/include \ + ${TCL_SRC_DIR}/generic \ + ${TCL_INC_DIR} + do + if test -r "$dir/tcl.h" ; then + TCL_INC_DIR=$dir + break + fi + done + if test "x${TCL_INC_DIR}" = "x" ; then + echo "Can't find tcl.h header file" + echo "Reverting to non-Tcl compile" + usingTcl= + fi + fi +fi + +if test $usingTcl ; then + if test "x${qrouter_with_tk_includes}" != "x" ; then + if test -r "${qrouter_with_tk_includes}/tk.h" ; then + TK_INC_DIR=${qrouter_with_tk_includes} + else + echo "Can't find tk.h in \"${qrouter_with_tk_includes}\"" + echo "Reverting to non-Tcl compile" + usingTcl= + fi + else + for dir in \ + ${TK_PREFIX}/include/tk${TK_MAJOR_VERSION}.${TK_MINOR_VERSION} \ + ${TK_PREFIX}/include \ + ${TK_SRC_DIR}/generic \ + ${TK_INC_DIR} \ + ${TCL_INC_DIR} + do + if test -r "$dir/tk.h" ; then + TK_INC_DIR=$dir + break + fi + done + if test "x${TK_INC_DIR}" = "x" ; then + echo "Can't find tk.h header file" + echo "Reverting to non-Tcl compile" + usingTcl= + fi + fi +fi + +if test $usingTcl ; then + case $target in + *-sunos4*|*-*-netbsd|NetBSD-*|FreeBSD-*|OpenBSD-*) + TCL_LIB_NAME="tcl${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}" + TK_LIB_NAME="tk${TK_MAJOR_VERSION}${TK_MINOR_VERSION}" + ;; + *) + TCL_LIB_NAME="tcl${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}" + TK_LIB_NAME="tk${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}" + ;; + esac + + TCL_LIB_SPEC="-l${TCL_LIB_NAME}" + TK_LIB_SPEC="-l${TK_LIB_NAME}" + +# Find the version of "wish" that corresponds to TCL_EXEC_PREFIX +# We really ought to run "ldd" to confirm that the linked libraries match. + + AC_MSG_CHECKING([for wish executable]) + for dir in \ + ${TK_EXEC_PREFIX}/bin \ + ${TK_EXEC_PREFIX} + do + for wishexe in \ + wish \ + wish${TK_VERSION} \ + wish.exe \ + wish${TK_VERSION}.exe + do + if test -r "$dir/$wishexe" ; then + WISH_EXE=$dir/$wishexe + break + fi + done + if test "x${WISH_EXE}" != "x" ; then + break + fi + done + if test "x${WISH_EXE}" = "x" ; then + echo "Warning: Can't find executable for \"wish\". You may have to" + echo "manually set the value for WISH_EXE in the netgen startup script." + AC_MSG_RESULT(no) + else + AC_MSG_RESULT([${WISH_EXE}]) + fi + + if test "x${qrouter_with_tcl_libraries}" != "x" ; then + for libname in \ + "${qrouter_with_tcl_libraries}/lib${TCL_LIB_NAME}${SHDLIB_EXT}" + do + if test -r "$libname" ; then + TCL_LIB_DIR="${qrouter_with_tcl_libraries}" + break + fi + done + + if test "x${TCL_LIB_DIR}" = "x" ; then + echo "Can't find tcl library in \"${qrouter_with_tcl_libraries}\"" + echo "Reverting to non-Tcl compile" + usingTcl= + fi + else + for libpfix in "lib64" "lib" + do + libname="${TCL_EXEC_PREFIX}/${libpfix}/${DEB_HOST_MULTIARCH}/lib${TCL_LIB_NAME}${SHDLIB_EXT}" + if test -r "$libname" ; then + TCL_LIB_DIR="${TCL_EXEC_PREFIX}/${libpfix}" + break + fi + done + if test "x${TCL_LIB_DIR}" = "x" ; then + echo "Can't find tcl library" + echo "Reverting to non-Tcl compile" + usingTcl= + fi + fi +fi + +if test $usingTcl ; then + if test "x${qrouter_with_tk_libraries}" != "x" ; then + for libname in \ + "${qrouter_with_tk_libraries}/lib${TK_LIB_NAME}${SHDLIB_EXT}" + do + if test -r "$libname" ; then + TK_LIB_DIR="${qrouter_with_tk_libraries}" + break + fi + done + if test "x${TK_LIB_DIR}" = "x" ; then + echo "Can't find tk library in \"${qrouter_with_tk_libraries}\"" + echo "Reverting to non-Tcl compile" + usingTcl= + fi + else + for libpfix in "lib64" "lib" + do + libname="${TK_EXEC_PREFIX}/${libpfix}/${DEB_HOST_MULTIARCH}/lib${TK_LIB_NAME}${SHDLIB_EXT}" + if test -r "$libname" ; then + TK_LIB_DIR="${TK_EXEC_PREFIX}/${libpfix}" + break + fi + done + if test "x${TK_LIB_DIR}" = "x" ; then + echo "Can't find tk library" + echo "Reverting to non-Tcl compile" + usingTcl= + fi + fi +fi + +dnl ---------------------------------------------------- +dnl End of Tcl/Tk search +dnl ---------------------------------------------------- + +AC_ARG_ENABLE(memdebug, +[ --enable-memdebug enable memory debugging], [ + if test "x$qrouter_with_tcl" = "x" ; then + LIBS="${LIBS} -lefence" + else + AC_DEFINE(TCL_MEM_DEBUG) + fi +],) + +dnl Check for X enabled/disabled + +AC_PATH_XTRA +if test "x$no_x" = "x"; then + usingX11=1 +else + echo Cannot find X11---will compile anyway. + echo Graphics will be disabled + if test $usingTcl ; then + echo "Cannot compile TCL version without X11, disabling." + usingTcl= + fi +fi + +AC_CHECK_LIB(Xt, XtToolkitInitialize,,[ +AC_CHECK_LIB(Xt, XtDisplayInitialize,,,-lSM -lICE -lXpm -lX11)]) + +dnl ---------------------------------------------------------------- +dnl Once we're sure what, if any, interpreter is being compiled, +dnl set all the appropriate definitions. For Tcl/Tk, override +dnl the default install targets: allows compiling tcl version with +dnl "make" instead of requiring "make tcl" +dnl ---------------------------------------------------------------- + +if test $usingTcl ; then + ALL_TARGET="tcl" + INSTALL_TARGET="install-tcl" + AC_DEFINE(TCL_QROUTER) +else + ALL_TARGET="nointerp" + INSTALL_TARGET="install-nointerp" + programs="$programs qrouter" +fi + +dnl ---------------------------------------------------------------- +dnl Define system-specific settings +dnl ---------------------------------------------------------------- + +case $target in + *-linux*) + AC_DEFINE(LINUX) + AC_DEFINE(SYSV) + dnl 64-bit support + case $target in + *x86_64*) + CPPFLAGS="$CPPFLAGS -m64 -fPIC" + ;; + esac + ;; + *solaris*) + AC_DEFINE(SYSV) + ;; + *irix*) + AC_DEFINE(SYSV) + AC_DEFINE(IRIX) + AC_DEFINE(_BSD_SIGNALS) + ;; + *sysv*) + AC_DEFINE(SYSV) + ;; + *cygwin*) + AC_DEFINE(CYGWIN) + AC_DEFINE(i386) + AC_DEFINE(WIN32) + ;; + *darwin*) + if test "$CPP" = "cc -E" ; then + CPPFLAGS="$CPPFLAGS -no-cpp-precomp" + fi + ;; +esac +# ----------------------------------------------------------------------- +# Tcl/Tk configuration +# ----------------------------------------------------------------------- + +if test $usingTcl ; then + +# ----------------------------------------------------------------------- +# +# Tk libraries and header files +# +# ----------------------------------------------------------------------- + if test "${TK_INC_DIR}" != "/usr/include" ; then + INC_SPECS="${INC_SPECS} -I${TK_INC_DIR}" + fi + if test "${TK_LIB_DIR}" = "/usr/lib" -o \ + "${TK_LIB_DIR}" = "/usr/lib64" ; then + LIB_SPECS="${LIB_SPECS} ${TK_LIB_SPEC}" + else + LIB_SPECS="${LIB_SPECS} -L${TK_LIB_DIR} ${TK_LIB_SPEC}" + if test "x${loader_run_path}" = "x" ; then + loader_run_path="${TK_LIB_DIR}" + else + loader_run_path="${TK_LIB_DIR}:${loader_run_path}" + fi + fi + +# ----------------------------------------------------------------------- +# +# Tcl libraries and header files +# +# Add a header file directory specification only if the Tcl headers reside +# in a different directory from Tk's. +# +## ----------------------------------------------------------------------- + if test "${TCL_INC_DIR}" != "/usr/include" -a \ + "${TCL_INC_DIR}" != "${TK_INC_DIR}" ; then + INC_SPECS="${INC_SPECS} -I${TCL_INC_DIR}" + fi + + if test "${TCL_LIB_DIR}" = "/usr/lib" -o \ + "${TCL_LIB_DIR}" = "/usr/lib64" -o \ + "${TCL_LIB_DIR}" = "${TK_LIB_DIR}" ; then + LIB_SPECS="${LIB_SPECS} ${TCL_LIB_SPEC}" + else + LIB_SPECS="${LIB_SPECS} -L${TCL_LIB_DIR} ${TCL_LIB_SPEC}" + if test "x${loader_run_path}" = "x" ; then + loader_run_path="${TCL_LIB_DIR}" + else + loader_run_path="${TCL_LIB_DIR}:${loader_run_path}" + fi + fi + +#-------------------------------------------------------------------- +# +# Check if we can generate shared libraries on this system. Set flags +# to generate shared libraries for systems that we know about. Start +# with the values found in tclConfig.sh, make changes as we know about +# the different systems. +# +#-------------------------------------------------------------------- + +# Initialize shared library build variables + + SHLIB_LD="" + LDDL_FLAGS="-shared" + SHDLIB_EXT=".so" + EXTRA_LIB_SPECS="" + + build_shared="yes" + + case $target in + *-bsdi2*|*-bsdi3*) + LD="shlicc" + LDDL_FLAGS="-r" + EXTRA_LIB_SPECS="-ldl" + ;; + + *darwin*) + SHDLIB_EXT=".dylib" + LDDL_FLAGS="-dynamiclib -flat_namespace -undefined suppress -noprebind" + LDFLAGS="${LDFLAGS} ${LIB_SPECS}" + CFLAGS="${CFLAGS} ${X_CFLAGS} ${INC_SPECS} -I/sw/include -fno-common" + ;; + + *cygwin*) + SHDLIB_EXT=".dll" + AC_DEFINE(USE_DL_IMPORT) + LDDL_FLAGS='-shared -Wl,--enable-auto-image-base' + if test "x${loader_run_path}" != "x" ; then + LD_RUN_PATH="${LD_RUN_PATH} -Wl,-rpath,${loader_run_path}" + fi + ld_extra_libs=${LIB_SPECS} + sub_extra_libs='-L${QROUTERDIR}/qrouter -ltclqrouter' + ;; + + *-bsdi4*) + SHLIB_CFLAGS="-export-dynamic -fPIC" + LDDL_FLAGS='-shared -Wl,-E -Wl,-soname,$@' + ;; + + *-linux*) + LDDL_FLAGS='-shared -Wl,-soname,$@' + if test "x${loader_run_path}" != "x" ; then + LD_RUN_PATH="${LD_RUN_PATH} -Wl,-rpath,${loader_run_path}" + fi + LDFLAGS="" + EXTRA_LIB_SPECS="-ldl" + ;; + + *-freebsd*) + # Not available on all versions: check for include file. + SHLIB_CFLAGS="-fpic" + LDDL_FLAGS="-shared ${LIB_SPECS}" + CFLAGS="${CFLAGS} -l/usr/X11R6/include" + ;; + + *-netbsd*|*-openbsd*) + # Not available on all versions: check for include file. + AC_CHECK_HEADER(dlfcn.h, test_ok=yes, test_ok=no) + if test "$test_ok" = yes; then + SHLIB_CFLAGS="-fpic" + LDDL_FLAGS="-Bshareable -x ${LIB_SPEC}" + fi + ;; + + esac + +# If we're running gcc, then set SHLIB_CFLAGS flags for compiling +# shared libraries for gcc, instead of those of the vendor's compiler. + + if test "$GCC" = "yes" ; then + case $target in + *cygwin*) + ;; + *) + SHLIB_CFLAGS="-fPIC" + ;; + esac + fi + if test "$with_gnu_ld" = "yes" ; then + LDDL_FLAGS="${LDDL_FLAGS} -Wl,--version-script=symbol.map" + fi + + AC_SUBST(SHDLIB_EXT) + AC_SUBST(SHLIB_LD) + AC_SUBST(LD) + AC_SUBST(LDDL_FLAGS) + AC_SUBST(SHLIB_LIB_SPECS) + + AC_SUBST(EXTRA_LIB_SPECS) + AC_SUBST(LDFLAGS) + AC_SUBST(INC_SPECS) + AC_SUBST(LIB_SPECS) + AC_SUBST(TCL_LIB_DIR) + AC_SUBST(TK_LIB_DIR) + AC_SUBST(WISH_EXE) + + AC_SUBST(X_LIBS) + AC_SUBST(X_EXTRA_LIBS) + AC_SUBST(X_PRE_LIBS) + AC_SUBST(X_CFLAGS) + AC_SUBST(SHLIB_CFLAGS) + AC_SUBST(LD_RUN_PATH) + +fi + +dnl Substitute all variables + +AC_SUBST(CPPFLAGS) +AC_SUBST(CFLAGS) +AC_SUBST(STDLIBS) + +AC_SUBST(ALL_TARGET) +AC_SUBST(INSTALL_TARGET) + +AC_SUBST(QROUTER_LIB_DIR) + +AC_DEFINE_UNQUOTED(VERSION, "$VERSION") +AC_DEFINE_UNQUOTED(REVISION, "$REVISION") + +AC_OUTPUT(Makefile) + |