1 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT(xcircuit.c,, xcircuit-dev@lists.sourceforge.net)
5 AC_CONFIG_SRCDIR(xcircuit.c)
9 dnl this call will define PACKAGE and VERSION
10 dnl please use this as the primary reference for the version number
13 VERSION=`cat ./VERSION | cut -d. -f1-2`
14 AM_INIT_AUTOMAKE(${PACKAGE}, ${VERSION})
16 dnl Initialize some variables
21 ALL_TARGET="undefined-target"
22 INSTALL_TARGET="undefined-install-target"
23 REVISION=`cat ./VERSION | cut -d. -f3`
31 dnl Default is to use Tcl; if it can't be found, then flag a warning
32 dnl and revert to the non-Tcl version.
34 dnl pass the version string on the the makefiles
39 dnl Setup for automake in subdirectories
42 dnl Checks for programs.
46 if test "x$U" != "x"; then
47 AC_MSG_ERROR(Compiler not ANSI compliant)
52 dnl GNU M4 is preferred due to some of the option switches.
53 AC_PATH_PROGS([M4], [gm4 gnum4 m4],)
63 dnl check size of pointer for correct behavior on 64-bit systems
64 AC_CHECK_SIZEOF([void *], 4)
65 AC_CHECK_SIZEOF([unsigned int], 4)
66 AC_CHECK_SIZEOF([unsigned long], 8)
67 AC_CHECK_SIZEOF([unsigned long long], 16)
69 dnl check for X libraries and include files
71 CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
72 LDFLAGS="${LDFLAGS} ${X_LIBS}"
73 LIBS="${X_PRE_LIBS} ${LIBS} -lX11"
74 AC_CHECK_LIB(Xt, XtToolkitInitialize,,[
75 AC_CHECK_LIB(Xt, XtDisplayInitialize,,,-lSM -lICE -lXpm -lX11)])
77 dnl Check for required header files
80 dnl Need either setenv or putenv
81 AC_CHECK_FUNCS(setenv putenv)
86 dnl Check for <dirent.h>
87 AC_CHECK_HEADERS(dirent.h)
89 dnl Check for lib64. This is a quick hack for Fedora Core on the
90 dnl AMD Opteron; don't know if it works with others.
93 AC_MSG_CHECKING([for 64-bit X11 libraries])
94 AC_CHECK_FILE([/usr/X11R6/lib64], [
95 LDFLAGS="-L/usr/X11R6/lib64 ${LDFLAGS}"
100 dnl Check for valid cflag "-Wno-pointer-sign"
101 AC_MSG_CHECKING(if -Wno-pointer-sign accepted in CFLAGS)
102 ac_save_CFLAGS="$CFLAGS"
103 CFLAGS="$CFLAGS -Wno-pointer-sign"
107 AC_MSG_RESULT(yes)],[
108 CFLAGS="$ac_save_CFLAGS"
111 dnl Check for Flate compression routines
112 AC_CHECK_LIB(z, deflate,,,-lz)
114 dnl Check for va_copy
115 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
117 [#include <stdarg.h>],
121 [ac_cv_c_va_copy="yes"],
122 [ac_cv_c_va_copy="no"])
124 if test "$ac_cv_c_va_copy" = "yes"
126 AC_DEFINE(HAVE_VA_COPY, 1, [Define if we have va_copy])
128 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
130 [#include <stdarg.h>],
134 [ac_cv_c___va_copy="yes"],
135 [ac_cv_c___va_copy="no"])
137 if test "$ac_cv_c___va_copy" = "yes"
139 AC_DEFINE(HAVE___VA_COPY, 1, [Define if we have __va_copy])
142 AC_MSG_CHECKING(if u_char defined)
143 AC_TRY_COMPILE([#include <sys/types.h>],[
146 AC_DEFINE(HAVE_U_CHAR)
150 dnl Enable compile-time Optimization? Disable by default for debugging
151 AC_ARG_ENABLE(optimize,
152 [ --enable-optimize enable compile-time optimizer flag -O2], , [
153 CFLAGS=`echo $CFLAGS | sed -e "s/ -O2//"`
156 dnl check for Xpm library
158 [ --with-xpm=DIR use Xpm include/library files in DIR], [
159 if test "$withval" != "no" -a "$withval" != "yes"; then
160 CPPFLAGS="${CPPFLAGS} -I$withval/include"
161 LDFLAGS="${LDFLAGS} -L$withval/lib"
165 AC_CHECK_HEADERS(X11/xpm.h,
166 AC_CHECK_LIB(Xpm, XpmCreateImageFromData, [
168 AC_DEFINE(HAVE_XPM)], [
169 AC_MSG_WARN(Xpm library not found)], -lX11),
170 AC_MSG_WARN(Xpm header not found))
172 dnl Check for GNU ld. This needs to be qualified for Solaris, which
173 dnl may use gcc for the C compiler but not for the linker.
175 dnl check if the linker is a GNU linker
177 #------------------------------------------------------------
178 # AC_PROG_LD - find the path to the GNU or non-GNU linker
179 # (This stuff ripped from libtool)
180 #------------------------------------------------------------
181 AC_DEFUN([AC_PROG_LD],
183 [ --with-gnu-ld assume the C compiler uses GNU ld [[default=no]]],
184 test "$withval" = no || xc_with_gnu_ld=yes, xc_with_gnu_ld=no)
185 AC_REQUIRE([AC_PROG_CC])dnl
186 AC_REQUIRE([AC_CANONICAL_HOST])dnl
187 dnl ###not for PostgreSQL### AC_REQUIRE([AC_CANONICAL_BUILD])dnl
189 if test "$GCC" = yes; then
190 # Check if gcc -print-prog-name=ld gives a path.
191 AC_MSG_CHECKING([for ld used by GCC])
194 # gcc leaves a trailing carriage return which upsets mingw
195 ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
197 ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
200 # Accept absolute paths.
202 [\\/]* | [A-Za-z]:[\\/]*)
203 re_direlt='/[^/][^/]*/\.\./'
205 # Canonicalize the path of ld
206 ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
207 while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
208 ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
210 test -z "$LD" && LD="$ac_prog"
213 # If it fails, then pretend we aren't using GCC.
217 # If it is relative, then search for the first ld in PATH.
218 xc_with_gnu_ld=unknown
221 elif test "$xc_with_gnu_ld" = yes; then
222 AC_MSG_CHECKING([for GNU ld])
224 AC_MSG_CHECKING([for non-GNU ld])
226 AC_CACHE_VAL(ac_cv_path_LD,
227 [if test -z "$LD"; then
228 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
229 for ac_dir in $PATH; do
230 test -z "$ac_dir" && ac_dir=.
231 if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
232 ac_cv_path_LD="$ac_dir/$ac_prog"
233 # Check to see if the program is GNU ld. I'd rather use --version,
234 # but apparently some GNU ld's only accept -v.
235 # Break only if it was the GNU/non-GNU ld that we prefer.
236 if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
237 test "$xc_with_gnu_ld" != no && break
239 test "$xc_with_gnu_ld" != yes && break
245 ac_cv_path_LD="$LD" # Let the user override the test with a path.
248 if test -n "$LD"; then
253 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
257 AC_DEFUN([AC_PROG_LD_GNU],
258 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
259 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
260 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
261 ac_cv_prog_gnu_ld=yes
265 xc_with_gnu_ld=$ac_cv_prog_gnu_ld
270 dnl --- Enable TCL by default
274 xc_with_tcl_includes=""
275 xc_with_tk_includes=""
276 xc_with_tcl_libraries=""
277 xc_with_tk_libraries=""
280 dnl -----------------------------------------------------------------------
281 dnl --- Cairo library
282 dnl -----------------------------------------------------------------------
285 [AS_HELP_STRING([--with-cairo],
286 [Use cairo graphics library @<:@default=yes@:>@])],
288 xc_with_cairo=$withval
289 if test "$withval" == "no" -o "$withval" == "NO"; then
294 if test "x$xc_with_cairo" != "x" ; then
295 AC_DEFINE([HAVE_CAIRO])
296 PKG_CHECK_MODULES([cairo], [cairo])
297 PKG_CHECK_MODULES([fontconfig], [fontconfig])
298 AC_CHECK_HEADERS([ghostscript/gdevdsp.h],
304 AC_MSG_WARN([Building xcircuit without ghostscript rendering])
305 AC_MSG_WARN([Install the ghostscript-devel package to solve this])
310 dnl -----------------------------------------------------------------------
311 dnl --- Tcl/Tk support
312 dnl -----------------------------------------------------------------------
315 [ --with-tcl=DIR Find tclConfig.sh in DIR], [
317 if test "$withval" == "no" -o "$withval" == "NO"; then
322 dnl -----------------------------------------------------------------------
323 dnl If TCL is not disabled, do our best to find it
324 dnl -----------------------------------------------------------------------
326 AC_ARG_WITH(tk, [ --with-tk=DIR Find tkConfig.sh in DIR],
328 AC_ARG_WITH(tclincls, [ --with-tclincls=DIR Find tcl.h in DIR],
329 xc_with_tcl_includes=$withval)
330 AC_ARG_WITH(tkincls, [ --with-tkincls=DIR Find tk.h in DIR],
331 xc_with_tk_includes=$withval)
332 AC_ARG_WITH(tcllibs, [ --with-tcllibs=DIR Find Tcl library in DIR],
333 xc_with_tcl_libraries=$withval)
334 AC_ARG_WITH(tklibs, [ --with-tklibs=DIR Find Tk library in DIR],
335 xc_with_tk_libraries=$withval)
337 # -----------------------------------------------------------------------
339 # Find the Tcl build configuration file "tclConfig.sh"
341 # -----------------------------------------------------------------------
343 if test "x$xc_with_tcl" != "x" ; then
348 AC_MSG_CHECKING([for tclConfig.sh])
351 if test "$xc_with_tcl" = "no" ; then
353 elif test "$xc_with_tcl" != "yes" ; then
355 # Verify that a tclConfig.sh file exists in the directory specified
361 if test -r "$dir/tclConfig.sh" ; then
362 tcl_config_sh="$dir/tclConfig.sh"
364 elif test -r "$dir/lib/tclConfig.sh" ; then
365 tcl_config_sh="$dir/lib/tclConfig.sh"
371 # Otherwise, search for Tcl configuration file.
374 # 1. Search previously named locations.
380 if test -r "$dir/tclConfig.sh" ; then
381 tcl_config_sh="$dir/tclConfig.sh"
383 elif test -r "$dir/lib/tclConfig.sh" ; then
384 tcl_config_sh="$dir/lib/tclConfig.sh"
389 # 2. Search standard locations.
391 if test "x$tcl_config_sh" = "x" ; then
393 `ls -dr /usr/local/tcl/tcl[[7-9]].[[0-9]]* 2>/dev/null` \
397 `ls -dr /usr/share/tcltk/tcl[[7-9]].[[0-9]]* 2>/dev/null` \
403 if test -r "$dir/tclConfig.sh" ; then
404 tcl_config_sh="$dir/tclConfig.sh"
406 elif test -r "$dir/lib/tclConfig.sh" ; then
407 tcl_config_sh="$dir/lib/tclConfig.sh"
414 AC_MSG_RESULT([${tcl_config_sh}])
416 if test "x$tcl_config_sh" = "x" ; then
417 echo "can't find Tcl configuration script \"tclConfig.sh\""
418 echo "Reverting to non-Tcl compilation"
423 # -----------------------------------------------------------------------
425 # Find the Tk build configuration file "tkConfig.sh"
427 # -----------------------------------------------------------------------
429 if test "x$xc_with_tcl" != "x" ; then
430 AC_MSG_CHECKING([for tkConfig.sh])
432 if test "$xc_with_tk" != "yes"; then
434 # Verify that a tkConfig.sh file exists in the directory specified
435 # by --with-tcl or --with-tk.
441 if test -r "$dir/tkConfig.sh" ; then
442 tk_config_sh="$dir/tkConfig.sh"
444 elif test -r "$dir/lib/tkConfig.sh" ; then
445 tk_config_sh="$dir/lib/tkConfig.sh"
451 # Search for Tk configuration file.
455 # 1. Search previously named locations.
461 if test -r "$dir/tkConfig.sh" ; then
462 tk_config_sh="$dir/tkConfig.sh"
464 elif test -r "$dir/lib/tkConfig.sh" ; then
465 tk_config_sh="$dir/lib/tkConfig.sh"
470 # 2. Search standard locations.
472 if test "x$tk_config_sh" = "x" ; then
476 `ls -dr /usr/local/lib/tk[[7-9]].[[0-9]]* 2>/dev/null` \
477 `ls -dr /usr/lib/tk[[7-9]].[[0-9]]* 2>/dev/null` \
478 `ls -dr /usr/local/tk/tk[[7-9]].[[0-9]]* 2>/dev/null` \
479 `ls -dr /usr/local/tk[[7-9]].[[0-9]]* 2>/dev/null` \
481 `ls -dr /usr/local/lib/tcl[[7-9]].[[0-9]]* 2>/dev/null` \
482 `ls -dr /usr/lib/tcl/tk[[7-9]].[[0-9]]* 2>/dev/null` \
483 `ls -dr /usr/local/tcl/tcl[[7-9]].[[0-9]]* 2>/dev/null` \
484 `ls -dr /usr/share/tcltk/tk[[7-9]].[[0-9]]* 2>/dev/null` \
490 if test -r "$dir/tkConfig.sh" ; then
491 tk_config_sh="$dir/tkConfig.sh"
493 elif test -r "$dir/lib/tkConfig.sh" ; then
494 tk_config_sh="$dir/lib/tkConfig.sh"
500 AC_MSG_RESULT([${tk_config_sh}])
502 if test "x$tk_config_sh" = "x" ; then
503 echo "can't find Tk configuration script \"tkConfig.sh\""
504 echo "Reverting to non-Tcl compilation"
509 # -----------------------------------------------------------------------
511 # Source in the Tcl/Tk configuration scripts.
513 # This didn't work so well in the pre-8.5 days, but
514 # seems to be okay now.
516 # -----------------------------------------------------------------------
518 if test "x$xc_with_tcl" != "x" ; then
522 # Should probably trust the config file contents, but this configure
523 # file checks the Tcl and Tk include and lib directories. Since
524 # the config file doesn't separate out the libraries from the strings
525 # passed to the compiler/linker, do it manually here.
527 # Extract TCL_LIB_DIR from TCL_LIB_SPEC
528 # Extract TK_LIB_DIR from TK_LIB_SPEC
529 # Extract TCL_INC_DIR from TCL_INCLUDE_SPEC
530 # Extract TK_INC_DIR from TK_INCLUDE_SPEC
532 # These will be the defaults unless overridden by configure command line
534 tmpstr=${TCL_LIB_SPEC#*-L}
535 TCL_LIB_DIR=${tmpstr% -l*}
536 tmpstr=${TK_LIB_SPEC#*-L}
537 TK_LIB_DIR=${tmpstr% -l*}
538 TCL_INC_DIR=${TCL_INCLUDE_SPEC#*-I}
539 TK_INC_DIR=${TK_INCLUDE_SPEC#*-I}
541 LIBS="${TCL_LIBS} ${LIBS}"
543 if test "$TCL_VERSION" = "$TK_VERSION" ; then
546 echo "Mismatched Tcl/Tk versions ($TCL_VERSION != $TK_VERSION)"
547 echo "Reverting to non-Tcl compilation"
552 # -----------------------------------------------------------------------
553 # Rely on TCL_INCLUDE_SPEC from tclConfig.sh unless "--with-tclincls"
554 # overrides. With TCL_INCLUDE_SPEC, pull out TCL_INC_DIR
555 # -----------------------------------------------------------------------
557 if test "x$xc_with_tcl" != "x" ; then
558 if test "x${xc_with_tcl_includes}" != "x" ; then
559 if test -r "${xc_with_tcl_includes}/tcl.h" ; then
560 TCL_INC_DIR=${xc_with_tcl_includes}
561 elif test "x${TCL_INCLUDE_SPEC}" == "x" ; then
562 echo "Can't find tcl.h in \"${xc_with_tcl_includes}\""
563 echo "Reverting to non-Tcl compilation"
566 elif test "x${TCL_INCLUDE_SPEC}" == "x" ; then
568 ${TCL_PREFIX}/include/tcl${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION} \
569 ${TCL_PREFIX}/include \
570 ${TCL_SRC_DIR}/generic \
573 if test -r "$dir/tcl.h" ; then
575 TCL_INCLUDE_SPEC="-I${TCL_INC_DIR}"
579 if test "x${TCL_INC_DIR}" = "x" ; then
580 echo "Can't find tcl.h header file"
581 echo "Reverting to non-Tcl compilation"
585 TCL_INC_DIR=`echo ${TCL_INCLUDE_SPEC} | sed -e '/-I/s/-I//'`
589 # -----------------------------------------------------------------------
590 # Rely on TK_INCLUDE_SPEC from tkConfig.sh unless "--with-tkincls"
591 # overrides. With TK_INCLUDE_SPEC, pull out TK_INC_DIR
592 # -----------------------------------------------------------------------
594 if test "x$xc_with_tcl" != "x" ; then
595 if test "x${xc_with_tk_includes}" != "x" ; then
596 if test -r "${xc_with_tk_includes}/tk.h" ; then
597 TK_INC_DIR=${xc_with_tk_includes}
598 elif test "x${TK_INCLUDE_SPEC}" == "x" ; then
599 echo "Can't find tk.h in \"${xc_with_tk_includes}\""
600 echo "Reverting to non-Tcl compilation"
603 elif test "x${TK_INCLUDE_SPEC}" == "x" ; then
605 ${TK_PREFIX}/include/tcl${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION} \
606 ${TK_PREFIX}/include/tk${TK_MAJOR_VERSION}.${TK_MINOR_VERSION} \
607 ${TK_PREFIX}/include \
608 ${TK_SRC_DIR}/generic \
611 if test -r "$dir/tk.h" ; then
613 TK_INCLUDE_SPEC="-I${TK_INC_DIR}"
617 if test "x${TK_INC_DIR}" = "x" ; then
618 echo "Can't find tk.h header file"
619 echo "Reverting to non-Tcl compilation"
623 TK_INC_DIR=`echo ${TK_INCLUDE_SPEC} | sed -e '/-I/s/-I//'`
627 # --------------------------------------------------------------
628 # Rely on TCL_LIB_SPEC from tclConfig.sh unless "--with-tcllibs"
629 # overrides. With TCL_LIB_SPEC, pull out TCL_LIB_DIR
630 # --------------------------------------------------------------
632 if test "x$xc_with_tcl" != "x" ; then
633 if test "x${xc_with_tcl_libraries}" != "x" ; then
636 "${xc_with_tcl_libraries}/lib${TCL_LIB_NAME}${SHDLIB_EXT}"
638 if test -r "$libname" ; then
639 TCL_LIB_DIR="${xc_with_tcl_libraries}"
643 if test "x${TCL_LIB_DIR}" == "x" ; then
644 echo "Can't find tcl library in \"${xc_with_tcl_libraries}\""
645 echo "Reverting to non-Tcl compile"
648 elif test "x${TCL_LIB_SPEC}" == "x" ; then
649 for libpfix in "lib64" "lib"
651 libname="${TCL_EXEC_PREFIX}/${libpfix}/lib${TCL_LIB_NAME}${SHDLIB_EXT}"
652 if test -r "$libname" ; then
653 TCL_LIB_DIR="${TCL_EXEC_PREFIX}/${libpfix}"
657 if test "x${TCL_LIB_DIR}" = "x" ; then
658 echo "Can't find tcl library"
659 echo "Reverting to non-Tcl compile"
663 TCL_LIB_DIR=`echo ${TCL_LIB_SPEC} | sed -e '/-L/s/-L//' -e '/-l/s/-l.*//'`
667 # --------------------------------------------------------------
668 # Rely on TK_LIB_SPEC from tkConfig.sh unless "--with-tklibs"
669 # overrides. With TK_LIB_SPEC, pull out TK_LIB_DIR
670 # --------------------------------------------------------------
672 if test "x$xc_with_tcl" != "x" ; then
673 if test "x${xc_with_tk_libraries}" != "x" ; then
676 "${xc_with_tk_libraries}/lib${TK_LIB_NAME}${SHDLIB_EXT}"
678 if test -r "$libname" ; then
679 TK_LIB_DIR="${xc_with_tk_libraries}"
683 if test "x${TK_LIB_DIR}" == "x" ; then
684 echo "Can't find tk library in \"${xc_with_tk_libraries}\""
685 echo "Reverting to non-Tcl compile"
688 elif test "x${TK_LIB_SPEC}" == "x" ; then
689 for libpfix in "lib64" "lib"
691 libname="${TK_EXEC_PREFIX}/${libpfix}/lib${TK_LIB_NAME}${SHDLIB_EXT}"
692 if test -r "$libname" ; then
693 TK_LIB_DIR="${TK_EXEC_PREFIX}/${libpfix}"
697 if test "x${TK_LIB_DIR}" = "x" ; then
698 echo "Can't find tk library"
699 echo "Reverting to non-Tcl compile"
703 TK_LIB_DIR=`echo ${TCL_LIB_SPEC} | sed -e '/-L/s/-L//' -e '/-l/s/-l.*//'`
707 #--------------------------------------------------------------------
708 # If TCL_LIB_SPEC and/or TK_LIB_SPEC do not exist, construct them
709 #--------------------------------------------------------------------
711 if test "x$xc_with_tcl" != "x" ; then
712 if test "x${TCL_LIB_SPEC}" == "x" ; then
714 *-sunos4*|*-*-netbsd|NetBSD-*|FreeBSD-*|*-*-openbsd*|OpenBSD-*)
715 TCL_LIB_NAME="tcl${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}"
718 TCL_LIB_NAME="tcl${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}"
721 TCL_LIB_SPEC="-L${TCL_LIB_DIR} -l${TCL_LIB_NAME}"
724 if test "x${TK_LIB_SPEC}" == "x" ; then
726 *-sunos4*|*-*-netbsd|NetBSD-*|FreeBSD-*|*-*-openbsd*|OpenBSD-*)
727 TK_LIB_NAME="tk${TK_MAJOR_VERSION}${TK_MINOR_VERSION}"
730 TK_LIB_NAME="tk${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}"
733 TK_LIB_SPEC="-L${TK_LIB_DIR} -l${TK_LIB_NAME}"
736 # Find the version of "wish" that corresponds to TCL_EXEC_PREFIX
737 # We really ought to run "ldd" to confirm that the linked libraries match.
739 AC_MSG_CHECKING([for wish executable])
741 ${TK_EXEC_PREFIX}/bin \
748 wish${TK_VERSION}.exe
750 if test -r "$dir/$wishexe" ; then
751 WISH_EXE=$dir/$wishexe
755 if test "x${WISH_EXE}" != "x" ; then
759 if test "x${WISH_EXE}" = "x" ; then
760 echo "Warning: Can't find executable for \"wish\". You may have to"
761 echo "manually set the value for WISH_EXE in the xcircuit startup script."
764 AC_MSG_RESULT([${WISH_EXE}])
767 # Have to define SHDLIB_EXT here even though we have to do it below, too.
779 SHDLIB_EXT=".so.${TCL_LIB_FILE##*.so.}"
787 dnl End of Tcl/Tk search
788 dnl --------------------------------
790 # -----------------------------------------------------------------------
792 # Tk libraries and header files
794 # -----------------------------------------------------------------------
796 if test "x$xc_with_tcl" != "x" ; then
797 INC_SPECS="${INC_SPECS} ${TCL_INCLUDE_SPEC} ${TK_INCLUDE_SPEC}"
798 LIB_SPECS="${LIB_SPECS} ${TCL_LIB_SPEC} ${TK_LIB_SPEC}"
800 if test "x${loader_run_path}" = "x" ; then
801 loader_run_path="${TCL_LIB_DIR}"
803 loader_run_path="${TCL_LIB_DIR}:${loader_run_path}"
806 #--------------------------------------------------------------------
808 # Check if we can generate shared libraries on this system. Set flags
809 # to generate shared libraries for systems that we know about. Start
810 # with the values found in tclConfig.sh, make changes as we know about
811 # the different systems.
813 #--------------------------------------------------------------------
815 # Initialize shared library build variables
817 if test "x${TCL_SHLIB_SUFFIX}" == "x" ; then
820 SHDLIB_EXT="${TCL_SHLIB_SUFFIX}"
823 if test "x${TCL_SHLIB_LD}" == "x" ; then
825 # Construct shared library build arguments the painful way
826 # This is not expected to be necessary, so the number of
827 # supported systems has been pared down to a minimum.
837 SHLIB_LIB_SPECS="${LIB_SPECS}"
838 if test "${xc_with_gnu_ld}" = "yes" ; then
839 LDDL_FLAGS="-dynamiclib -bind_at_load"
841 LDDL_FLAGS="-single_module -dynamiclib -flat_namespace"
842 LDDL_FLAGS="${LDDL_FLAGS} -undefined suppress -noprebind"
843 SHLIB_CFLAGS="-I/sw/include -fno-common"
850 LDDL_FLAGS="-shared -Wl,--enable-auto-image-base -Wl,-rpath,${loader_run_path}"
851 SHLIB_LIB_SPECS="${LIB_SPECS}"
856 LDDL_FLAGS='-shared -Wl,-soname,$@'
857 LD_RUN_PATH="-Wl,-rpath,${loader_run_path}"
859 EXTRA_LIB_SPECS="-ldl"
863 # AMD 64-bit archictecture
864 # Add -fPIC to standard compile switch
865 CFLAGS="${CFLAGS} -fPIC"
870 *-netbsd*|*-freebsd*|*-openbsd*)
871 # Not available on all versions: check for include file.
872 AC_CHECK_HEADER(dlfcn.h, test_ok=yes, test_ok=no)
873 if test "$test_ok" = yes; then
881 if test "$GCC" = "yes" ; then
882 CFLAGS="-fPIC ${CFLAGS}"
887 # Rely on shared lib arguments in tclConfig.sh
889 SHLIB_LD="${TCL_SHLIB_LD}"
891 LDDL_FLAGS="${TCL_LD_FLAGS}"
896 LD_RUN_PATH="-Wl,-rpath,${loader_run_path}"
901 # If we're running gcc, then set SHLIB_CFLAGS flags for compiling
902 # shared libraries for gcc, instead of those of the vendor's
905 if test "$GCC" = "yes" ; then
906 if test "x${TCL_SHLIB_CFLAGS}" = "x" ; then
907 SHLIB_CFLAGS="-fPIC ${SHLIB_CFLAGS}"
909 SHLIB_CFLAGS="${TCL_SHLIB_CFLAGS} ${SHLIB_CFLAGS}"
912 CFLAGS="${CFLAGS} ${SHLIB_CFLAGS}"
914 if test "${xc_with_gnu_ld}" = "yes" ; then
915 LDDL_FLAGS="${LDDL_FLAGS} -Wl,--version-script=symbol.map"
921 AC_SUBST(SHLIB_LIB_SPECS)
922 AC_SUBST(EXTRA_LIB_SPECS)
923 AC_SUBST(LD_RUN_PATH)
927 AC_SUBST(TCL_LIB_DIR)
932 dnl Disable the ASG (automatic schematic generation) package. Disabled by default.
934 [ --enable-asg enable support for Automatic Schematic Generation], [
936 AC_DEFINE(CONFIGURED)
937 SUBDIRS="asg spiceparser"
938 dnl Object files to link into the final executable or shared object
939 dnl These must be in the correct order!
940 SUBLIB="asg/libasg.a spiceparser/libspiceparser.a"
943 dnl Disable LGF (analog/diglog) file support. Enabled by default.
945 [ --disable-lgf disable support for reading Caltech tools
946 analog simulator .lgf files], , [
951 dnl Disable fix for input focus on some window managers. Enabled by default.
952 AC_ARG_ENABLE(focus-fix,
953 [ --disable-focus-fix disable focus fix for some window managers], , [
954 AC_DEFINE(INPUT_FOCUS)
957 dnl Path to Ghostscript
959 [ --with-gs=DIR path to ghostscript], [
960 if test -f "$withval"; then
966 AC_CHECK_PROG(GS_EXEC, gs, , gs)])
967 AC_DEFINE_UNQUOTED(GS_EXEC, "$GS_EXEC")
971 [ --with-ngspice=DIR path to ngspice], [
972 if test -f "$withval"; then
978 AC_CHECK_PROG(SPICE_EXEC, ngspice, , ngspice)])
979 AC_DEFINE_UNQUOTED(SPICE_EXEC, "$SPICE_EXEC")
987 [ --with-python=DIR path to python interpreter],
988 xc_with_python=$withval)
990 if test "x$xc_with_tcl" != "x" ; then
992 elif test "$xc_with_python" = "no" ; then
994 elif test "$xc_with_python" = "yes" ; then
995 AC_PATH_PROG(PYTHON,python)
996 elif test "x$xc_with_python" != x; then
997 test -f "$xc_with_python" && PYTHON=$xc_with_python
1000 if test "x$PYTHON" != x; then
1001 _py_version=`$PYTHON -c 'import sys; print sys.version[[0:3]]'`
1002 _py_prefix=`$PYTHON -c 'import sys; print sys.prefix'`
1003 _py_exec_prefix=`$PYTHON -c 'import sys; print sys.exec_prefix'`
1005 _py_include="$_py_prefix/include/python$_py_version"
1006 _py_lib="$_py_exec_prefix/lib/python$_py_version/config"
1007 _py_makefile="$_py_lib/Makefile"
1009 if test $_py_version = 1.5; then
1012 echo "*** Python version 1.5 detected: This version of Python has a known fatal"
1013 echo "*** bug. Disabling Python interface. If you want the embedded Python"
1014 echo "*** interface, you will need to get an updated version of Python."
1020 if test "x$PYTHON" != x; then
1021 if test -f $_py_makefile; then
1022 _py_libs=`sed -n -e 's/^LIBS=\(.*\)/\1/p' $_py_makefile`
1023 _py_libm=`sed -n -e 's/^LIBM=\(.*\)/\1/p' $_py_makefile`
1025 _py_libs='-lpthread -ldl -lutil -ldb'
1029 # Now that we think we know where the python include and
1030 # library files are, make sure we can build a small
1031 # program against them.
1032 _save_CPPFLAGS=${CPPFLAGS}
1033 _save_LDFLAGS=${LDFLAGS}
1036 CPPFLAGS="$CPPFLAGS -I$_py_include"
1037 LDFLAGS="$LDFLAGS -L$_py_lib"
1039 case "$target_os" in
1041 PYLIB="-lpython$_py_version"
1042 LIBS="$PYLIB.dll $LIBS $X_PRE_LIBS $_py_libs"
1045 LIBS="$LIBS -lpython$_py_version $_py_libs $_py_libm"
1051 AC_CHECK_HEADER(Python.h,[
1052 AC_MSG_CHECKING([for Py_Initialize in -lpython$_py_version])
1053 AC_TRY_LINK([#include "Python.h"],[Py_Initialize();],[
1057 AC_DEFINE(HAVE_PYTHON)],
1058 AC_MSG_RESULT(no))])
1060 if test "x$HAVE_PYTHON" = x0; then
1061 CPPFLAGS=$_save_CPPFLAGS
1062 LDFLAGS=$_save_LDFLAGS
1068 if test "x$PYTHON" != x; then
1069 STARTUP_FILE="xcstartup.py"
1070 INTERP_PATH="python"
1072 SUBDIRS="${SUBDIRS} Xw"
1073 SUBLIB="${SUBLIB} Xw/libxcXw.a"
1074 XCIRCUIT_TARGET="xcircuit"
1075 elif test "x$xc_with_tcl" != "x" ; then
1077 STARTUP_FILE="xcstartup.tcl"
1079 WRAPPER_SCRIPT="wrapper.tcl"
1080 AC_DEFINE(TCL_WRAPPER)
1081 XCIRCUIT_TARGET="tcl"
1082 ALL_TARGET="all-recursive"
1083 INSTALL_TARGET="install-recursive"
1085 STARTUP_FILE="startup.script"
1088 SUBDIRS="${SUBDIRS} Xw"
1089 SUBLIB="${SUBLIB} Xw/libxcXw.a"
1090 XCIRCUIT_TARGET="xcircuit"
1093 # Add -lm last to LDFLAGS, or Tcl/Tk's addition of -lieee can cause
1095 EXTRA_LIB_SPECS="$EXTRA_LIB_SPECS -lm"
1097 dnl Memory debugging:
1098 dnl The non-Tcl version uses (links to) ElectricFence.
1099 dnl Tcl must use the Tcl memory debugger.
1101 dnl We should try to ensure that ElectricFence is available, or that
1102 dnl the Tcl version used has memory debugging compiled in
1104 AC_ARG_ENABLE(memdebug,
1105 [ --enable-memdebug enable memory debugging], [
1106 if test "x$xc_with_tcl" = "x" ; then
1107 LIBS="${LIBS} -lefence"
1109 AC_DEFINE(TCL_MEM_DEBUG)
1117 AC_SUBST(STARTUP_FILE)
1118 AC_SUBST(INTERP_PATH)
1119 AC_SUBST(WRAPPER_SCRIPT)
1120 AC_SUBST(XCIRCUIT_TARGET)
1125 AC_SUBST(INTERPRETER)
1128 AC_SUBST(ALL_TARGET)
1129 AC_SUBST(INSTALL_TARGET)
1131 dnl Automake requires these
1135 AC_SUBST(AUTOHEADER)
1137 AC_OUTPUT(Makefile Xw/Makefile asg/Makefile spiceparser/Makefile)
1140 echo "Configuration results:"
1141 echo "----------------------------------------------------"
1144 if test "x$xc_with_tcl" == "x" ; then
1145 if test "x$PYTHON" != x; then
1146 echo "Using Python interface (not recommended)"
1148 echo "No Tcl/Tk, using standard Xlib/Xt interface."
1149 echo "If that is not what you wanted, then make sure"
1150 echo "you have Tcl/Tk development packages installed?"
1153 echo "Using Tcl/Tk interface"
1157 if test "x$xc_with_cairo" == "x" ; then
1158 echo "No Cairo graphics."
1159 echo "If that is not what you wanted, then make sure"
1160 echo "you have libcairo and fontconfig installed."
1161 echo "Try installing package cairo-devel."
1163 echo "Using Cairo graphics"
1166 echo "CFLAGS=${CFLAGS}"