From 45712a04f15bceb0a1bd6909026ce4f5fae1bf07 Mon Sep 17 00:00:00 2001 From: Tim Edwards Date: Fri, 24 Feb 2023 10:42:59 -0500 Subject: [PATCH] Removed X11 definitions from the configuration when compiling with Tcl, since Tk is launched independently through the console script and nothing inside of netgen itself involves graphics. This prevents netgenexec from linking to Tk and X11 libraries. --- VERSION | 2 +- scripts/configure | 23 +- scripts/configure.in | 9 +- scripts/configure.in.bak | 1362 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 1390 insertions(+), 6 deletions(-) create mode 100644 scripts/configure.in.bak diff --git a/VERSION b/VERSION index dcec828..6cf21ce 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.244 +1.5.245 diff --git a/scripts/configure b/scripts/configure index 640aa87..3e87a98 100755 --- a/scripts/configure +++ b/scripts/configure @@ -712,6 +712,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -794,6 +795,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1046,6 +1048,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1183,7 +1194,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1336,6 +1347,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -6065,7 +6077,6 @@ fi if test $usingTcl ; then - usingX11=1 cadinstall="$cadinstall tcltk" modules="$modules tcltk" programs="$programs tcltk" @@ -6075,7 +6086,11 @@ if test $usingTcl ; then extra_libs="$extra_libs \${NETGENDIR}/tcltk/libtcltk.o" extra_defs="$extra_defs -DTCL_DIR=\\\"\${TCLDIR}\\\"" - stub_defs="$stub_defs -DUSE_TCL_STUBS -DUSE_TK_STUBS" + if test $usingX11 ; then + stub_defs="$stub_defs -DUSE_TCL_STUBS" + else + stub_defs="$stub_defs -DUSE_TCL_STUBS -DUSE_TK_STUBS" + fi else programs="$programs netgen" unused="$unused tcltk" @@ -6160,6 +6175,7 @@ if test $usingTcl ; then # Tk libraries and header files # # ----------------------------------------------------------------------- +if test $usingX11 ; then if test "${TK_INC_DIR}" != "/usr/include" ; then INC_SPECS="${INC_SPECS} -I${TK_INC_DIR}" fi @@ -6176,6 +6192,7 @@ if test $usingTcl ; then loader_run_path="${TK_LIB_DIR}:${loader_run_path}" fi fi +fi # ----------------------------------------------------------------------- # diff --git a/scripts/configure.in b/scripts/configure.in index c2ba310..2fd099f 100644 --- a/scripts/configure.in +++ b/scripts/configure.in @@ -807,7 +807,6 @@ dnl "make" instead of requiring "make tcl" dnl ---------------------------------------------------------------- if test $usingTcl ; then - usingX11=1 cadinstall="$cadinstall tcltk" modules="$modules tcltk" programs="$programs tcltk" @@ -816,7 +815,11 @@ if test $usingTcl ; then AC_DEFINE(TCL_NETGEN) extra_libs="$extra_libs \${NETGENDIR}/tcltk/libtcltk.o" extra_defs="$extra_defs -DTCL_DIR=\\\"\${TCLDIR}\\\"" - stub_defs="$stub_defs -DUSE_TCL_STUBS -DUSE_TK_STUBS" + if test $usingX11 ; then + stub_defs="$stub_defs -DUSE_TCL_STUBS" + else + stub_defs="$stub_defs -DUSE_TCL_STUBS -DUSE_TK_STUBS" + fi else programs="$programs netgen" unused="$unused tcltk" @@ -903,6 +906,7 @@ if test $usingTcl ; then # Tk libraries and header files # # ----------------------------------------------------------------------- +if test $usingX11 ; then if test "${TK_INC_DIR}" != "/usr/include" ; then INC_SPECS="${INC_SPECS} -I${TK_INC_DIR}" fi @@ -919,6 +923,7 @@ if test $usingTcl ; then loader_run_path="${TK_LIB_DIR}:${loader_run_path}" fi fi +fi # ----------------------------------------------------------------------- # diff --git a/scripts/configure.in.bak b/scripts/configure.in.bak new file mode 100644 index 0000000..c2ba310 --- /dev/null +++ b/scripts/configure.in.bak @@ -0,0 +1,1362 @@ +dnl Process this file with autoconf to produce a configure script. +dnl Use autoconf 2.52 or newer. + +AC_INIT(netgen, 1.3, eda-dev@opencircuitdesign.com) +AC_PREREQ(2.52) +AC_CONFIG_SRCDIR(rules.mak) +AC_CONFIG_AUX_DIR(.) + +AC_CANONICAL_SYSTEM + +dnl pass the version string on the the makefiles +PACKAGE=netgen +NETGEN_VERSION=`cat ../VERSION | cut -d. -f1-2` +NETGEN_REVISION=`cat ../VERSION | cut -d. -f3` +AC_DEFINE_UNQUOTED(NETGEN_VERSION, "${NETGEN_VERSION}") +AC_DEFINE_UNQUOTED(NETGEN_REVISION, "${NETGEN_REVISION}") + +dnl Override default target when compiling under TCL +ALL_TARGET="standard" +INSTALL_TARGET="install-netgen" + +dnl Checks for programs. +AC_PROG_CC +AC_PROG_CPP +AC_ISC_POSIX +AC_PROG_INSTALL +AC_PROG_RANLIB + +dnl GNU M4 is preferred due to some of the option switches. +AC_PATH_PROGS([M4], [gm4 gnum4 m4], [no]) +if test x$M4 = xno; then + AC_MSG_ERROR([M4 is required]) +fi + +dnl check size of pointer for correct behavior on 64-bit systems +dnl If the C preprocessor is GCC, we need to force the flag to +dnl assert that input files are of type C, or else the preprocessing +dnl stage will not execute correctly on the ".in" files in the scmos +dnl directory. + +if test "$CPP" = "$CC -E" ; then + CPP="$CPP -x c" +fi + +dnl check if the linker is a GNU 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 &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 + +AC_CHECK_SIZEOF([void *], 4) +AC_CHECK_SIZEOF([unsigned int], 4) +AC_CHECK_SIZEOF([unsigned long], 4) +AC_CHECK_SIZEOF([unsigned long long], 8) + +dnl Check byte arrangement for doubleint routines +AC_C_BIGENDIAN + +dnl Check for required header files +AC_HEADER_STDC + +dnl Need either setenv or putenv +AC_CHECK_FUNCS(setenv putenv) + +dnl Check for vfork +AC_CHECK_FUNC(vfork) + +dnl Check for +AC_CHECK_HEADERS(dirent.h) + +dnl Check for +AC_CHECK_HEADERS(limits.h) + +dnl Check for +AC_CHECK_HEADERS(param.h) + +dnl Check for Python3 +AC_CHECK_PROG(HAVE_PYTHON3, python3, yes, no) + +dnl Check for va_copy +AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy, + AC_TRY_LINK( + [#include ], + [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 ], + [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 + +# Note that it is essential to disable the DBUG packages, as it is +# not ANSI-compliant and won't compile without quite a bit of work. +AC_DEFINE(DBUG_OFF) + +stub_defs="" +extra_defs="$extra_defs -DCAD_DIR=\\\"\${LIBDIR}\\\"" +X_LIBS= +X_CFLAGS= +CPPFLAGS= +INC_SPECS= +DEPEND_FLAG= +SHLIB_CFLAGS="" +LD_RUN_PATH="" +WISH_EXE="" +TCLSH_EXE="" +CXX= + +modules="" +unused="" +cadinstall="" +extra_libs="" +other_srcs="" +top_extra_libs="" +sub_extra_libs="" +ld_extra_libs="" +ld_extra_objs="" +programs="" +rl_defs= +rl_libs= +gr_cflags= +gr_dflags= +gr_libs= +gr_srcs= +gr_hsrcs= +gr_hprog= + +netgen_with_tcl="yes" +netgen_with_tk="yes" +netgen_with_tcl_includes="" +netgen_with_tk_includes="" +netgen_with_tcl_libraries="" +netgen_with_tk_libraries="" + +dnl We will attempt to configure with Tcl/Tk and OpenGL. However, +dnl if checks for the appropriate header and library files fail, +dnl we will revert to non-Tcl and/or non-OpenGL compilation. +dnl Compilation for Tcl/Tk may be explicitly prohibited by using +dnl --with-tcl=no or --with-interpreter=no, and OpenGL may be +dnl disabled with --with-opengl=no + +usingTcl=1 +usingX11= + +dnl Compile-time options below. . . + +# For distributed installs, where the run-time files are installed in a +# place that is a temporary staging area, like DESTDIR, but unlike DESTDIR, +# the prefix is replaced by the destination directory, rather than appended +# to it. +DIST_DIR="\${exec_prefix}" +AC_ARG_WITH(distdir, +[ --with-distdir=DIR install into location DIR for distribution], [ + if test "$withval" = "no" -o "$withval" = "NO" ; then + DIST_DIR="\${exec_prefix}" + else + DIST_DIR=${withval} + fi +], ) + +AC_ARG_WITH(interpreter, +[ --with-interpreter=[arg] enable interpreter], [ + if test "$withval" = "no" -o "$withval" = "NO"; then + usingTcl= + elif test "$withval" = "scheme" -o "$withval" = "SCHEME"; then + usingScheme=1 + usingTcl= + elif test "$withval" != "tcl" -a "$withval" != "TCL"; then + echo "Unknown option to --with-interpreter: Must be scheme, tcl, or no." + exit 1 + fi +], ) + +AC_ARG_WITH(tcl, +[ --with-tcl=DIR Find tclConfig.sh in DIR], [ + netgen_with_tcl=$withval + if test "$withval" = "no" -o "$withval" = "NO"; then + usingTcl= + elif test $usingScheme ; then + echo Attempt to enable both Tcl and Scheme interpreters. + echo Disabling Tcl, and using Scheme instead. + usingTcl= + fi +], ) + +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], + netgen_with_tk=$withval) +AC_ARG_WITH(tclincls, [ --with-tclincls=DIR Find tcl.h in DIR], + netgen_with_tcl_includes=$withval) +AC_ARG_WITH(tkincls, [ --with-tkincls=DIR Find tk.h in DIR], + netgen_with_tk_includes=$withval) +AC_ARG_WITH(tcllibs, [ --with-tcllibs=DIR Find Tcl library in DIR], + netgen_with_tcl_libraries=$withval) +AC_ARG_WITH(tklibs, [ --with-tklibs=DIR Find Tk library in DIR], + netgen_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 "$netgen_with_tcl" = "no" ; then + netgen_with_tcl="" + elif test "$netgen_with_tcl" != "yes" ; then + # + # Verify that a tclConfig.sh file exists in the directory specified + # by --with-tcl. + # + for dir in \ + $netgen_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 \ + $ac_default_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/lib64 \ + /usr/local \ + `ls -dr /usr/lib/tcl[[7-9]].[[0-9]]* 2>/dev/null` \ + /sw/lib \ + /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 "$netgen_with_tk" != "yes"; then + # + # Verify that a tkConfig.sh file exists in the directory specified + # by --with-tcl or --with-tk. + # + for dir in \ + $netgen_with_tk \ + $netgen_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 \ + $ac_default_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` \ + `ls -dr /usr/local/tk/tk[[7-9]].[[0-9]]* 2>/dev/null` \ + /usr/local/tcl \ + /usr/local/lib \ + /usr/lib64 \ + /usr/local \ + `ls -dr /usr/lib/tcl[[7-9]].[[0-9]]* 2>/dev/null` \ + `ls -dr /usr/lib/tk[[7-9]].[[0-9]]* 2>/dev/null` \ + /sw/lib \ + ${x_libraries} \ + /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 + + # Should probably trust the config file contents, but this configure + # file checks the Tcl and Tk include and lib directories. Since + # the config file doesn't separate out the libraries from the strings + # passed to the compiler/linker, do it manually here. + # + # Extract TCL_LIB_DIR from TCL_LIB_SPEC + # Extract TK_LIB_DIR from TK_LIB_SPEC + # Extract TCL_INC_DIR from TCL_INCLUDE_SPEC + # Extract TK_INC_DIR from TK_INCLUDE_SPEC + # + # These will be the defaults unless overridden by configure command line + + tmpstr=${TCL_LIB_SPEC#*-L} + TCL_LIB_DIR=${tmpstr% -l*} + tmpstr=${TK_LIB_SPEC#*-L} + TK_LIB_DIR=${tmpstr% -l*} + TCL_INC_DIR=${TCL_INCLUDE_SPEC#*-I} + TK_INC_DIR=${TK_INCLUDE_SPEC#*-I} + + 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${netgen_with_tcl_includes}" != "x" ; then + if test -r "${netgen_with_tcl_includes}/tcl.h" ; then + TCL_INC_DIR=${netgen_with_tcl_includes} + else + echo "Can't find tcl.h in \"${netgen_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${netgen_with_tk_includes}" != "x" ; then + if test -r "${netgen_with_tk_includes}/tk.h" ; then + TK_INC_DIR=${netgen_with_tk_includes} + else + echo "Can't find tk.h in \"${netgen_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 + + loclib=`echo ${TCL_LIB_SPEC} | sed -e 's/.*-L//' -e 's/ .*//'` + + if test "x${TCL_LIB_SPEC}" = "x" ; then + TCL_LIB_SPEC="-l${TCL_LIB_NAME}" + fi + if test "x${TK_LIB_SPEC}" = "x" ; then + TK_LIB_SPEC="-l${TK_LIB_NAME}" + fi + +# 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 + +# Find the version of "tclsh" that corresponds to TCL_EXEC_PREFIX + + AC_MSG_CHECKING([for tclsh executable]) + for dir in \ + ${TK_EXEC_PREFIX}/bin \ + ${TK_EXEC_PREFIX} + do + for tclshexe in \ + tclsh \ + tclsh${TK_VERSION} \ + tclsh.exe \ + tclsh${TK_VERSION}.exe + do + if test -r "$dir/$tclshexe" ; then + TCLSH_EXE=$dir/$tclshexe + break + fi + done + if test "x${TCLSH_EXE}" != "x" ; then + break + fi + done + if test "x${TCLSH_EXE}" = "x" ; then + echo "Warning: Can't find executable for \"tclsh\"." + AC_MSG_RESULT(no) + else + AC_MSG_RESULT([${TCLSH_EXE}]) + fi + +# Have to define SHDLIB_EXT here even though we have to do it below, too. + case $target in + *-hpux*) + SHDLIB_EXT=".sl" + SHDLIB_EXT_ALT=".sl" + ;; + *cygwin*) + SHDLIB_EXT=".dll" + SHDLIB_EXT_ALT=".dll.a" + ;; + *darwin*) + SHDLIB_EXT=".dylib" + SHDLIB_EXT_ALT=".dylib" + ;; + *) + SHDLIB_EXT=".so" + SHDLIB_EXT_ALT=".so" + ;; + esac + + if test "x${netgen_with_tcl_libraries}" != "x" ; then + for libname in \ + "${netgen_with_tcl_libraries}/lib${TCL_LIB_FILE}" \ + "${netgen_with_tcl_libraries}/lib${TCL_LIB_NAME}${SHDLIB_EXT}" \ + "${netgen_with_tcl_libraries}/lib${TCL_LIB_NAME}${SHDLIB_EXT_ALT}" + do + if test -r "$libname" ; then + TCL_LIB_DIR="${netgen_with_tcl_libraries}" + break + fi + done + + if test "x${TCL_LIB_DIR}" = "x" ; then + echo "Can't find tcl library in \"${netgen_with_tcl_libraries}\"" + echo "Reverting to non-Tcl compile" + usingTcl= + fi + else + for libname in \ + "${loclib:=${TCL_EXEC_PREFIX}/lib}/lib${TCL_LIB_NAME}${SHDLIB_EXT}" \ + "${loclib:=${TCL_EXEC_PREFIX}/lib}/lib${TCL_LIB_NAME}${SHDLIB_EXT_ALT}" \ + "${loclib:=${TCL_EXEC_PREFIX}/lib64}/lib${TCL_LIB_NAME}${SHDLIB_EXT}" + do + if test -r "$libname" ; then + TCL_LIB_DIR="${TCL_EXEC_PREFIX}/lib" + 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${netgen_with_tk_libraries}" != "x" ; then + for libname in \ + "${netgen_with_tk_libraries}/${TCL_LIB_FILE}" \ + "${netgen_with_tk_libraries}/lib${TK_LIB_NAME}${SHDLIB_EXT}" \ + "${netgen_with_tk_libraries}/lib${TK_LIB_NAME}${SHDLIB_EXT_ALT}" + do + if test -r "$libname" ; then + TK_LIB_DIR="${netgen_with_tk_libraries}" + break + fi + done + if test "x${TK_LIB_DIR}" = "x" ; then + echo "Can't find tk library in \"${netgen_with_tk_libraries}\"" + echo "Reverting to non-Tcl compile" + usingTcl= + fi + else + for libname in \ + "${loclib:=${TK_EXEC_PREFIX}/lib}/lib${TK_LIB_NAME}${SHDLIB_EXT}" \ + "${loclib:=${TK_EXEC_PREFIX}/lib}/lib${TK_LIB_NAME}${SHDLIB_EXT_ALT}" \ + "${loclib:=${TK_EXEC_PREFIX}/lib64}/lib${TK_LIB_NAME}${SHDLIB_EXT}" + do + if test -r "$libname" ; then + TK_LIB_DIR="${TK_EXEC_PREFIX}/lib" + 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 ---------------------------------------------------- + +dnl The X11 version of the non-Tcl-based netgen is so awful +dnl we don't really want to advertise it. So, you have to +dnl specifically do "--with-widgets=" to get HAVE_X11 set; +dnl otherwise, you get the command-line interface, which is +dnl much more pleasant. + +AC_ARG_WITH(widgets, +[ --with-widgets=[arg] select widget set], [ + if test "$withval" = "xw" -o "$withval" = "Xw"; then + usingX11=1 + usingTcl= + gr_dflags="${gr_dflags} -DHAVE_X11 -DX11_HP_WIDGETS" + gr_libs="${gr_libs} -lXw -lXt" + elif test "$withval" = "Xm" -o "$withval" = "Motif"; then + usingX11=1 + usingTcl= + gr_dflags="${gr_dflags} -DHAVE_X11 -DX11_MOTIF_WIDGETS" + gr_libs="${gr_libs} -lXm -lXt" + else + usingX11=1 + usingTcl= + gr_dflags="${gr_dflags} -DHAVE_X11 -DX11_ATHENA_WIDGETS" + gr_libs="${gr_libs} -lXaw -lXmu -lXt -lXext" + fi +], ) + +dnl Check for X enabled/disabled + +AC_PATH_XTRA +if test "x$no_x" != "x"; then + if test $usingX11 ; then + echo Cannot find X11---will attempt to compile anyway. + echo Graphics options will be NULL only! + usingX11= + fi + if test $usingTcl ; then + echo "Cannot compile TCL version without X11, disabling." + usingTcl= + fi +fi + +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 + usingX11=1 + cadinstall="$cadinstall tcltk" + modules="$modules tcltk" + programs="$programs tcltk" + ALL_TARGET="tcl" + INSTALL_TARGET="install-tcl" + AC_DEFINE(TCL_NETGEN) + extra_libs="$extra_libs \${NETGENDIR}/tcltk/libtcltk.o" + extra_defs="$extra_defs -DTCL_DIR=\\\"\${TCLDIR}\\\"" + stub_defs="$stub_defs -DUSE_TCL_STUBS -DUSE_TK_STUBS" +else + programs="$programs netgen" + unused="$unused tcltk" +fi + +dnl If usingAthena is set, and we are using X11, then no widget +dnl set has been selected with "--with-widgets", so we default +dnl to the X11 Athena widget set. + +dnl ---------------------------------------------------------------- +dnl Handle graphics based on the setting of "usingTcl", "usingX11", +dnl "usingOGL", and "usingBLT" +dnl ---------------------------------------------------------------- + +if test $usingTcl ; then + if test $usingX11 ; then + gr_dflags="$gr_dflags -DX11 -DXLIB" + gr_libs="$gr_libs -lX11" + gr_srcs="$gr_srcs \${TK_SRCS}" + else + gr_srcs="$gr_srcs \${NULL_SRCS}" + fi +else + if test $usingX11 ; then + gr_dflags="$gr_dflags -DX11 -DXLIB" + gr_libs="$gr_libs -lX11" + gr_srcs="$gr_srcs \${X11_SRCS}" + fi +fi + +dnl ---------------------------------------------------------------- +dnl Define system-specific settings +dnl ---------------------------------------------------------------- + +case $target in + *-linux*) + AC_DEFINE(linux) + AC_DEFINE(SYSV) + dnl Defining "ISC" prevents compiler failure on redefinition of "wchar_t" + AC_DEFINE(ISC) + dnl 64-bit support for AMD Opteron + case $target in + *x86_64*) + CFLAGS="${CFLAGS} -m64 -fPIC" + ;; + esac + if test -f /usr/lib/libbsd-compat.a ; then + gr_libs="$gr_libs -lbsd-compat" + elif test -f /usr/lib/libbsd.a ; then + gr_libs="$gr_libs -lbsd" + fi + ;; + *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) + ;; + *darwin*) + $as_echo "#define macosx macos" >> confdefs.h + if test "$CPP" = "cc -E" ; then + CPPFLAGS="$CPPFLAGS -no-cpp-precomp" + fi + ;; +esac +# ----------------------------------------------------------------------- +# Tcl/Tk configuration +# ----------------------------------------------------------------------- + +if test $usingTcl ; then + LIB_SPECS_NOSTUB="${LIB_SPECS}" + +# ----------------------------------------------------------------------- +# +# 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_NOSTUB="${LIB_SPECS_NOSTUB} ${TK_LIB_SPEC}" + LIB_SPECS="${LIB_SPECS} ${TK_STUB_LIB_SPEC}" + else + LIB_SPECS_NOSTUB="${LIB_SPECS_NOSTUB} -L${TK_LIB_DIR} ${TK_LIB_SPEC}" + LIB_SPECS="${LIB_SPECS} -L${TK_LIB_DIR} ${TK_STUB_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_NOSTUB="${LIB_SPECS_NOSTUB} ${TCL_LIB_SPEC}" + LIB_SPECS="${LIB_SPECS} ${TCL_STUB_LIB_SPEC}" + else + LIB_SPECS_NOSTUB="${LIB_SPECS_NOSTUB} -L${TCL_LIB_DIR} ${TCL_LIB_SPEC}" + LIB_SPECS="${LIB_SPECS} -L${TCL_LIB_DIR} ${TCL_STUB_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 + *-aix4.[[2-9]]*) + # No Position-Independent flags needed + + # Use the installed export file or the one found in the source directory. + + if test -r "${TCL_LIB_DIR}/lib${TCL_LIB_NAME}.exp" ; then + tcl_exp="${TCL_LIB_DIR}/lib${TCL_LIB_NAME}.exp" + else + tcl_exp="${TCL_SRC_DIR}/unix/lib.exp" + fi + if test -r "${TK_LIB_DIR}/lib${TK_LIB_NAME}.exp" ; then + tk_exp="${TK_LIB_DIR}/lib${TK_LIB_NAME}.exp" + else + tk_exp="${TK_SRC_DIR}/unix/lib.exp" + fi + + full_src_path=`cd ${srcdir}; pwd` + + # Use shell-script to link shared library + LD="${full_src_path}/cf/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry -bI:${tk_exp} -bI:${tcl_exp}" + + SHLIB_LIB_SPECS="${aix_lib_specs} -lc" + + LDFLAGS="-L${loader_run_path}" + EXTRA_LIB_SPECS="-ldl" + ;; + + *-aix*) + # No Position-Independent flags needed + + # Use the installed export file or the one found in the source directory. + + if test -r "${TCL_LIB_DIR}/lib${TCL_LIB_NAME}.exp" ; then + tcl_exp="${TCL_LIB_DIR}/lib${TCL_LIB_NAME}.exp" + else + tcl_exp="${TCL_SRC_DIR}/unix/lib.exp" + fi + if test -r "${TK_LIB_DIR}/lib${TK_LIB_NAME}.exp" ; then + tk_exp="${TK_LIB_DIR}/lib${TK_LIB_NAME}.exp" + else + tk_exp="${TK_SRC_DIR}/unix/lib.exp" + fi + + full_src_path=`cd ${srcdir}/cf; pwd` + + # Use shell-script to link shared library + + LD="${full_src_path}/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry -bI:${tk_exp} -bI:${tcl_exp}" + SHLIB_LIB_SPECS="${aix_lib_specs} -lc" + LDFLAGS="-L${loader_run_path}" + EXTRA_LIB_SPECS="-lld" + ;; + + *-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${NETGENDIR}/netgen -ltclnetgen' + ;; + + *-bsdi4*) + SHLIB_CFLAGS="-export-dynamic -fPIC" + LDDL_FLAGS='-shared -Wl,-E -Wl,-soname,$@' + ;; + + *-dgux*) + SHLIB_CFLAGS="-K PIC" + LDDL_FLAGS="-G" + EXTRA_LIB_SPECS="-ldl" + ;; + + *-hpux*) + if test "$GCC" = "no" ; then + AC_DEFINE(_HPUX_SOURCE) + fi + AC_CHECK_LIB(dld, shl_load, [found=yes], [found=no]) + if test "${found}" = "yes" ; then + SHLIB_CFLAGS="+z" + LDDL_FLAGS="-b -E -n +s +b,${loader_run_path}:." + SHDLIB_EXT=".sl" + + # The run path is included in both LDFLAGS and LDDL_FLAGS + # because SHLIB_LD is ld and LD is cc/gcc. + + LDFLAGS="-Wl,-E -Wl,+s,+b,${loader_run_path}:." + EXTRA_LIB_SPECS="-ldld" + fi + ;; + + *-irix64-6.5*) + LDDL_FLAGS="-32 -shared -rdata_shared" + if test "x${loader_run_path}" != "x" ; then + LD_RUN_PATH="${LD_RUN_PATH} -Wl,-rpath,${loader_run_path}" + fi + ;; + + *-irix-[56].*|*-irix64-*) + LDDL_FLAGS="-shared -rdata_shared" + if test "x${loader_run_path}" != "x" ; then + LD_RUN_PATH="${LD_RUN_PATH} -Wl,-rpath,${loader_run_path}" + fi + LDFLAGS="" + if test "$GCC" = "yes" ; then + SHLIB_CFLAGS="-mabi=n32 $SHLIB_CFLAGS" + LDDL_FLAGS="-mabi=n32 $LDDL_FLAGS" + LDFLAGS="-mabi=n32 $LDFLAGS" + else + CFLAGS="-n32 $CFLAGS" + LDFLAGS="-n32 $LDFLAGS" + fi + ;; + + *-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" + ;; + + *-mp-ras-02*) + SHLIB_CFLAGS="-G -K PIC" + LDDL_FLAGS="" + ;; + + *-mp-ras-*) + SHLIB_CFLAGS="-G -K PIC" + LDDL_FLAGS="-Wl,-Bexport" + ;; + + *-ncr-sysv4-*2*) + SHLIB_CFLAGS="-K PIC" + LDDL_FLAGS="-G" + + EXTRA_LIB_SPECS="-ldl" + ;; + + *-ncr-sysv4*) + SHLIB_CFLAGS="-K PIC" + LDDL_FLAGS="-G -Wl,-Bexport" + + LDFLAGS="-Wl,-Bexport" + 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="-shared ${LIB_SPEC}" + fi + ;; + + *-nextstep*) + LDDL_FLAGS="-nostdlib -r" + ;; + + *-osf1-1.[012]*) + # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1 + + # Warning: Ugly Makefile Hack + # Make package name same as library name + + SHLIB_LD='ld -R -export $@:' + ;; + + *-osf1-1.*) + # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2 + + SHLIB_CFLAGS="-fpic" + SHLIB_LD="ld -shared" + ;; + + *-osf1V*) + # Digital OSF/1 + + LDDL_FLAGS='-shared -expect_unresolved "*"' + if test "x${loader_run_path}" != "x" ; then + LD_RUN_PATH="${LD_RUN_PATH} -Wl,-rpath,${loader_run_path}" + fi + LDFLAGS="" + ;; + + *-sco*) + # Note, dlopen is available only on SCO 3.2.5 and greater. However, + # this test works, since "uname -s" was non-standard in 3.2.4 and + # below. + + SHLIB_CFLAGS="-Kpic -belf" + LDDL_FLAGS="-G" + LDFLAGS="-belf -Wl,-Bexport" + ;; + + *-sni-sysv*) + + SHLIB_CFLAGS="-K PIC" + LDDL_FLAGS="-G" + + EXTRA_LIB_SPECS="-ldl" + ;; + + *-sunos4*) + + SHLIB_CFLAGS="-PIC" + LDDL_FLAGS="-assert pure-text" + + EXTRA_LIB_SPECS="-ldl" + ;; + + *-solaris2*) + + if test "$with_gnu_ld" = "yes" ; then + LDDL_FLAGS='-shared -Wl,-E -Wl,-soname,$@ ${LIB_SPEC}' + if test "x${loader_run_path}" != "x" ; then + LD_RUN_PATH="${LD_RUN_PATH} -Wl,-rpath,${loader_run_path}" + fi + else + LDDL_FLAGS="-shared -mimpure-text" + if test "x${loader_run_path}" != "x" ; then + LD_RUN_PATH="${LD_RUN_PATH} -R ${loader_run_path}" + fi + fi + EXTRA_LIB_SPECS="-ldl" + ;; + + *-mips-dde-sysv*) + + SHLIB_CFLAGS="-KPIC" + LDDL_FLAGS="-G" + + EXTRA_LIB_SPECS="-ldl" + ;; + + *-pc-sysv4* | *-unixware-5*) + SHLIB_CFLAGS="-G -KPIC" + LDDL_FLAGS=" -Wl,-Bexport" + ;; + + 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=\${NETGENDIR}/netgen/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(LIB_SPECS_NOSTUB) + AC_SUBST(WISH_EXE) + AC_SUBST(TCLSH_EXE) + AC_SUBST(TCL_LIB_DIR) + +fi + +if test "$GCC" = "yes" ; then + DEPEND_FLAG="-MM" +fi + +dnl Substitute all variables + +AC_SUBST(VERSION) +AC_SUBST(PACKAGE) +AC_SUBST(SCRIPTS) +AC_SUBST(extra_libs) +AC_SUBST(extra_defs) +AC_SUBST(stub_defs) +AC_SUBST(ld_extra_libs) +AC_SUBST(ld_extra_objs) +AC_SUBST(top_extra_libs) +AC_SUBST(sub_extra_libs) +AC_SUBST(modules) +AC_SUBST(unused) +AC_SUBST(programs) +AC_SUBST(cadinstall) +AC_SUBST(DIST_DIR) + +AC_SUBST(gr_cflags) +AC_SUBST(gr_dflags) +AC_SUBST(gr_libs) +AC_SUBST(gr_srcs) +AC_SUBST(HAVE_PYTHON3) + +AC_SUBST(X_LIBS) +AC_SUBST(X_CFLAGS) +AC_SUBST(CPPFLAGS) +AC_SUBST(CFLAGS) +AC_SUBST(DEPEND_FLAG) +AC_SUBST(SHLIB_CFLAGS) +AC_SUBST(LD_RUN_PATH) + +AC_SUBST(ALL_TARGET) +AC_SUBST(INSTALL_TARGET) + +AC_OUTPUT(defs.mak) + +dnl +dnl Print configuration and report problems + +ECHO_N=printf + +echo +echo "-----------------------------------------------------------" +echo "Configuration Summary (principle requirements):" +echo + +${ECHO_N} "Tcl/Tk: " +if test $usingTcl ; then + echo "yes" +else + echo "no" + echo + echo " Without Tcl/Tk, you cannot run the enhanced version of netgen" + echo " with scripting ability, console window, convenience commands" + echo " such as \"lvs\", and other useful features. If you did not" + echo " specifically disable Tcl/Tk on the configure command line, then" + echo " getting this message means that you do not have Tcl/Tk headers" + echo " and/or libraries installed, or they are not in a standard path." + echo " Try using configure options --with-tcl= and --with-tk=." + echo +fi + +${ECHO_N} "Python3: " +if test "${HAVE_PYTHON3}" == "yes"; then + echo "yes" +else + echo "no" + echo + echo " Without Python3, you cannot run the GUI interface to netgen." + echo " This is purely optional, as it contains no features not" + echo " available in the command-line (Tcl/Tk) version. If you want" + echo " python3 support, make sure that you have installed python3" + echo " on your system." + echo +fi + +echo "-----------------------------------------------------------" +echo + +echo "Use 'make' to compile and 'make install' to install." +echo +echo "Errors may not be printed to stdout: see files 'make.log' " +echo " and 'install.log' for a complete error summary." +echo +echo "-----------------------------------------------------------" +echo + +dnl Put "defs.mak" in the top-level directory +cp defs.mak ..