X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=configure.ac;h=254ad3d11643b383154f075a07bde42c9a7f5c9a;hb=ec028ffc51de6a4d33427ea505e2839b0516fd7d;hp=92b11680c3097c848d0a94830839e8547dea87da;hpb=c0cb62da4ec2b5c7b3aef09adacb7f0a3189df28;p=rrdtool.git diff --git a/configure.ac b/configure.ac index 92b1168..254ad3d 100644 --- a/configure.ac +++ b/configure.ac @@ -6,11 +6,11 @@ dnl dnl dnl tell automake the this script is for rrdtool -AC_INIT(src/rrd_tool.c) -AC_CONFIG_AUX_DIR(config) -AC_CANONICAL_TARGET([]) -AM_INIT_AUTOMAKE(rrdtool, 1.1.0) -AM_CONFIG_HEADER(config/config.h) +AC_INIT([rrdtool],[1.1.0]) +AM_INIT_AUTOMAKE +AC_CANONICAL_TARGET +AM_CONFIG_HEADER(config.h) +# AC_CONFIG_AUX_DIR(config) dnl all our local stuff like install scripts and include files dnl is in there @@ -25,7 +25,7 @@ dnl where we install our stuff ... AC_PREFIX_DEFAULT( /usr/local/rrdtool-1.1.0 ) dnl Minimum Autoconf version required. -AC_PREREQ(2.52) +AC_PREREQ(2.58) dnl At the TOP of the HEADER @@ -136,26 +136,58 @@ char *strchr (), *strrchr (); ]) -dnl Define library subdirectory names here. -CGI_LIB_DIR=cgilib-0.4 -FREETYPE_LIB_DIR=freetype-2.0.5 -ART_LIB_DIR=libart_lgpl-2.3.7 -PNG_LIB_DIR=libpng-1.2.0 -ZLIB_LIB_DIR=zlib-1.1.3 + +dnl Check for the compiler and static/shared library creation. +AC_PROG_CC +AC_PROG_CPP +AC_PROG_LIBTOOL + +dnl Checks for header files. +AC_HEADER_STDC +AC_HEADER_DIRENT +AC_CHECK_HEADERS(sys/stat.h sys/types.h fcntl.h time.h locale.h fp_class.h malloc.h unistd.h ieeefp.h math.h sys/time.h sys/times.h sys/param.h sys/resource.h float.h) + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_HEADER_TIME +AC_STRUCT_TM dnl substitute them in all the files listed in AC_OUTPUT -AC_SUBST(CGI_LIB_DIR) -AC_SUBST(ART_LIB_DIR) -AC_SUBST(PNG_LIB_DIR) -AC_SUBST(FREETYPE_LIB_DIR) -AC_SUBST(ZLIB_LIB_DIR) AC_SUBST(PERLFLAGS) -INCLUDED_LIB(cgi,cgiInit) -INCLUDED_LIB(art_lgpl,art_vpath_add_point) -INCLUDED_LIB(png,png_access_version_number) -INCLUDED_LIB(freetype,FT_Init_FreeType) -INCLUDED_LIB(z,zlibVersion) +dnl Checks for libraries. +AC_CHECK_FUNC(acos, , AC_CHECK_LIB(m, acos)) + +AC_DEFUN([EX_CHECK_ALL], +[ AC_CHECK_LIB($1,$2, + [ AC_CHECK_HEADER($3,[LIBS="-l$1 ${LIBS}"],[ + [ $echo "#include <$3>" | $CC -E - > /dev/null ] + AC_MSG_ERROR([Adjust CPPFLAGS so that the $4 header $3 AND its dependencies gets found]) + ] ) ], + [ AC_MSG_ERROR([ +############################################################################ +I could not find a working copy of $4. Check config.log for hints on why +this is the case. Maybe you need to set LDFLAGS appropriately so that the +linker can find lib$1. If you have not installed $4, you can get it +either from its original home on + + $6 + +Or you can find an archive copy on + + http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/libs + +The last tested version of $4 is $5. +############################################################################ +])] ) +] +) + +EX_CHECK_ALL(cgi, cgiInit, cgi.h, cgilib, 0.5, http://www.infodrom.org/projects/cgilib) +EX_CHECK_ALL(art_lgpl_2, art_vpath_add_point, libart_lgpl/libart.h, libart_lgpl, 2.3.16, ftp://ftp.gnome.org/pub/GNOME/sources/libart_lgpl/2.3/) +EX_CHECK_ALL(z, zlibVersion, zlib.h, zlib, 1.2.1, http://www.gzip.org/zlib/) +EX_CHECK_ALL(png, png_access_version_number, png.h, libpng, 1.2.5, http://prdownloads.sourceforge.net/libpng/) +EX_CHECK_ALL(freetype, FT_Init_FreeType, ft2build.h, freetype, 2.1.5, http://prdownloads.sourceforge.net/freetype/) dnl Check for Perl. AC_PATH_PROG(PERL, perl, no) @@ -167,7 +199,7 @@ else SO_EXT=`$PERL -e 'use Config; if (defined $Config{so} and $Config{so} ne 'a') {print "$Config{so}\n"} else {print "so\n"};'` AC_MSG_RESULT($SO_EXT) AC_MSG_CHECKING(for the C compiler perl wants to use to build its modules) - PROBLEMCC=`$PERL -e 'use Config; map {if (-x "$_/$Config{cc}"){exit 0}} split /:/, $ENV{PATH};print $Config{cc}'` + PROBLEMCC=`$PERL -e 'use Config; ($cc = $Config{cc}) =~ s/\s.*//; exit 0 if -x $cc; map {if (-x "$_/$cc"){exit 0}} split /:/, $ENV{PATH};print $Config{cc}'` if test x$PROBLEMCC != x; then AC_MSG_RESULT(no) echo Could not find the Compiler: '"'$PROBLEMCC'"' @@ -219,26 +251,7 @@ AC_SUBST(TCL_SHLIB_SUFFIX) AC_SUBST(TCL_PACKAGE_PATH) AC_SUBST(TCL_LD_SEARCH_FLAGS) -dnl Check for the compiler and static/shared library creation. -AC_PROG_CC -AC_PROG_CPP - -dnl don't build a shared library ... -dnl this can be changed when running configure -AC_DISABLE_SHARED -AC_PROG_LIBTOOL - -dnl Checks for header files. -AC_HEADER_STDC -AC_CHECK_HEADERS(fcntl.h fp_class.h malloc.h unistd.h ieeefp.h math.h sys/time.h sys/times.h sys/param.h sys/resource.h float.h) -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -AC_HEADER_TIME -AC_STRUCT_TM - -dnl Checks for libraries. -AC_CHECK_FUNC(acos, , AC_CHECK_LIB(m, acos)) dnl Check for nroff AC_PATH_PROGS(NROFF, gnroff nroff) @@ -247,11 +260,9 @@ AC_PATH_PROGS(TROFF, groff troff) dnl Does the compiler like -Wall and -pedantic? if test "x$GCC" = "xyes"; then oCFLAGS=$CFLAGS - CFLAGS="$CFLAGS -Wall -pedantic -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline" + CFLAGS="$CFLAGS -Wall -pedantic -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -W" AC_CACHE_CHECK(if we can use GCC-specific compiler options, rd_cv_gcc_opt, - [AC_TRY_COMPILE( , return 0 , - rd_cv_gcc_opt=yes, - rd_cv_gcc_opt=no ) + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[return 0 ]])],[rd_cv_gcc_opt=yes],[rd_cv_gcc_opt=no ]) ] ) if test $rd_cv_gcc_opt = no; then @@ -260,7 +271,7 @@ if test "x$GCC" = "xyes"; then fi dnl add pic flag in any case this makes sure all our code is relocatable -CFLAGS="$CFLAGS "`grep pic_flag= libtool | sed -e 's/.*pic_flag=//' -e 's/"//g'` +CFLAGS="$CFLAGS "`grep pic_flag= libtool | head -1|sed -e 's/.*pic_flag=//' -e 's/"//g'` ZLIB_CFLAGS=$CFLAGS dnl it seems that hpux chockes on -fPIC for some reason @@ -278,37 +289,33 @@ AC_FUNC_VPRINTF dnl for each function found we get a definition in config.h dnl of the form HAVE_FUNCTION -AC_CHECK_FUNCS(strerror snprintf vsnprintf fpclass class fp_class isnan memmove strchr mktime getrusage gettimeofday) +AC_CHECK_FUNCS(tzset opendir readdir chdir chroot getuid setlocale strerror strerror_r snprintf vsnprintf fpclass class fp_class isnan memmove strchr mktime getrusage gettimeofday) dnl HP-UX 11.00 does not have finite but does have isfinite as a macro AC_CHECK_FUNCS(fpclassify, , [AC_MSG_CHECKING(for fpclassify with ) - AC_TRY_LINK([#include ], [float f = 0.0; fpclassify(f)], - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_FPCLASSIFY), AC_MSG_RESULT(no))]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[float f = 0.0; fpclassify(f)]])],[AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_FPCLASSIFY)],[AC_MSG_RESULT(no)])]) AC_CHECK_FUNCS(finite, , [AC_CHECK_FUNCS(isfinite, , [AC_MSG_CHECKING(for isfinite with ) - AC_TRY_LINK([#include ], [float f = 0.0; isfinite(f)], - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_ISFINITE), AC_MSG_RESULT(no))])]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[float f = 0.0; isfinite(f)]])],[AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_ISFINITE)],[AC_MSG_RESULT(no)])])]) AC_CHECK_FUNCS(isinf, , [AC_MSG_CHECKING(for isinf with ) - AC_TRY_LINK([#include ], [float f = 0.0; isinf(f)], - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_ISINF), AC_MSG_RESULT(no))]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[float f = 0.0; isinf(f)]])],[AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_ISINF)],[AC_MSG_RESULT(no)])]) dnl what does realloc do if it gets called with a NULL pointer AC_CACHE_CHECK([if realloc can deal with NULL], rd_cv_null_realloc, -[AC_TRY_RUN([#include +[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include int main(void){ char *x = NULL; x = realloc (x,10); if (x==NULL) return 1; return 0; - }], - [rd_cv_null_realloc=yes],[rd_cv_null_realloc=nope],:)]) + }]])],[rd_cv_null_realloc=yes],[rd_cv_null_realloc=nope],[:])]) if test x"$rd_cv_null_realloc" = xnope; then AC_DEFINE(NO_NULL_REALLOC) @@ -320,10 +327,10 @@ dnl FUNCTION-BODY, [ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]) AC_C_BIGENDIAN -AC_DEFUN(AC_IEEE, +AC_DEFUN([AC_IEEE], AC_MSG_CHECKING([if IEEE math works $1]) AC_CACHE_VAL([rd_cv_ieee_$2], -[AC_TRY_RUN([$3 +[AC_RUN_IFELSE([AC_LANG_SOURCE([[$3 #if HAVE_MATH_H # include @@ -387,11 +394,7 @@ int main(void){ if (! inf > 0) {printf ("not inf > 0 ... "); return 1;} if (! -inf < 0) {printf ("not -inf < 0 ... "); return 1;} return 0; - }], - -rd_cv_ieee_$2=yes, -rd_cv_ieee_$2=no, -:)]) + }]])],[rd_cv_ieee_$2=yes],[rd_cv_ieee_$2=no],[:])]) dnl these we run regardles is cached or not if test x${rd_cv_ieee_$2} = "xyes"; then AC_MSG_RESULT(yes) @@ -415,22 +418,24 @@ AC_IEEE([out of the box], works, , , , AC_IEEE([with the -mieee switch], mswitch, , , , [CFLAGS="$_cflags -q float=rndsngl" AC_IEEE([with the -q float=rndsngl switch], qswitch, , , , - [CFLAGS="$_cflags -OPT:IEEE_comparisons=ON" - AC_IEEE([with the -OPT:IEEE_comparisons=ON switch], ieeecmpswitch, , , , - [CFLAGS=$_cflags - AC_IEEE([with fpsetmask(0)], mask, - [#include ], [fpsetmask(0)], - [AC_DEFINE(MUST_DISABLE_FPMASK) - PERLFLAGS="CCFLAGS=-DMUST_DISABLE_FPMASK"], - [AC_IEEE([with signal(SIGFPE,SIG_IGN)], sigfpe, - [#include ], [signal(SIGFPE,SIG_IGN)], - [AC_DEFINE(MUST_DISABLE_SIGFPE) - PERLFLAGS="CCFLAGS=-DMUST_DISABLE_SIGFPE"], - AC_MSG_ERROR([ + [CFLAGS="$_cflags -OPT:IEEE_NaN_inf=ON" + AC_IEEE([with the -OPT:IEEE_NaN_inf=ON switch], ieeenaninfswitch, , , , + [CFLAGS="$_cflags -OPT:IEEE_comparisons=ON" + AC_IEEE([with the -OPT:IEEE_comparisons=ON switch], ieeecmpswitch, , , , + [CFLAGS=$_cflags + AC_IEEE([with fpsetmask(0)], mask, + [#include ], [fpsetmask(0)], + [AC_DEFINE(MUST_DISABLE_FPMASK) + PERLFLAGS="CCFLAGS=-DMUST_DISABLE_FPMASK"], + [AC_IEEE([with signal(SIGFPE,SIG_IGN)], sigfpe, + [#include ], [signal(SIGFPE,SIG_IGN)], + [AC_DEFINE(MUST_DISABLE_SIGFPE) + PERLFLAGS="CCFLAGS=-DMUST_DISABLE_SIGFPE"], + AC_MSG_ERROR([ Your Compiler does not do propper IEEE math ... Please find out how to make IEEE math work with your compiler and let me know (oetiker@ee.ethz.ch). Check config.log to see what went wrong ... -]))])])])])])])])]) +]))])])])])])])])])]) AC_CONFIG_FILES([examples/shared-demo.pl \ @@ -441,12 +446,6 @@ AC_CONFIG_FILES([examples/shared-demo.pl \ examples/cgi-demo.cgi \ examples/Makefile \ doc/Makefile \ - libraries/Makefile \ - libraries/cgilib-0.4/Makefile \ - libraries/libart_lgpl-2.3.7/Makefile \ - libraries/libpng-1.2.0/Makefile \ - libraries/zlib-1.1.3/Makefile \ - libraries/freetype-2.0.5/Makefile \ src/Makefile \ bindings/Makefile \ bindings/tcl/Makefile \ @@ -458,7 +457,7 @@ AC_OUTPUT AC_MSG_CHECKING(in) AC_MSG_RESULT(and out again) -echo $ECHO_N "ordering CD from http://ee-staff.ethz.ch/~oetiker/wish $ECHO_C" 1>&6 +echo $ECHO_N "ordering CD from http://people.ee.ethz.ch/~oetiker/wish $ECHO_C" 1>&6 sleep 1 echo $ECHO_N ".$ECHO_C" 1>&6 sleep 1 @@ -480,7 +479,7 @@ echo "If you want to install the perl" echo "modules in site-perl, try 'make site-perl-install'." echo echo " ... that wishlist is NO JOKE. If you find RRDtool useful" -echo "make me happy. Go to http://ee-staff.ethz.ch/~oetiker/wish and" +echo "make me happy. Go to http://people.ee.ethz.ch/~oetiker/wish and" echo "place an order." echo echo " -- Tobi Oetiker "