X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=configure.ac;h=902780267165b3be8096f04e80ba4f5354430498;hp=7b7155e9813f67f5f4654308e251d2e1358aa6a2;hb=fcbf2878a231442f4b62ee95fca39e28f04fc8d2;hpb=c495962e877c1b02e632329bae902088801aad3c diff --git a/configure.ac b/configure.ac index 7b7155e..9027802 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]) +AC_CANONICAL_TARGET +AM_INIT_AUTOMAKE +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,27 +136,138 @@ 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.4 + +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. +############################################################################ +])] ) +] +) + +dnl How the vertical axis label is printed +AC_ARG_VAR(RRDGRAPH_YLEGEND_ANGLE, + [Vertical label angle: 90.0 (default) or 270.0]) +AC_DEFINE_UNQUOTED(RRDGRAPH_YLEGEND_ANGLE,${RRDGRAPH_YLEGEND_ANGLE:-90.0}, + [Vertical label angle: 90.0 (default) or 270.0]) + + +AC_ARG_ENABLE(rrdcgi,[ --disable-rrdcgi disable building of rrdcgi], +[],[enable_rrdcgi=yes]) +AM_CONDITIONAL(BUILD_RRDCGI,[test $enable_rrdcgi != no]) + +if test $enable_rrdcgi != no; then +EX_CHECK_ALL(cgi, cgiInit, cgi.h, cgilib, 0.5, http://www.infodrom.org/projects/cgilib) +fi +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 pthreads (pieces of code from Bert Driehuis) + +AC_SUBST(MULTITHREAD_CFLAGS) +AC_SUBST(MULTITHREAD_LDFLAGS) + +AC_DEFUN(AC_CHECK_PTHREAD, [ + AC_MSG_CHECKING([pthreads: trying no flags]) + AC_CACHE_VAL(ac_cv_flag_pthread,[ + AC_TRY_LINK([ + #include + ], + [pthread_exit(0);], + eval "ac_cv_flag_pthread=no", + [ + AC_MSG_RESULT([didn't work]) + AC_MSG_CHECKING([pthreads: trying to add -pthread]) + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -pthread" + AC_TRY_LINK([ + #include + ], + [pthread_exit(0);], + eval "ac_cv_flag_pthread=yes", + AC_MSG_ERROR([Can't figure out pthreads]) + ) + CFLAGS="$ac_save_CFLAGS" + ]) + ]) + + if test "$ac_cv_flag_pthread" = "no"; then + AC_MSG_RESULT([good, -pthread flag not necessary]) + else + AC_MSG_RESULT([adding -pthread flag]) + MULTITHREAD_CFLAGS="-pthread" + fi + + AC_MSG_CHECKING([for libpthread]) + AC_CACHE_VAL(ac_cv_lib_pthread,[ + ac_save_LIBS="$LIBS" + LIBS="-lpthread" + AC_TRY_LINK([ + #include + ], + [pthread_exit(0);], + eval "ac_cv_lib_pthread=-lphtread", + eval "ac_cv_lib_pthread=no" + ) + LIBS="$ac_save_LIBS" + ]) + if test "$ac_cv_lib_pthread" = "no"; then + AC_MSG_RESULT([no -lpthread necessary]) + else + AC_MSG_RESULT([adding -lpthread to LIBS]) + MULTITHREAD_LDFLAGS="-lpthread" + fi +]) + +AC_ARG_ENABLE(pthread,[ --disable-pthread disable multithread support], +[],[enable_pthread=yes]) + +if test $enable_pthread != no; then + AC_CHECK_PTHREAD +fi + +AM_CONDITIONAL(BUILD_MULTITHREAD,[test $enable_pthread != no]) + dnl Check for Perl. AC_PATH_PROG(PERL, perl, no) if test "x$PERL" = "xno"; then @@ -219,27 +330,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_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 Checks for libraries. -AC_CHECK_FUNC(acos, , AC_CHECK_LIB(m, acos)) dnl Check for nroff AC_PATH_PROGS(NROFF, gnroff nroff) @@ -250,9 +341,7 @@ if test "x$GCC" = "xyes"; then oCFLAGS=$CFLAGS 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 @@ -261,7 +350,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 @@ -279,37 +368,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(tzset opendir readdir chdir chroot getuid setlocale 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) @@ -321,10 +406,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 @@ -388,11 +473,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) @@ -442,15 +523,9 @@ AC_CONFIG_FILES([examples/shared-demo.pl \ examples/bigtops.pl \ examples/minmax.pl \ examples/cgi-demo.cgi \ + examples/4charts.pl \ 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.4/Makefile \ - libraries/freetype-2.0.5/Makefile \ - libraries/afm/Makefile \ src/Makefile \ bindings/Makefile \ bindings/tcl/Makefile \