dnl Process this file with autoconf to produce a configure script. dnl configure.in for gnuplot 3.7 on Unix. dnl dnl Where possible, please adopt a convention that the absense of dnl a macro is the usual case : this saves having to update dnl countless makefiles when new tests are added. By usual case dnl I guess ansi compiler on posix system or something like that dnl dnl [Lars: this is no longer necessary. I have cut this stuff out dnl of configure.in and added the necessery definitions to syscfg.h. dnl This reduced the size of configure by 30k! dnl dnl $Id: configure.in,v 1.90 1998/06/18 14:52:55 ddenholm Exp $ dnl AC_PREREQ(2.13) AC_REVISION($Revision: 1.1.1.1 $) AC_INIT(graphics.c) VERSION=`sed -n 's/.*version.*"\(.*\)".*/\1/p' $srcdir/version.c|tr -d ' '` AM_INIT_AUTOMAKE(gnuplot, $VERSION) AC_CONFIG_HEADER(config.h:config.hin) dnl Optional features. dnl Do not use the included readline function AC_ARG_WITH(readline,dnl [ --with-readline use the included minimal readline function (default) --without-readline do not use the included readline function],, test -z "$with_readline" && with_readline=yes )dnl dnl The GNU readline library AC_ARG_WITH(gnu-readline,dnl [ --with-gnu-readline use the GNU readline library --with-gnu-readline=PATH Specify the location of GNU readline],, test -z "$with_gnu_readline" && with_gnu_readline=no )dnl 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 use the Unix plot library --with-plot=PATH Specify the location of GNU libplot],, test -z "$with_plot" && with_plot=no )dnl dnl The gif terminal with Tom Boutell's gd library AC_ARG_WITH(gd,dnl [ --with-gd enable gif terminal with Tom Boutell's gd library (requires GD library) --with-gd=PATH Specify the location of libgd],, test -z "$with_gd" && with_gd=yes )dnl dnl The Portable Network Graphics (png) terminal AC_ARG_WITH(png,dnl [ --with-png enable png terminal (requires libpng and libz) --with-png=PATH Specify the location of libpng],, test -z "$with_png" && with_png=yes )dnl 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], test "$withval" = no && AC_DEFINE(NOCWDRC), AC_DEFINE(NOCWDRC) )dnl dnl Install the lasergnu printer script AC_ARG_WITH(lasergnu,dnl [ --with-lasergnu install lasergnu printer script], if test "$withval" = yes; then LASERGNU=lasergnu_install; \ else LASERGNU=lasergnu_noinstall; fi, LASERGNU=lasergnu_noinstall )dnl dnl The Linux console driver AC_ARG_WITH(linux-vga,dnl [ --without-linux-vga do not use the Linux console driver (requires Linux SVGAlib /usr/lib/libvga)],, test -z "$with_linux_vga" && with_linux_vga=yes )dnl dnl Apollo Graphics Primitive Resource AC_ARG_ENABLE(apollo,dnl [ --enable-apollo Apollo Graphics Primitive Resource],, test -z "$enable_apollo" && enable_apollo=no )dnl dnl Apollo Graphics Primitive Resource (fixed-size window) AC_ARG_ENABLE(gpr,dnl [ --enable-gpr Apollo Graphics Primitive Resource (fixed-size window)],, test -z "$enable_gpr" && enable_gpr=no )dnl dnl On SCO only: cgi terminal AC_ARG_ENABLE(cgi,dnl [ --enable-cgi enable CGI terminal (SCO only)],, test -z "$enable_cgi" && enable_cgi=no )dnl dnl IRIS terminal on IRIS4D series computer AC_ARG_ENABLE(iris,dnl [ --enable-iris enable IRIS terminal (IRIS4D only)],, test -z "$enable_iris" && enable_iris=no )dnl dnl MGR Window system AC_ARG_ENABLE(mgr,dnl [ --enable-mgr enable MGR terminal],, test -z "$enable_mgr" && enable_mgr=no )dnl dnl Redwood Graphics Interface Protocol AC_ARG_ENABLE(rgip,dnl [ --enable-rgip enable Redwood Graphics Interface Protocol],, test -z "$enable_rgip" && enable_rgip=no )dnl dnl SUNview driver AC_ARG_ENABLE(sun,dnl [ --enable-sun enable sunview terminal (Sun only)],, test -z "$enable_sun" && enable_sun=no )dnl dnl ATT 3b1 or ATT 7300 unixpc AC_ARG_ENABLE(unixpc,dnl [ --enable-unixpc enable unixpc terminal (ATT 3b1 or ATT 7300)],, test -z "$enable_unixpc" && enable_unixpc=no )dnl dnl enable system time routines AC_ARG_ENABLE(system-time,dnl [ --enable-system-time use the system time routines in time.c],, test -z "$enable_system_time" && enable_system_time=no )dnl dnl configure.in body 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(X_LIBRARIES) AC_SUBST(GNUPLOT_X11) AC_PATH_XTRA if test "$no_x" != yes; then CPPFLAGS="$CPPFLAGS $X_CFLAGS" X_LIBRARIES="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS" GNUPLOT_X11=gnuplot_x11 AC_DEFINE(X11) fi dnl Operating systems. dnl FIXME AC_DEFINE(ISC22) dnl FIXME AC_DEFINE(KSR) dnl Check for MSDOS and djgpp, NeXT gp_MSDOS gp_NEXT dnl this has to be after -lsys_s on NeXT LIBS="$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 Standard headers 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) dnl other AC_CHECK_HEADERS(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) AC_MSG_RESULT(no)) dnl Types. AC_TYPE_SIZE_T AC_MSG_CHECKING(for time_t in time.h) AC_EGREP_HEADER(time_t,time.h,dnl [ ac_cv_type_time_t=yes; AC_MSG_RESULT(yes) ],dnl [ AC_MSG_RESULT(no) AC_CHECK_TYPE(time_t, long)]) AC_TYPE_SIGNAL dnl Functions. Standard first, then others dnl sunos 4 has on_exit() in place of atexit() AC_CHECK_FUNCS(atexit on_exit memcpy memmove memset bcopy bzero setvbuf \ strerror strchr index strrchr rindex strstr) 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(erf erfc gamma lgamma getcwd pclose popen sleep snprintf \ strncasecmp strnicmp sysinfo tcgetattr) if test "$ac_cv_func_pclose" = yes && test "$ac_cv_func_popen" = yes ; then AC_DEFINE(PIPES) fi dnl arg types for select AC_FUNC_SELECT_ARGTYPES dnl On SVR3. dnl FIXME AC_DEFINE(CRIPPLED_SELECT) 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) LINUXSUID='chown root $(bindir)/gnuplot; chmod u+s $(bindir)/gnuplot' TERMLIBS="$TERMLIBS -lvga"],dnl with_linux_vga=no) fi dnl GNU readline and the required terminal library if test "$with_gnu_readline" != no; 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}*) AC_MSG_RESULT([using ${gp_tcap} with readline]) break ;; esac done if test "$with_gnu_readline" = yes; then AC_CHECK_LIB(readline, readline,dnl LIBS="$LIBS -lreadline $gp_tcap" AC_DEFINE(GNU_READLINE) with_readline=no,dnl AC_MSG_ERROR([Can't find -lreadline in a standard path -- specify its location using --with-gnu-readline=/path/to/libreadline.a]),dnl ${gp_tcap})dnl readline else if test ! -f $with_gnu_readline ; then if test ! -f ${with_gnu_readline}/lib/libreadline.a ; then if test ! -f ${with_gnu_readline}/libreadline.a ; then AC_MSG_ERROR([GNU readline library not found]) else AC_MSG_RESULT([using ${with_gnu_readline}/libreadline.a]) LIBS="$LIBS ${with_gnu_readline}/libreadline.a $gp_tcap" fi else AC_MSG_RESULT([using ${with_gnu_readline}/lib/libreadline.a]) LIBS="$LIBS ${with_gnu_readline}/lib/libreadline.a $gp_tcap" fi else AC_MSG_RESULT([using ${with_gnu_readline}]) LIBS="$LIBS $with_gnu_readline $gp_tcap" fi AC_DEFINE(GNU_READLINE) with_readline=no fi fi test "$with_readline" = yes && AC_DEFINE(READLINE) dnl end readline dnl libplot if test "$with_plot" != no; then if test "$with_plot" = yes; then dnl Unix plot library AC_CHECK_LIB(plot,openpl,dnl AC_DEFINE(UNIXPLOT) TERMLIBS="$TERMLIBS -lplot",dnl with_plot=no) else dnl GNU plot library - test for new version first TERMXLIBS="$X_LIBS -lXaw -lXmu -lXt -lXext -lX11" gp_SEARCH_LIBDIRS(plot,textangle,[$TERMXLIBS]) if test "$ac_cv_lib_plot_textangle" = no; then TERMXLIBS= gp_SEARCH_LIBDIRS(plot,rotate) if test "$ac_cv_lib_plot_rotate" = no; then AC_MSG_WARN([can't find GNU libplot -- disabling gnugraph terminal]) with_plot=no else AC_MSG_RESULT([ - using obsolete GNU graphics library]) AC_DEFINE(GNUGRAPH) fi # old GNU plotlib else AC_MSG_RESULT([ - using GNU plotutils library]) AC_DEFINE(GNUGRAPH) AC_DEFINE(GNU_PLOTUTILS) fi # new GNU plotlib fi # Unix plotlib fi dnl end plot dnl check for Tom Boutell's gd library if test "$with_gd" != no; then gp_SEARCH_LIBDIRS(gd,gdImageCreate) if test "$ac_cv_lib_gd_gdImageCreate" = yes; then gp_SEARCH_HEADERDIRS(gd.h,, AC_MSG_WARN([found gd library but not gd.h]) AC_MSG_WARN([please add path to gd.h to CPPFLAGS in Makefile]) )dnl gp_SEARCH_HEADERDIRS AC_DEFINE(HAVE_LIBGD) else AC_MSG_RESULT([- see term/gif.trm for download details]) fi fi dnl end gd dnl check for png and z library if test "$with_png" != no; then gp_SEARCH_LIBDIRS(png,png_info_init,[-lz]) if test "$ac_cv_lib_png_png_info_init" = yes; then TERMLIBS="$TERMLIBS -lz" gp_SEARCH_HEADERDIRS(png.h,, AC_MSG_WARN([found png library but not png.h]) AC_MSG_WARN([please add path to png.h to CPPFLAGS in Makefile]) )dnl gp_SEARCH_HEADERIRS gp_SEARCH_HEADERDIRS(zlib.h,, AC_MSG_WARN([found z library but not zlib.h]) AC_MSG_WARN([please add path to zlib.h to CPPFLAGS in Makefile]) )dnl gp_SEARCH_HEADERDIRS if test "$ac_cv_header_png_h" = yes; then AC_EGREP_CPP([You lose], [#include "png.h" #if PNG_LIBPNG_VER < 89 You lose. #endif ],dnl AC_MSG_WARN([- libpng too old - not including png driver]),dnl AC_DEFINE(HAVE_LIBPNG)) else AC_MSG_WARN([- cannot check png version - compilation may fail]) AC_DEFINE(HAVE_LIBPNG) fi else AC_MSG_RESULT([- see term/png.trm for download details]) fi fi dnl end png and z dnl create list of terminals AC_MSG_CHECKING([terminal driver sources]) ( cd $srcdir/term && for i in *.trm ; do echo '${srcdir}'/../term/$i ; done )\ |(tr '\012' @; echo) |sed 's/@$/%/;s/@/ \\@/g' |tr @% '\012\012' >termlist TERM_LIST=termlist AC_SUBST_FILE(TERM_LIST) AC_MSG_RESULT([list created]) 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 Process enable options if test "$enable_apollo" = yes; then AC_EGREP_CPP(yes, [#ifdef apollo yes #endif ],AC_DEFINE(APOLLO),dnl enable_apollo=no) fi if test "$enable_gpr" = yes; then AC_EGREP_CPP(yes, [#ifdef apollo yes #endif ],AC_DEFINE(APOLLO) AC_DEFINE(GPR),dnl enable_gpr=no) fi if test "$enable_cgi" = yes; then AC_EGREP_CPP(yes, [#ifdef SCO yes #endif ],AC_CHECK_LIB(ccgi,v_opnwk,dnl AC_DEFINE(CGI) TERMLIBS="$TERMLIBS -lccgi"),dnl enable_cgi=no) fi if test "$enable_iris" = yes; then AC_CHECK_LIB(gl_s,winopen,dnl AC_DEFINE(IRIS) TERMLIBS="$TERMLIBS -lgl_s",dnl enable_iris=no) fi if test "$enable_mgr" = yes; then AC_CHECK_LIB(mgr,m_getinfo,dnl AC_DEFINE(MGR)dnl TERMLIBS="$TERMLIBS -lmgr -lpixrect",dnl enable_mgr=no,[-lpixrect]) fi if test "$enable_rgip" = yes; then AC_DEFINE(RGIP) fi if test "$enable_sun" = yes; then AC_CHECK_LIB(suntool,window_create,dnl AC_DEFINE(SUN)dnl TERMLIBS="$TERMLIBS -lsuntool -lsunwindow -lpixrect",dnl enable_sun=no,[-lsunwindow -lpixrect]) fi if test "$enable_unixpc" = yes; then AC_EGREP_CPP(yes, [/* Not sure about this; definitely * true for gcc */ #ifdef unixpc yes #endif ],AC_DEFINE(UNIXPC),dnl enable_unixpc=no) fi if test "$enable_system_time" = yes; then AC_DEFINE(USE_SYSTEM_TIME) fi dnl Substitute variables AC_SUBST(PACKAGE) AC_SUBST(VERSION) AC_SUBST(LASERGNU) AC_SUBST(LINUXSUID) AC_SUBST(NEXTOBJS) 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 ]) test "$ac_cv_header_gd_h" = yes && \ AC_MSG_RESULT([ Enable generation of GIF files.]) test "$ac_cv_header_zlib_h" = yes && \ AC_MSG_RESULT([ Enable generation of PNG files.]) test "$with_cwdrc" = yes && \ AC_MSG_RESULT([ Check current directory for .gnuplot file.]) if test "$with_gnu_readline" != no; then AC_MSG_RESULT([ Use GNU readline library.]) else test "$with_readline" != no && \ AC_MSG_RESULT([ Use included readline.]) fi if test "$with_plot" = yes; then AC_MSG_RESULT([ Use the Unix plot library.]) elif test "$with_plot" != no; then AC_MSG_RESULT([ Use the GNU plot library.]) fi test "$with_lasergnu" = yes && \ AC_MSG_RESULT([ Install lasergnu printer script.]) test "$with_linux_vga" = yes && \ AC_MSG_RESULT([ Use the Linux console driver.]) test "$enable_apollo" = yes && \ AC_MSG_RESULT([ Enable Apollo terminal (resizeable window).]) test "$enable_cgi" = yes && \ AC_MSG_RESULT([ Enable cgi terminal (SCO).]) test "$enable_gpr" = yes && \ AC_MSG_RESULT([ Enable Apollo terminal (fixed-size window).]) test "$enable_iris" = yes && \ AC_MSG_RESULT([ Enable IRIS terminal.]) test "$enable_mgr" = yes && \ AC_MSG_RESULT([ Enable MGR terminal.]) test "$enable_rgip" = yes && \ AC_MSG_RESULT([ Enable RGIP terminal.]) test "$enable_sun" = yes && \ AC_MSG_RESULT([ Enable sunview terminal.]) test "$enable_unixpc" = yes && \ AC_MSG_RESULT([ Enable unixpc terminal (ATT 3b1 or ATT 7300).]) test "$enable_system_time" = yes && \ AC_MSG_RESULT([ Use system time routines in time.c.]) test "$no_x" != yes && \ AC_MSG_RESULT([ Use the X Window System. ]) 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 ; rm -f termlist]) dnl end configure.in