dnl Process this file with autoconf to produce a configure script. dnl configure.in for gnuplot 3.7 on Unix. dnl dnl $Id: configure.in,v 1.41.2.18 2002/10/15 19:33:49 lhecking Exp $ dnl AC_INIT(graphics.c) AM_CONFIG_HEADER(config.h:config.hin) AC_PREREQ(2.13) VERSION=`sed -n 's/.*version.*"\(.*\)".*/\1/p' $srcdir/version.c|tr -d ' '` PL=`sed -n 's/.*patchlevel.*"\(.*\)".*/\1/p' $srcdir/version.c|tr -d ' '` AM_INIT_AUTOMAKE(gnuplot, $VERSION.$PL) dnl Compiler characteristics dnl Check for ANSI C prototypes, the const and inline keywords, dnl and ANSI style stringification AC_PROG_CC AM_C_PROTOTYPES AC_PROG_CPP AC_C_CONST AC_C_INLINE AC_C_STRINGIZE AC_MSG_CHECKING(if compiler handles warn and error directives correctly) AC_TRY_CPP([#if 0 #error "error" #warning "warning" #endif], ERRORFIX= AC_MSG_RESULT(yes),dnl ERRORFIX=errorfix AC_MSG_RESULT(no)) AC_SUBST(ERRORFIX) dnl X Window System files. AC_SUBST(LIBRARIES_FOR_X) AC_SUBST(GNUPLOT_X11) AC_PATH_XTRA dnl Needed for LynxOS until AC_PATH_XTRA is fixed if test "$ac_cv_func_gethostbyname" = no; then if test "$ac_cv_lib_nsl_gethostbyname" = no; then AC_CHECK_LIB(bsd, gethostbyname, X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd") fi fi if test "$no_x" != yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" LIBRARIES_FOR_X="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS" GNUPLOT_X11=gnuplot_x11 AC_DEFINE(X11, 1, [ Define if you are using the X11 window system. ]) fi dnl Operating systems. dnl FIXME AC_DEFINE(ISC22) dnl FIXME AC_DEFINE(KSR) dnl Check for MSDOS and djgpp, NeXT, Apple MacOsX (NeXT like), BeOS GP_MSDOS GP_NEXT GP_APPLE GP_BEOS dnl Apparently, -lNeXT_s is needed on NeXT dnl _instead_ of -lm ... AC_CHECK_FUNC(sin) if test "$ac_cv_func_sin" = no ; then AC_CHECK_LIB(m,sin) fi dnl this has to be after -lsys_s on NeXT dnlLIBS="$LIBS -lm" dnl Header files. ANSI first dnl We prefer that the absense of a macro is the norm, so in syscfg.h dnl configure's HAVE_XXXX defines are translated into NO_XXXX for ANSI dnl headers and functions AC_HEADER_STDC dnl Header files dnl ANSI/ISO C, POSIX, others AC_CHECK_HEADERS(errno.h float.h limits.h locale.h math.h stdlib.h string.h \ time.h sys/time.h sys/timeb.h sys/types.h \ sys/bsdtypes.h sys/select.h sys/socket.h sys/stat.h \ sys/systeminfo.h sys/utsname.h libc.h malloc.h sgtty.h termios.h values.h ) test "$ac_cv_header_sys_stat_h" = yes && AC_HEADER_STAT dnl check if unistd actually declares anything. On NeXT 3.2 unistd is dnl conditionalized for _POSIX_SOURCE AC_MSG_CHECKING(for unistd.h) AC_EGREP_HEADER(execv, unistd.h, AC_DEFINE(HAVE_UNISTD_H) AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) dnl check if errno.h header declares errno AC_MSG_CHECKING(if errno variable is declared) AC_TRY_COMPILE( [#include #ifdef HAVE_ERRNO_H #include #endif], errno=0,AC_MSG_RESULT(yes), AC_DEFINE(EXTERN_ERRNO, 1, [ Define if declares errno. ]) AC_MSG_RESULT(no) )dnl dnl Types. AC_TYPE_SIZE_T AC_MSG_CHECKING(for time_t in time.h) AC_EGREP_HEADER(time_t,time.h, [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_TIME_T_IN_TIME_H, 1, [ Define if time_t is declared in time.h. ])]) AC_TYPE_SIGNAL dnl Functions. Standard first, then others dnl ANSI/ISO and their predecessors dnl sunos 4 has on_exit() in place of atexit() dnl gamma is called lgamma on apollos and linux dnl we prefer lgamma over gamma, see specfun.c dnl math lib is already available, see operating systems part AC_CHECK_FUNCS(atexit memcpy memmove memset \ on_exit bcopy bzero \ setvbuf strerror strchr strrchr strstr \ index rindex \ erf erfc gamma lgamma \ getcwd poll pclose popen select sleep snprintf stpcpy \ strcspn strdup strcasecmp stricmp strncasecmp strnicmp \ sysinfo tcgetattr vfprintf doprnt ) dnl check, if we have sigsetjmp and siglongjmp. dnl a trivial AC_CHECK_FUNCS(sigsetjmp) won't do dnl because sigsetjmp() might be a macro declared dnl in . (joze) AC_MSG_CHECKING(for sigsetjmp) AC_TRY_LINK([#include ], [jmp_buf env; sigsetjmp(env, 1);], [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SIGSETJMP, 1, [ Define if we have sigsetjmp(). ])], AC_MSG_RESULT(no) ) if test "$ac_cv_func_pclose" = yes && test "$ac_cv_func_popen" = yes ; then AC_DEFINE(PIPES, 1, [ Define if you do have the popen and pclose functions. ]) fi dnl Argument types of select() AC_FUNC_SELECT dnl On SVR3. dnl FIXME AC_DEFINE(CRIPPLED_SELECT) dnl Install the lasergnu printer script (default no) LASERGNU=lasergnu_noinstall AC_ARG_WITH(lasergnu,dnl [ --with-lasergnu install lasergnu printer script], test "$withval" = yes && LASERGNU=lasergnu_install) dnl The Linux console driver AC_ARG_WITH(linux-vga,dnl [ --with-linux-vga use the Linux SVGA console driver (requires /usr/lib/libvga)],, test -z "$with_linux_vga" && with_linux_vga=no) dnl check for installed linux vgalib if test "$with_linux_vga" = yes; then AC_MSG_CHECKING(for linux vga library) AC_CHECK_LIB(vga, vga_init, [AC_DEFINE(LINUXVGA, 1, [ Define if this is a Linux system with SuperVGA library. ]) LINUXSUID='chown root $(bindir)/gnuplot; chmod u+s $(bindir)/gnuplot' TERMLIBS="-lvga $TERMLIBS"], with_linux_vga=no) fi dnl Use builtin readline or GNU readline AC_ARG_WITH(readline,dnl [ --with-readline use the builtin minimal readline function (default) --without-readline do not use the builtin readline function --with-readline=gnu use the GNU readline library --with-readline=PATH Specify the location of GNU readline],, test -z "$with_readline" && with_readline=yes) dnl GNU readline and the required terminal library if test "$with_readline" != no; then if test "$with_readline" != yes; then dnl check for terminal library dnl this is a very cool solution from octave's configure.in gp_tcap="" for termlib in ncurses curses termcap terminfo termlib; do AC_CHECK_LIB(${termlib}, tputs, [gp_tcap="$gp_tcap -l$termlib"]) case "$gp_tcap" in *-l${termlib}*) break ;; esac done if test "$with_readline" = gnu; then AC_CHECK_LIB(readline, readline, TERMLIBS="-lreadline $gp_tcap $TERMLIBS",, ${gp_tcap}) else if test -d $with_readline/include; then CPPFLAGS="$CPPFLAGS -I$with_readline/include" fi if test -d $with_readline/lib; then LDFLAGS="$LDFLAGS -L$with_readline/lib" fi AC_CHECK_LIB(readline,readline, TERMLIBS="-lreadline $gp_tcap $TERMLIBS",,[${gp_tcap}]) fi if test "$ac_cv_lib_readline_readline" = no; then AC_MSG_WARN([GNU readline not found - falling back to builtin readline]) with_readline=yes else AC_DEFINE(HAVE_LIBREADLINE, 1, [ Define if you are using the GNU readline library. ]) fi # ! ac_cv_lib_readline_readline = no fi # with_readline" != yes if test "$with_readline" = yes; then AC_DEFINE(READLINE, 1, [ Define if you want to use the included readline function. ]) fi fi dnl end readline dnl The gif terminal with Tom Boutell's gd library AC_ARG_WITH(gd,dnl [ --with-gd[=PATH] enable gif terminal with Tom Boutell's gd library (requires GD library)], [if test "$withval" != no; then if test -d $withval/include; then CPPFLAGS="$CPPFLAGS -I$withval/include" fi if test -d $withval/lib; then LDFLAGS="$LDFLAGS -L$withval/lib" fi AC_CHECK_LIB(gd,gdImageGif, [TERMLIBS="-lgd $TERMLIBS" AC_CHECK_HEADERS(gd.h, AC_DEFINE(HAVE_LIBGD, 1, [ Define if you have Thomas Boutell's gd library. ]), AC_MSG_WARN([found gd library but not gd.h please add path to gd.h to CPPFLAGS in Makefile]) )], AC_MSG_RESULT([ GD library not found or cannot create gif images. See term/gif.trm for download details])) fi]) dnl end gd library dnl If no PATH argument given, use the Unix plot library dnl Else use either GNU libplot from plotutils, dnl or ancient GNU graphics libplot AC_ARG_WITH(plot,dnl [ --with-plot[=PATH] use the Unix plot library], [if test "$withval" = yes; then dnl Unix plot library AC_CHECK_LIB(plot,openpl, [AC_DEFINE(UNIXPLOT, 1, [ Define if you want to use the standard Unix plot library. ]) TERMLIBS="-lplot $TERMLIBS"], with_plot=no) elif test "$withval" != no; then dnl GNU plotutils 2.2 or better if test -d $withval/include; then CPPFLAGS="$CPPFLAGS -I$withval/include" fi if test -d $withval/lib; then LDFLAGS="$LDFLAGS -L$withval/lib" fi TERMXLIBS="$X_LIBS -lXaw -lXmu -lXt -lXext -lX11" AC_CHECK_LIB(plot,pl_textangle, [TERMLIBS="-lplot $TERMLIBS" AC_DEFINE(GNUGRAPH, 1, [ Define if you want to use the GNU version of the Unix plot library. ])], [AC_MSG_WARN([GNU plotutils v2.2 or newer required -- disabling gnugraph terminal]) TERMXLIBS= with_plot=no], [$TERMXLIBS]) fi]) dnl end libplot dnl The Portable Network Graphics (png) terminal AC_ARG_WITH(png,dnl [ --with-png[=PATH] enable png terminal (requires libpng and libz)], [if test "$withval" != no; then if test -d $withval/include; then CPPFLAGS="$CPPFLAGS -I$withval/include" fi if test -d $withval/lib; then LDFLAGS="$LDFLAGS -L$withval/lib" fi with_png=yes fi],with_png=yes) if test "$with_png" = yes; then AC_CHECK_LIB(png,png_init_io, [TERMLIBS="-lpng -lz $TERMLIBS" AC_CHECK_HEADERS(png.h, [AC_CHECK_HEADERS(zlib.h,, AC_MSG_WARN([found z library but not zlib.h please add path to zlib.h to CPPFLAGS in Makefile])) AC_EGREP_CPP([You lose], [#include "png.h" #if PNG_LIBPNG_VER < 89 You lose. #endif ], AC_MSG_WARN([- libpng too old - not including png driver]) ac_cv_header_png_h=no)], AC_MSG_WARN([found png library but not png.h please add path to png.h to CPPFLAGS in Makefile]))], AC_MSG_RESULT([ PNG library not found. See term/png.trm for download details]), [-lz]) if test "$ac_cv_header_png_h" = yes; then AC_DEFINE(HAVE_LIBPNG, 1, [ Define if you have the png library. ]) fi fi dnl end png and z dnl The Portable Document Format (PDF) terminal AC_ARG_WITH(pdf,dnl [ --with-pdf[=PATH] enable pdf terminal (requires PDFLib)], [if test "$withval" != no; then if test -d $withval/include; then CPPFLAGS="$CPPFLAGS -I$withval/include" fi if test -d $withval/lib; then LDFLAGS="$LDFLAGS -L$withval/lib" fi with_pdf=yes fi],with_pdf=no) if test "$with_pdf" = yes; then AC_CHECK_LIB(pdf,PDF_get_majorversion, [TERMLIBS="-lpdf $TERMLIBS" AC_DEFINE(HAVE_LIBPDF,1, [ Define if you have the pdf library. ]) AC_CHECK_HEADERS(pdflib.h,, AC_MSG_WARN([found pdf library but not pdflib.h please add path to pdflib.h to CPPFLAGS in Makefile])) AC_CHECK_HEADERS(zlib.h,, AC_MSG_WARN([found z library but not zlib.h please add path to zlib.h to CPPFLAGS in Makefile]))], AC_MSG_RESULT([ PDF library not found. See term/pdf.trm for download details])) if test "$ac_cv_header_pdflib_h" = yes; then AC_DEFINE(HAVE_LIBPDF, 1, [ Define if you have the pdf library. ]) fi fi dnl end pdf dnl How do we detect the Ultrix X libraries? dnl Or is it really a server (run-time) problem? dnl FIXME AC_DEFINE(ULTRIX_KLUDGE) dnl Removed enable options for these dnl Just autodetect dnl SCO cgi AC_EGREP_CPP(yes, [#ifdef SCO yes #endif ],AC_CHECK_LIB(ccgi, v_opnwk, AC_DEFINE(CGI, 1, [ Define if you want to use the CGI terminal under SCO. ]) TERMLIBS="-lccgi $TERMLIBS")) dnl Sun sunview AC_EGREP_CPP(yes, [#ifdef sun yes #endif ], AC_CHECK_LIB(suntool, window_create, AC_CHECK_HEADER(suntool/sunview.h, AC_DEFINE(SUN, 1, [ Define if you want to use the sunview terminal (sun). ]) TERMLIBS="-lsuntool -lsunwindow -lpixrect $TERMLIBS"),, [-lsunwindow -lpixrect])) dnl Process enable options dnl Use .gnuplot file in current directory AC_ARG_WITH(cwdrc,dnl [ --with-cwdrc check current directory for .gnuplot file, normally disabled for security reasons],, [if test "$withval" = yes; then AC_DEFINE(NOCWDRC, 1, [ Define if you do not want to read .gnuplot in the current directory. ]) fi]) dnl ggi driver AC_ARG_ENABLE(ggi,dnl [ --enable-ggi enable ggi driver (EXPERIMENTAL)], [AC_CHECK_LIB(ggi,ggiInit, AC_CHECK_LIB(ggiwmh,ggiWmhInit, AC_DEFINE(HAVE_GGI, 1, [ Define if you have the required ggi libraries. ]), enable_ggi=no), enable_ggi=no) ] )dnl dnl IRIS terminal on IRIS4D series computer AC_ARG_ENABLE(iris,dnl [ --enable-iris enable IRIS terminal (IRIS4D only)], [if test "$enableval" = yes; then AC_CHECK_LIB(gl_s,winopen, AC_DEFINE(IRIS, 1, [ Define if you want to use the IRIS terminal on IRIS4D series computers. ]) TERMLIBS="-lgl_s $TERMLIBS",enable_iris=no) fi]) dnl MGR Window system AC_ARG_ENABLE(mgr,dnl [ --enable-mgr enable MGR terminal], [if test "$enableval" = yes; then AC_CHECK_LIB(mgr,m_getinfo, AC_DEFINE(MGR, 1, [ Define if you want to use the MGR Window system. ]) TERMLIBS="-lmgr -lpixrect $TERMLIBS",enable_mgr=no,[-lpixrect]) fi]) dnl Redwood Graphics Interface Protocol AC_ARG_ENABLE(rgip,dnl [ --enable-rgip enable Redwood Graphics Interface Protocol], [if test "$enableval" = yes; then AC_DEFINE(RGIP, 1, [ Define if you want to use the Redwood Graphics Interface Protocol. ]) fi]) dnl Substitute variables AC_SUBST(PACKAGE) AC_SUBST(VERSION) AC_SUBST(LASERGNU) AC_SUBST(LINUXSUID) AC_SUBST(TERMLIBS) AC_SUBST(TERMXLIBS) dnl Report configuration eval gp_datadir=$datadir test $gp_datadir = NONE/share && gp_datadir=/usr/local/share AC_MSG_RESULT([ ** Configuration summary for $PACKAGE $VERSION: Where is the help file? $gp_datadir/gnuplot.gih ]) if test "$ac_cv_header_gd_h" = yes; then AC_MSG_RESULT([ Enable generation of GIF files]) fi if test "$ac_cv_header_pdflib_h" = yes; then AC_MSG_RESULT([ Enable generation of PDF files]) fi if test "$ac_cv_header_png_h" = yes; then AC_MSG_RESULT([ Enable generation of PNG files]) fi if test "$with_cwdrc" = yes; then AC_MSG_RESULT([ Check current directory for .gnuplot file]) fi if test "$with_readline" != no; then if test "$with_readline" != yes; then AC_MSG_RESULT([ Use GNU readline library]) test -n "$gp_tcap" && AC_MSG_RESULT([ with ${gp_tcap}]) else AC_MSG_RESULT([ Use builtin minimal readline]) fi fi if test x"$with_plot" != x; then if test "$with_plot" = yes; then AC_MSG_RESULT([ Use the Unix plot library]) else AC_MSG_RESULT([ Use the GNU plot library v2.2 or better]) fi fi if test "$with_lasergnu" = yes; then AC_MSG_RESULT([ Install lasergnu printer script]) fi if test "$with_linux_vga" = yes; then AC_MSG_RESULT([ Use the Linux SVGA console driver]) AC_MSG_RESULT([ SECURITY NOTICE: SVGAlib requires that]) AC_MSG_RESULT([ gnuplot is installed suid root!]) fi if test "$enable_ggi" = yes; then AC_MSG_RESULT([ Enable ggi terminal (EXPERIMENTAL)]) fi if test "$enable_iris" = yes; then AC_MSG_RESULT([ Enable IRIS terminal]) fi if test "$enable_mgr" = yes; then AC_MSG_RESULT([ Enable MGR terminal]) fi if test "$enable_rgip" = yes; then AC_MSG_RESULT([ Enable RGIP terminal]) fi if test "$no_x" != yes; then AC_MSG_RESULT([ Use the X Window System ]) fi dnl end config report dnl Write Makefiles and configuration header AC_OUTPUT([Makefile docs/Makefile docs/latextut/Makefile], \ [test -z "$CONFIG_HEADERS" || echo timestamp >stamp-h]) dnl end configure.in