ngspice/configure.in

731 lines
22 KiB
Plaintext
Raw Normal View History

2003-08-11 22:59:48 +02:00
dnl configure.in script for ngspice
dnl
dnl This file is part of ngspice.
dnl
dnl (Process this file with autoconf to produce a configure script.)
AC_INIT
AC_CONFIG_SRCDIR([src/main.c])
2000-04-27 22:03:57 +02:00
dnl Create a configuration header
AC_CONFIG_HEADERS([config.h])
2000-04-27 22:03:57 +02:00
dnl Initialize automake stuff
2004-01-27 23:42:10 +01:00
AM_INIT_AUTOMAKE(ng-spice-rework,15)
2000-04-27 22:03:57 +02:00
dnl --enable-ansi : try to force --ansi option to the compiler
AC_ARG_ENABLE(ansi,
[ --enable-ansi Force --ansi option for compilation])
dnl --disable-debug : remove -g and -Wall option to the compiler
AC_ARG_ENABLE(debug,
[ --enable-debug Add -g option for compilation (default)])
dnl --enable-checker : add --with-checker-debug option to the compiler
AC_ARG_ENABLE(checker,
[ --enable-checkergcc Option for compilation with checkergcc])
2003-08-11 22:59:48 +02:00
dnl --enable-gc : Enable Boehm-Weiser Conservative Garbage Collector
AC_ARG_ENABLE(checker,
[ --enable-gc Use Boehm-Weiser Conservative Garbage Collector. Disabled by default. ])
2003-08-11 22:59:48 +02:00
dnl --enable-nosqrt : define NOSQRT for the code
AC_ARG_ENABLE(nosqrt,
[ --enable-nosqrt Use always log/exp for nonlinear capacitances])
2000-04-27 22:03:57 +02:00
dnl --enable-bypass : define BYPASS for the code
AC_ARG_ENABLE(nobypass,
2003-08-12 13:41:56 +02:00
[ --enable-nobypass Don't bypass recalculations of slowly changing variables])
2000-04-27 22:03:57 +02:00
2003-08-11 22:59:48 +02:00
dnl --enable-capbypass : define CAPBYPASS for the code
AC_ARG_ENABLE(capbypass,
2003-08-12 00:32:15 +02:00
[ --enable-capbypass Bypass calculation of cbd/cbs in the mosfets if the vbs/vbd voltages are unchanged])
2003-08-11 22:59:48 +02:00
dnl --enable-capzerobypass : define CAPZEROBYPASS for the code
AC_ARG_ENABLE(capzerobypass,
[ --enable-capzerobypass Bypass all the cbd/cbs calculations if Czero is zero])
dnl --enable-nodelimiting : define NODELIMITING for the code
AC_ARG_ENABLE(nodelimiting,
[ --enable-nodelimiting Experimental damping scheme])
2000-04-27 22:03:57 +02:00
dnl --enable-predictor : define PREDICTOR for the code
AC_ARG_ENABLE(predictor,
2003-08-11 22:59:48 +02:00
[ --enable-predictor Enable a predictor method for convergence])
dnl --enable-newpred : define PREDICTOR for the code
AC_ARG_ENABLE(newpred,
[ --enable-newpred Enable NEWPRED whatever it is(?)])
2003-08-11 22:59:48 +02:00
dnl --enable-newtrunc : define NEWTRUNC for the code
AC_ARG_ENABLE(newtrunc,
[ --enable-newtrunc Enable the newtrunc option])
2000-04-27 22:03:57 +02:00
2003-08-11 22:59:48 +02:00
dnl --enable-sense2 : define WANT_SENSE2 for the code
2000-04-27 22:03:57 +02:00
AC_ARG_ENABLE(sense2,
[ --enable-sense2 Use spice2 sensitivity analysis])
2003-09-25 19:23:26 +02:00
dnl --enable-ftedebug : enable frontend debug macros
AC_ARG_ENABLE(ftedebug,
[ --enable-ftedebug Enable ngspice frontend debug])
dnl --enable-cpdebug : enable frontend debug macros
AC_ARG_ENABLE(cpdebug,
[ --enable-cpdebug Enable ngspice shell debug])
2003-08-11 22:59:48 +02:00
dnl --enable-sensdebug : define SENSDEBUG for the code
AC_ARG_ENABLE(sensdebug,
[ --enable-sensdebug Debug sensitivity code *SENSDEBUG*])
dnl --enable-asdebug : define ASDEBUG for the code
AC_ARG_ENABLE(asdebug,
[ --enable-asdebug Debug sensitivity code *ASDEBUG*])
2003-08-11 22:59:48 +02:00
dnl --enable-stepdebug : define STEPDEBUG for the code
AC_ARG_ENABLE(stepdebug,
[ --enable-stepdebug Unknown debug option])
dnl --enable-pzdebug : define PZDEBUG for the code
AC_ARG_ENABLE(pzdebug,
[ --enable-pzdebug Debug pole/zero code])
2003-08-11 22:59:48 +02:00
dnl --enable-blktmsdebug : define D_DBG_BLOCKTIMES for the code
AC_ARG_ENABLE(blktmsdebug,
[ --enable-blktmsdebug Debug distortion code *BLOCKTIMES*])
dnl --enable-smltmsdebug : define D_DBG_SMALLTIMES for the code
AC_ARG_ENABLE(smltmsdebug,
[ --enable-smltmsdebug Debug distortion code *SMALLTIMES*])
2001-01-24 18:15:31 +01:00
dnl --enable-intnoise : define INT_NOISE for the code
AC_ARG_ENABLE(intnoise,
2003-08-11 22:59:48 +02:00
[ --enable-intnoise Enable noise integration in noise analysis])
2001-01-24 18:15:31 +01:00
* TODO, doc/ngspice.texi: Small updates * configure.in: New --enable-smoketest. * src/main.c src/ngspice.c src/frontend/outitf.c src/frontend/runcoms.c src/frontend/spiceif.c src/frontend/parser/numparse.c src/include/cktdefs.h src/include/fteext.h src/include/inpdefs.h src/include/jobdefs.h src/include/ngspice.h src/include/tskdefs.h src/spicelib/analysis/Makefile.am src/spicelib/analysis/acsetp.c src/spicelib/analysis/cktaskaq.c src/spicelib/analysis/cktdojob.c src/spicelib/analysis/cktnewan.c src/spicelib/analysis/cktsetap.c src/spicelib/analysis/cktsopt.c src/spicelib/analysis/ckttroub.c src/spicelib/analysis/dcosetp.c src/spicelib/analysis/dctsetp.c src/spicelib/analysis/dsetparm.c src/spicelib/analysis/nsetparm.c src/spicelib/analysis/pzsetp.c src/spicelib/analysis/senssetp.c src/spicelib/analysis/tfsetp.c src/spicelib/analysis/transetp.c src/spicelib/devices/bjt/bjtdset.h src/spicelib/devices/bjt/bjtext.h src/spicelib/devices/bjt/bjtsetup.c src/spicelib/devices/bsim2/b2set.c src/spicelib/devices/bsim3/b3acld.c src/spicelib/devices/bsim3/b3set.c src/spicelib/devices/bsim3/bsim3def.h src/spicelib/devices/csw/cswtrunc.c src/spicelib/devices/dio/diodset.c src/spicelib/devices/dio/dioinit.c src/spicelib/devices/jfet/jfetset.c src/spicelib/devices/mes/messetup.c src/spicelib/devices/mos1/mos1ask.c src/spicelib/devices/mos1/mos1set.c src/spicelib/devices/mos1/mos1temp.c src/spicelib/devices/mos3/mos3load.c src/spicelib/devices/mos6/mos6set.c src/spicelib/devices/sw/swtrunc.c src/spicelib/parser/inppas2.c src/spicelib/parser/inppas3.c src/spicelib/parser/inppas3.h: Paolo and I have integrated patches from Alan Gillespie <Alan.Gillespie@analog.com>.
2000-09-05 21:48:22 +02:00
dnl --enable-smoketest : a smoketest
AC_ARG_ENABLE(smoketest,
2003-08-11 22:59:48 +02:00
[ --enable-smoketest Enable smoketest compile])
* TODO, doc/ngspice.texi: Small updates * configure.in: New --enable-smoketest. * src/main.c src/ngspice.c src/frontend/outitf.c src/frontend/runcoms.c src/frontend/spiceif.c src/frontend/parser/numparse.c src/include/cktdefs.h src/include/fteext.h src/include/inpdefs.h src/include/jobdefs.h src/include/ngspice.h src/include/tskdefs.h src/spicelib/analysis/Makefile.am src/spicelib/analysis/acsetp.c src/spicelib/analysis/cktaskaq.c src/spicelib/analysis/cktdojob.c src/spicelib/analysis/cktnewan.c src/spicelib/analysis/cktsetap.c src/spicelib/analysis/cktsopt.c src/spicelib/analysis/ckttroub.c src/spicelib/analysis/dcosetp.c src/spicelib/analysis/dctsetp.c src/spicelib/analysis/dsetparm.c src/spicelib/analysis/nsetparm.c src/spicelib/analysis/pzsetp.c src/spicelib/analysis/senssetp.c src/spicelib/analysis/tfsetp.c src/spicelib/analysis/transetp.c src/spicelib/devices/bjt/bjtdset.h src/spicelib/devices/bjt/bjtext.h src/spicelib/devices/bjt/bjtsetup.c src/spicelib/devices/bsim2/b2set.c src/spicelib/devices/bsim3/b3acld.c src/spicelib/devices/bsim3/b3set.c src/spicelib/devices/bsim3/bsim3def.h src/spicelib/devices/csw/cswtrunc.c src/spicelib/devices/dio/diodset.c src/spicelib/devices/dio/dioinit.c src/spicelib/devices/jfet/jfetset.c src/spicelib/devices/mes/messetup.c src/spicelib/devices/mos1/mos1ask.c src/spicelib/devices/mos1/mos1set.c src/spicelib/devices/mos1/mos1temp.c src/spicelib/devices/mos3/mos3load.c src/spicelib/devices/mos6/mos6set.c src/spicelib/devices/sw/swtrunc.c src/spicelib/parser/inppas2.c src/spicelib/parser/inppas3.c src/spicelib/parser/inppas3.h: Paolo and I have integrated patches from Alan Gillespie <Alan.Gillespie@analog.com>.
2000-09-05 21:48:22 +02:00
2000-04-27 22:03:57 +02:00
dnl --enable-experimental : define EXPERIMENTAL_CODE for the code
AC_ARG_ENABLE(experimental,
2003-08-11 22:59:48 +02:00
[ --enable-experimental Enable some experimental code])
2000-04-27 22:03:57 +02:00
dnl --enable-expdevices : Enable the compilation of experimental devices
AC_ARG_ENABLE(expdevices,
[ --enable-expdevices Enable experimental devices (they do not compile)])
dnl --enable-ekv: define HAVE_EKV in the code. This is for EKV model support
AC_ARG_ENABLE(ekv,
2003-08-11 22:59:48 +02:00
[ --enable-ekv Enable ekv model *not in standard distribution*])
dnl --enable-xspice: define XSPICE in the code. This is for xspice support
AC_ARG_ENABLE(xspice,
[ --enable-xspice Enable XSpice enhancements, (experimental) ])
2003-08-11 22:59:48 +02:00
dnl --enable-cider: define CIDER in the code. This is for CIDER support
AC_ARG_ENABLE(cider,
[ --enable-cider Enable CIDER enhancements, (experimental) ])
2003-09-25 19:23:26 +02:00
dnl --enable-cluster: define CLUSTER in the code. This is for cluster support
AC_ARG_ENABLE(cluster,
2004-01-27 23:01:18 +01:00
[ --enable-cluster Enable cluster support, (experimental) ])
2003-09-25 19:23:26 +02:00
dnl --enable-numparams: define NUMPARAMS in the code. This is for .param support
AC_ARG_ENABLE(numparam,
2004-01-27 23:01:18 +01:00
[ --enable-numparam Enable numparams library support, (experimental) ])
2003-09-25 19:23:26 +02:00
2004-01-25 10:00:31 +01:00
dnl --enable-xgraph: Compile the xgraph plotting program. Default is "no".
dnl Xgraph is a plotitng package for X11 once very popular.
AC_ARG_ENABLE(xgraph,
[ --enable-xgraph Enable xgraph compilation.])
2004-01-25 10:00:31 +01:00
dnl --with-readline: Includes GNU readline support into CLI. Default is "no".
dnl Including readline into ngspice is a violation of GPL license. It's use
dnl is discouraged.
AC_ARG_WITH(readline,
[ --with-readline[=yes/no] Enable GNU readline support for CLI. Default=no.])
2004-01-25 10:00:31 +01:00
2000-04-27 22:03:57 +02:00
dnl Enable maintainer commands only if requested
AM_MAINTAINER_MODE
dnl Work on compiler options according to system:
dnl Set default CFLAG - only use -Wall if we have gcc
AC_PROG_CC
if test "x$GCC" = "xyes"; then
CFLAGS="$CFLAGS -Wall "
fi
if test "$enable_debug" = "no"; then
AC_MSG_WARN(Removing debugging option!)
CFLAGS=" "
fi
* TODO, doc/ngspice.texi: Small updates * configure.in: New --enable-smoketest. * src/main.c src/ngspice.c src/frontend/outitf.c src/frontend/runcoms.c src/frontend/spiceif.c src/frontend/parser/numparse.c src/include/cktdefs.h src/include/fteext.h src/include/inpdefs.h src/include/jobdefs.h src/include/ngspice.h src/include/tskdefs.h src/spicelib/analysis/Makefile.am src/spicelib/analysis/acsetp.c src/spicelib/analysis/cktaskaq.c src/spicelib/analysis/cktdojob.c src/spicelib/analysis/cktnewan.c src/spicelib/analysis/cktsetap.c src/spicelib/analysis/cktsopt.c src/spicelib/analysis/ckttroub.c src/spicelib/analysis/dcosetp.c src/spicelib/analysis/dctsetp.c src/spicelib/analysis/dsetparm.c src/spicelib/analysis/nsetparm.c src/spicelib/analysis/pzsetp.c src/spicelib/analysis/senssetp.c src/spicelib/analysis/tfsetp.c src/spicelib/analysis/transetp.c src/spicelib/devices/bjt/bjtdset.h src/spicelib/devices/bjt/bjtext.h src/spicelib/devices/bjt/bjtsetup.c src/spicelib/devices/bsim2/b2set.c src/spicelib/devices/bsim3/b3acld.c src/spicelib/devices/bsim3/b3set.c src/spicelib/devices/bsim3/bsim3def.h src/spicelib/devices/csw/cswtrunc.c src/spicelib/devices/dio/diodset.c src/spicelib/devices/dio/dioinit.c src/spicelib/devices/jfet/jfetset.c src/spicelib/devices/mes/messetup.c src/spicelib/devices/mos1/mos1ask.c src/spicelib/devices/mos1/mos1set.c src/spicelib/devices/mos1/mos1temp.c src/spicelib/devices/mos3/mos3load.c src/spicelib/devices/mos6/mos6set.c src/spicelib/devices/sw/swtrunc.c src/spicelib/parser/inppas2.c src/spicelib/parser/inppas3.c src/spicelib/parser/inppas3.h: Paolo and I have integrated patches from Alan Gillespie <Alan.Gillespie@analog.com>.
2000-09-05 21:48:22 +02:00
2000-04-27 22:03:57 +02:00
dnl Not sure that this will work....
if test "$with_checkergcc" = "yes"; then
CC="checkergcc"
fi
dnl Checks for ANSI-C header files.
AC_HEADER_STDC
if test "$enable_ansi" = "yes"; then
AC_PROG_CC()
AC_DIAGNOSE([obsolete],[AM_PROG_CC_STDC:
your code should no longer depend upon `am_cv_prog_cc_stdc', but upon
`ac_cv_prog_cc_stdc'. Remove this warning and the assignment when
you adjust the code. You can also remove the above call to
AC_PROG_CC if you already called it elsewhere.])
am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
2000-04-27 22:03:57 +02:00
if test ! "$am_cv_prog_cc_stdc"="yes"; then
AC_MSG_WARN(Failed to find Ansi flag!)
fi
fi
* TODO, doc/ngspice.texi: Small updates * configure.in: New --enable-smoketest. * src/main.c src/ngspice.c src/frontend/outitf.c src/frontend/runcoms.c src/frontend/spiceif.c src/frontend/parser/numparse.c src/include/cktdefs.h src/include/fteext.h src/include/inpdefs.h src/include/jobdefs.h src/include/ngspice.h src/include/tskdefs.h src/spicelib/analysis/Makefile.am src/spicelib/analysis/acsetp.c src/spicelib/analysis/cktaskaq.c src/spicelib/analysis/cktdojob.c src/spicelib/analysis/cktnewan.c src/spicelib/analysis/cktsetap.c src/spicelib/analysis/cktsopt.c src/spicelib/analysis/ckttroub.c src/spicelib/analysis/dcosetp.c src/spicelib/analysis/dctsetp.c src/spicelib/analysis/dsetparm.c src/spicelib/analysis/nsetparm.c src/spicelib/analysis/pzsetp.c src/spicelib/analysis/senssetp.c src/spicelib/analysis/tfsetp.c src/spicelib/analysis/transetp.c src/spicelib/devices/bjt/bjtdset.h src/spicelib/devices/bjt/bjtext.h src/spicelib/devices/bjt/bjtsetup.c src/spicelib/devices/bsim2/b2set.c src/spicelib/devices/bsim3/b3acld.c src/spicelib/devices/bsim3/b3set.c src/spicelib/devices/bsim3/bsim3def.h src/spicelib/devices/csw/cswtrunc.c src/spicelib/devices/dio/diodset.c src/spicelib/devices/dio/dioinit.c src/spicelib/devices/jfet/jfetset.c src/spicelib/devices/mes/messetup.c src/spicelib/devices/mos1/mos1ask.c src/spicelib/devices/mos1/mos1set.c src/spicelib/devices/mos1/mos1temp.c src/spicelib/devices/mos3/mos3load.c src/spicelib/devices/mos6/mos6set.c src/spicelib/devices/sw/swtrunc.c src/spicelib/parser/inppas2.c src/spicelib/parser/inppas3.c src/spicelib/parser/inppas3.h: Paolo and I have integrated patches from Alan Gillespie <Alan.Gillespie@analog.com>.
2000-09-05 21:48:22 +02:00
if test "$enable_smoketest" = "yes"; then
dnl CFLAGS="$CFLAGS -Werror"
CFLAGS="$CFLAGS -pedantic -W -Wmissing-prototypes"
CFLAGS="$CFLAGS -Wstrict-prototypes -Wtraditional"
CFLAGS="$CFLAGS -Wconversion -Wshadow -Wpointer-arith"
CFLAGS="$CFLAGS -Wcast-qual -Wcast-align -Wwrite-strings"
CFLAGS="$CFLAGS -Waggregate-return -fshort-enums -fno-common"
CFLAGS="$CFLAGS -Wnested-externs -Dinline= -g -O4"
fi
2000-04-27 22:03:57 +02:00
dnl Check system we're on , and tune accordingly
2000-04-27 22:03:57 +02:00
AC_CANONICAL_HOST
dnl Checks for programs
AC_LIBTOOL_DLOPEN
AM_PROG_LIBTOOL
AC_PROG_LIBTOOL
2000-04-27 22:03:57 +02:00
2002-01-03 23:44:21 +01:00
dnl --with-windows : the user wants to use generate the MS WINDOWS executable
AC_ARG_WITH(windows,
[ --with-windows MS WINDOWS executable],
dnl set HAS_WINDOWS flag:
AC_DEFINE(HAS_WINDOWS)
)
case $with_windows in
yes )
AC_DEFINE(X_DISPLAY_MISSING)
AC_MSG_RESULT(No X display!)
CFLAGS="$CFLAGS -mwindows";;
2003-08-12 13:41:56 +02:00
* )
2002-01-03 23:44:21 +01:00
2000-04-27 22:03:57 +02:00
dnl Checks for X11 header files and libraries - X11 support can be disabled
dnl by passing the '--without-x' option to configure:
AC_PATH_X
AC_PATH_XTRA
dnl Checks for X libraries - if X11 wasn't found then don't make following
dnl tests and compile without X11 support - otherwise, check if the following
dnl libraries are present (error if they are not)
2002-01-03 23:44:21 +01:00
dnl In CYGWIN library ordering has to be changed. Is this compatible to LINUX?
dnl XShmAttach is a struct in CYGWIN, not a function
dnl SJB: 13th march 2005
dnl Library order is giving linker warnings on MacOSX
dnl It's not clear to me which order is required for Cygwin (see comment above)
dnl and neither can I find any authoritative answer for the correct link order
dnl for MacOSX or Linux, but
dnl -lXaw -lXmu -lXt -lXext -lX11
dnl seems to be the popular choice.
dnl (The previous order was -lX11 -lXt -lXext -lXmu -lXaw)
2000-04-27 22:03:57 +02:00
if test ! "$no_x" = "yes" ; then
AC_CHECK_LIB(Xaw,main,X_LIBS="$X_LIBS -lXaw",AC_MSG_ERROR(Couldn't find Xaw library),$X_LIBS $X_EXTRA_LIBS)
AC_CHECK_LIB(Xmu,main,X_LIBS="$X_LIBS -lXmu",AC_MSG_ERROR(Couldn't find Xmu library), $X_LIBS $X_EXTRA_LIBS)
X_LIBS="$X_LIBS -lXt"
AC_CHECK_LIB(Xext, XShmAttach,X_LIBS="$X_LIBS -lXext",AC_MSG_ERROR(Couldn't find Xext library), $X_LIBS $X_EXTRA_LIBS)
X_LIBS="$X_LIBS -lX11"
fi ;;
2001-11-25 19:11:44 +01:00
2002-01-03 23:44:21 +01:00
esac
2000-04-27 22:03:57 +02:00
dnl Check for a few typdefs:
AC_TYPE_PID_T
AC_TYPE_SIGNAL
dnl Check for a few libraries and headers:
dnl Look for ncurses first, then termcap
AC_SEARCH_LIBS(tputs,ncurses termcap,AC_DEFINE(HAVE_TERMCAP),
AC_MSG_ERROR(Found neither ncurses or termcap))
2000-04-27 22:03:57 +02:00
AC_HEADER_DIRENT
2001-02-11 01:47:21 +01:00
AC_CHECK_HEADERS(ctype.h unistd.h pwd.h fcntl.h string.h)
2000-04-27 22:03:57 +02:00
AC_HEADER_SYS_WAIT
AC_HEADER_STAT
dnl Check time and resources headers and functions:
2000-04-27 22:03:57 +02:00
AC_HEADER_TIME
AC_STRUCT_TM
AC_STRUCT_TIMEZONE
AC_CHECK_FUNCS(localtime)
2002-01-03 23:44:21 +01:00
dnl Some special AMD64 processor issues. This change may be common to many
dnl 64 bit processors, but I have only this platform to work with and did not
dnl find a good way of automatically determining this information.
case $host in
x86_64-*-linux*)
AC_DEFINE(IS_SIZE_T_LONG, 1)
;;
*)
AC_DEFINE(IS_SIZE_T_LONG, 0)
;;
esac
2002-01-03 23:44:21 +01:00
case $host_os in
*cygwin* )
AC_CHECK_FUNCS(ftime)
AC_DEFINE(HAVE__MEMAVL);;
2002-01-03 23:44:21 +01:00
* )
AC_CHECK_FUNCS(gettimeofday time ftime , break)
AC_CHECK_FUNCS(getrusage utimes, break)
AC_CHECK_FUNCS(getrlimit ulimit, break);;
2002-01-03 23:44:21 +01:00
esac
2000-04-27 22:03:57 +02:00
dnl Look for termios first (posix)
AC_CHECK_HEADERS(termios.h termio.h sgtty.h , break)
2002-01-03 23:44:21 +01:00
AC_CHECK_FUNCS(isatty tcgetattr tcsetattr)
2000-04-27 22:03:57 +02:00
dnl Check for a few functions:
AC_FUNC_FORK([])
2000-04-27 22:03:57 +02:00
AC_CHECK_FUNCS(access bcopy qsort dup2 popen)
AC_CHECK_FUNCS(strchr index , break)
AC_CHECK_FUNCS(getcwd getwd , break)
AC_MSG_RESULT(Checking mathematical features of the system:)
dnl Look for math library:
AC_CHECK_LIB(m,sqrt)
AC_CHECK_HEADERS(float.h limits.h values.h)
dnl Check for a few mathematical functions:
AC_CHECK_FUNCS(erfc logb scalb scalbn asinh acosh atanh)
dnl If user enables garbage collection, look for garbage collector
if test "$enable_gc" = "yes"; then
AC_MSG_RESULT(Checking for the presence of the Garbage Collector:)
AC_CHECK_LIB(gc,GC_malloc,AC_DEFINE(HAVE_LIBGC) LIBS="$LIBS -lgc")
fi
dnl Check for the asprintf function:
2002-01-03 23:44:21 +01:00
AC_CHECK_FUNCS(asprintf,,AC_CHECK_LIB(iberty,asprintf,AC_DEFINE(HAVE_ASPRINTF) LIBS="$LIBS -liberty"))
dnl Check for va_copy
AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#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_LINK_IFELSE([AC_LANG_PROGRAM([[#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
2002-01-03 23:44:21 +01:00
# AC_CHECK_FUNC(getopt_long, getopt_long=true)
# AM_CONDITIONAL(HAVE_GETOPT_LONG, test "$getopt_long" = "true")
2000-04-27 22:03:57 +02:00
# Expand the prefix variable (this is really annoying!)
if eval "test x$prefix = xNONE"; then
dprefix=$ac_default_prefix
else
dprefix=$prefix
fi
2002-01-03 23:44:21 +01:00
2000-04-27 22:03:57 +02:00
AC_DEFINE_UNQUOTED(NGSPICEBINDIR, "`echo $dprefix/bin`" )
AC_DEFINE_UNQUOTED(NGSPICEDATADIR, "`echo $dprefix/share/ng-spice-rework`" )
2000-04-27 22:03:57 +02:00
AC_DEFINE_UNQUOTED(NGSPICEBUILDDATE, "`date`" )
2002-01-03 23:44:21 +01:00
dnl with the MS WINDOWS executable we suggest /spice_win/bin as *.exe-path
if test "$with_windows" = "yes"; then
dnl redefine the path for WINDOWS:
AC_MSG_RESULT(WINDOWS code enabled)
2002-01-03 23:44:21 +01:00
AC_DEFINE_UNQUOTED(NGSPICEBINDIR, "`echo /spice_win/bin`" )
AC_DEFINE_UNQUOTED(NGSPICEDATADIR, "`echo /spice_win/lib`" )
WINMAIN="winmain.o"
WINDISPLIB="frontend/wdisp/libwindisp.a"
2002-01-03 23:44:21 +01:00
else
WINMAIN=""
WINDISPLIB=""
2002-01-03 23:44:21 +01:00
fi
2002-01-03 23:44:21 +01:00
AC_SUBST(WINMAIN)
AC_SUBST(WINDISPLIB)
2000-04-27 22:03:57 +02:00
2000-04-27 22:03:57 +02:00
# Recapitulate settings:
AC_MSG_RESULT(Settings which were chosen:)
if test "$enable_sense2" = "yes"; then
AC_DEFINE(WANT_SENSE2)
AC_MSG_RESULT(Spice2 sensitivity analysis enabled)
fi
if test "$enable_nobypass" = "yes"; then
AC_DEFINE(NOBYPASS)
AC_MSG_RESULT(NOBYPASS option enabled)
fi
2003-08-12 00:32:15 +02:00
if test "$enable_capbypass" = "yes"; then
2003-08-11 22:59:48 +02:00
AC_DEFINE(CAPBYPASS)
AC_MSG_RESULT(CAPBYPASS option enabled)
fi
2003-08-12 00:32:15 +02:00
if test "$enable_capzerobypass" = "yes"; then
2003-08-11 22:59:48 +02:00
AC_DEFINE(CAPZEROBYPASS)
AC_MSG_RESULT(CAPZEROBYPASS option enabled)
fi
if test "$enable_nodelimiting" = "yes"; then
AC_DEFINE(NODELIMITING)
AC_MSG_RESULT(NODELIMITING option enabled)
fi
2000-04-27 22:03:57 +02:00
if test "$enable_predictor" = "yes"; then
AC_DEFINE(PREDICTOR)
AC_MSG_RESULT(PREDICTOR algorithm enabled)
fi
if test "$enable_newpred" = "yes"; then
AC_DEFINE(NEWPRED)
AC_MSG_RESULT(NEWPRED enabled)
fi
2003-08-11 22:59:48 +02:00
if test "$enable_newtrunc" = "yes"; then
AC_DEFINE(NEWTRUNC)
AC_MSG_RESULT(New truncation error calculation enabled)
fi
2001-01-24 18:15:31 +01:00
if test "$enable_intnoise" = "yes"; then
AC_DEFINE(INT_NOISE)
AC_MSG_RESULT(Noise integration enabled)
fi
2000-04-27 22:03:57 +02:00
if test "$enable_experimental" = "yes"; then
AC_DEFINE(EXPERIMENTAL_CODE)
AC_MSG_RESULT(EXPERIMENTAL_CODE enabled)
fi
2003-09-25 19:23:26 +02:00
if test "$enable_cpdebug" = "yes"; then
AC_DEFINE(CPDEBUG)
AC_MSG_RESULT(WARNING: Shell debug is enabled)
fi
if test "$enable_ftedebug" = "yes"; then
AC_DEFINE(FTEDEBUG)
AC_MSG_RESULT(WARNING: Frontend debug is enabled)
fi
2003-08-11 22:59:48 +02:00
if test "$enable_sensdebug" = "yes"; then
AC_DEFINE(SENSDEBUG)
AC_MSG_RESULT(WARNING: Sensitivity code debug *SENSDEBUG* is enabled)
fi
if test "$enable_asdebug" = "yes"; then
AC_DEFINE(ASDEBUG)
AC_MSG_RESULT(WARNING: Sensitivity code debug *ASDEBUG* is enabled)
2003-08-11 22:59:48 +02:00
fi
if test "$enable_stepdebug" = "yes"; then
AC_DEFINE(STEPDEBUG)
AC_MSG_RESULT(WARNING: STEPDEBUG debug is enabled)
fi
if test "$enable_pzdebug" = "yes"; then
AC_DEFINE(PZDEBUG)
AC_MSG_RESULT(WARNING: Pole/Zero analysis debug is enabled)
fi
if test "$enable_blktmsdebug" = "yes"; then
AC_DEFINE(D_DBG_BLOCKTIMES)
AC_MSG_RESULT(WARNING: Distortion analysis debug *D_DBG_BLOCKTIMES* is enabled)
fi
if test "$enable_smltmsdebug" = "yes"; then
AC_DEFINE(D_DBG_SMALLTIMES)
AC_MSG_RESULT(WARNING: Distortion analysis debug *D_DBG_SMALLTIMES* is enabled)
fi
2004-01-25 10:00:31 +01:00
if test "$enable_xgraph" = "yes"; then
AC_MSG_RESULT(Xgraph compilation enabled.)
AC_CONFIG_SUBDIRS(xgraph)
XGRAPHDIR="xgraph"
else
XGRAPHDIR=""
fi
AC_SUBST(XGRAPHDIR)
if test "$enable_ekv" = "yes"; then
AC_MSG_RESULT(Model EKV included)
AC_DEFINE(HAVE_EKV)
EKVDIR="ekv"
EKVLIB="spicelib/devices/ekv/libekv.la"
else
EKVDIR=""
EKVLIB=""
fi
AC_SUBST(EKVDIR)
AC_SUBST(EKVLIB)
dnl Add new code models to the build by pointing to them here.
if test "$enable_xspice" = "yes"; then
AC_MSG_RESULT(X-Spice features included)
AC_DEFINE(XSPICE)
AC_PROG_YACC
AM_PROG_LEX
XSPICEDIR="xspice"
XSPICELIB1="$XSPICEDIR/cm/libcmxsp.a \
$XSPICEDIR/mif/libmifxsp.a"
XSPICELIB2="$XSPICEDIR/evt/libevtxsp.a \
$XSPICEDIR/enh/libenhxsp.a \
$XSPICEDIR/ipc/libipcxsp.a \
$XSPICEDIR/idn/libidnxsp.a \
-ldl"
XSPICEINIT=""
XSPICETESTS=""
else
XSPCIEDIR=""
XSPICELIB1=""
XSPICELIB2=""
2004-08-09 18:40:30 +02:00
XSPICETESTS=""
XSPICEINIT="*"
fi
AC_SUBST(XSPICEDIR)
AC_SUBST(XSPICELIB1)
AC_SUBST(XSPICELIB2)
AC_SUBST(XSPICETESTS)
AC_SUBST(XSPICEINIT)
dnl Add CIDER enhancements to ngspice.
2003-08-11 22:59:48 +02:00
if test "$enable_cider" = "yes"; then
2003-08-12 13:41:56 +02:00
AC_MSG_RESULT(CIDER features enabled)
AC_DEFINE(CIDER)
2003-08-12 13:41:56 +02:00
CIDERDIR="ciderlib"
2003-08-12 13:41:56 +02:00
CIDERSIM=" $CIDERDIR/twod/libcidertwod.a \
$CIDERDIR/oned/libcideroned.a \
$CIDERDIR/input/libciderinput.a \
$CIDERDIR/support/libcidersuprt.a"
CIDERMATH="misc"
CIDERMATHDIR="maths/misc/libmathmisc.a"
2003-08-12 13:41:56 +02:00
NUMDEV=" spicelib/devices/nbjt/libnbjt.a \
2003-08-11 22:59:48 +02:00
spicelib/devices/nbjt2/libnbjt2.a \
spicelib/devices/numd/libnumd.a \
spicelib/devices/numd2/libnumd2.a \
spicelib/devices/numos/libnumos.a"
2003-08-12 13:41:56 +02:00
NUMDEVDIR=" nbjt \
nbjt2 \
numd \
numd2 \
2003-08-11 22:59:48 +02:00
numos"
2003-08-12 13:41:56 +02:00
CIDERSCRIPTS="devload devaxis ciderinit"
2003-08-11 22:59:48 +02:00
else
CIDERLIB=""
CIDERSIM=""
CIDERMATH=""
CIDERMATHDIR=""
2003-08-11 22:59:48 +02:00
NUMDEV=""
NUMDEVDIR=""
CIDERSCRIPTS=""
fi
AC_SUBST(CIDERDIR)
AC_SUBST(CIDERSIM)
AC_SUBST(CIDERMATH)
AC_SUBST(CIDERMATHDIR)
2003-08-11 22:59:48 +02:00
AC_SUBST(NUMDEV)
2003-08-12 00:32:15 +02:00
AC_SUBST(NUMDEVDIR)
AC_SUBST(CIDERSCRIPTS)
2003-08-11 22:59:48 +02:00
dnl Cluster option
if test "$enable_cluster" = "yes"; then
AC_MSG_RESULT(Cluster version is being compiled)
AC_DEFINE(CLUSTER)
LIBS="$LIBS -lpthread"
fi
if test "$enable_expdevices" = "yes"; then
AC_DEFINE(EXP_DEV)
AC_MSG_RESULT(WARNING: Experimental devices enabled)
fi
2003-08-12 13:41:56 +02:00
2003-09-25 19:23:26 +02:00
if test "$enable_numparam" = "yes"; then
AC_MSG_RESULT(Numparam library is enabled)
AC_DEFINE(NUMPARAMS)
NUMPARAMDIR="numparam"
NUMPARAMLIB="frontend/numparam/libnumparam.a"
else
NUMPARAMDIR=""
NUMPARAMLIB=""
fi
AC_SUBST(NUMPARAMDIR)
AC_SUBST(NUMPARAMLIB)
dnl ---- Option to include GNU readline support in ngspice CLI ----
2004-01-25 10:00:31 +01:00
dnl ---- Default: disabled. ----
dnl ---- Hope to see in the future readline replacement. ----
2004-01-28 01:07:29 +01:00
if test "$with_readline" != "yes"; then
AC_MSG_RESULT(GNU readline disabled.)
else
AC_MSG_RESULT(Checking for readline:)
AC_CHECK_HEADERS([readline/readline.h readline/history.h],
[AC_DEFINE(HAVE_GNUREADLINE)],
[AC_MSG_ERROR(Couldn't find GNU readline headers.)])
AC_CHECK_LIB(readline, readline,
[LIBS="$LIBS -lreadline"],
2004-01-25 10:00:31 +01:00
[AC_MSG_ERROR(Couldn't find readline libraries.)])
fi
2000-04-27 22:03:57 +02:00
2004-01-25 10:00:31 +01:00
AC_CONFIG_FILES([\
2000-04-27 22:03:57 +02:00
Makefile \
doc/Makefile \
man/Makefile \
man/man1/Makefile \
src/Makefile \
src/spinit \
src/spicelib/Makefile \
src/spicelib/analysis/Makefile \
2000-07-23 11:17:22 +02:00
src/spicelib/devices/Makefile \
src/spicelib/devices/asrc/Makefile \
src/spicelib/devices/bjt/Makefile \
src/spicelib/devices/bjt2/Makefile \
2000-07-23 11:17:22 +02:00
src/spicelib/devices/bsim1/Makefile \
src/spicelib/devices/bsim2/Makefile \
2003-08-11 22:59:48 +02:00
src/spicelib/devices/bsim3v0/Makefile \
2000-07-23 11:17:22 +02:00
src/spicelib/devices/bsim3v1/Makefile \
2003-08-11 22:59:48 +02:00
src/spicelib/devices/bsim3v1a/Makefile \
src/spicelib/devices/bsim3v1s/Makefile \
2000-07-23 11:17:22 +02:00
src/spicelib/devices/bsim3/Makefile \
src/spicelib/devices/bsim4/Makefile \
2003-08-11 22:59:48 +02:00
src/spicelib/devices/bsim3soi/Makefile \
src/spicelib/devices/bsim3soi_pd/Makefile \
src/spicelib/devices/bsim3soi_fd/Makefile \
src/spicelib/devices/bsim3soi_dd/Makefile \
2000-07-23 11:17:22 +02:00
src/spicelib/devices/cap/Makefile \
src/spicelib/devices/cccs/Makefile \
src/spicelib/devices/ccvs/Makefile \
src/spicelib/devices/csw/Makefile \
src/spicelib/devices/cpl/Makefile \
2000-07-23 11:17:22 +02:00
src/spicelib/devices/dio/Makefile \
src/spicelib/devices/ind/Makefile \
src/spicelib/devices/isrc/Makefile \
src/spicelib/devices/hfet1/Makefile \
src/spicelib/devices/hfet2/Makefile \
2003-08-11 22:59:48 +02:00
src/spicelib/devices/hisim/Makefile \
2000-07-23 11:17:22 +02:00
src/spicelib/devices/jfet/Makefile \
src/spicelib/devices/jfet2/Makefile \
src/spicelib/devices/ltra/Makefile \
src/spicelib/devices/mes/Makefile \
src/spicelib/devices/mesa/Makefile \
2000-07-23 11:17:22 +02:00
src/spicelib/devices/mos1/Makefile \
src/spicelib/devices/mos2/Makefile \
src/spicelib/devices/mos3/Makefile \
src/spicelib/devices/mos6/Makefile \
src/spicelib/devices/mos9/Makefile \
2000-07-23 11:17:22 +02:00
src/spicelib/devices/res/Makefile \
2001-05-02 22:33:10 +02:00
src/spicelib/devices/soi3/Makefile \
src/spicelib/devices/sw/Makefile \
2000-07-23 11:17:22 +02:00
src/spicelib/devices/tra/Makefile \
src/spicelib/devices/txl/Makefile \
2000-07-23 11:17:22 +02:00
src/spicelib/devices/urc/Makefile \
src/spicelib/devices/vbic/Makefile \
2000-07-23 11:17:22 +02:00
src/spicelib/devices/vccs/Makefile \
src/spicelib/devices/vcvs/Makefile \
src/spicelib/devices/vsrc/Makefile \
2003-08-11 22:59:48 +02:00
src/spicelib/devices/nbjt/Makefile \
src/spicelib/devices/nbjt2/Makefile \
src/spicelib/devices/numd/Makefile \
src/spicelib/devices/numd2/Makefile \
src/spicelib/devices/numos/Makefile \
src/spicelib/parser/Makefile \
src/ciderlib/Makefile \
src/ciderlib/input/Makefile \
src/ciderlib/support/Makefile \
src/ciderlib/oned/Makefile \
src/ciderlib/twod/Makefile \
src/frontend/Makefile \
src/frontend/numparam/Makefile \
src/frontend/help/Makefile \
src/frontend/parser/Makefile \
src/frontend/plotting/Makefile \
src/frontend/wdisp/Makefile \
src/include/Makefile \
src/maths/Makefile \
src/maths/cmaths/Makefile \
src/maths/misc/Makefile \
src/maths/ni/Makefile \
src/maths/deriv/Makefile \
src/maths/poly/Makefile \
src/maths/sparse/Makefile \
src/misc/Makefile \
src/xspice/Makefile \
src/xspice/cm/Makefile \
src/xspice/cmpp/Makefile \
src/xspice/icm/makedefs \
src/xspice/mif/Makefile \
src/xspice/evt/Makefile \
src/xspice/enh/Makefile \
src/xspice/ipc/Makefile \
src/xspice/idn/Makefile \
tests/Makefile \
tests/bsim1/Makefile \
tests/bsim2/Makefile \
tests/bsim3/Makefile \
tests/bsim3/Berkeley/Makefile \
tests/bsim3/Berkeley/3v0/Makefile \
tests/bsim3/Berkeley/3v0/ac_sim/Makefile \
tests/bsim3/Berkeley/3v0/dc_sim/Makefile \
tests/bsim3/Berkeley/3v0/tran_sim/Makefile \
tests/bsim3/Berkeley/3v1/Makefile \
tests/bsim3/Berkeley/3v1/ac_sim/Makefile \
tests/bsim3/Berkeley/3v1/dc_sim/Makefile \
tests/bsim3/Berkeley/3v1/tran_sim/Makefile \
tests/bsim3/Berkeley/3v2/Makefile \
tests/bsim3/Berkeley/3v2/ac_sim/Makefile \
tests/bsim3/Berkeley/3v2/dc_sim/Makefile \
tests/bsim3/Berkeley/3v2/tran_sim/Makefile \
tests/bsim3soidd/Makefile \
tests/bsim3soifd/Makefile \
tests/bsim3soipd/Makefile \
tests/bsim4/Makefile \
tests/filters/Makefile \
tests/general/Makefile \
tests/hfet/Makefile \
tests/hisim/Makefile \
tests/jfet/Makefile \
tests/mes/Makefile \
tests/mesa/Makefile \
tests/mos6/Makefile \
tests/polezero/Makefile \
2004-08-09 18:40:30 +02:00
tests/sensitivity/Makefile \
tests/transient/Makefile \
tests/transmission/Makefile \
tests/resistance/Makefile \
tests/vbic/Makefile
])
AC_OUTPUT