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 <stdio.h>
#ifdef HAVE_ERRNO_H
#include <errno.h>
#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