AC_INIT(src/rateup.c) AC_PREREQ(2.13) dnl Check for programs. AC_PROG_CC AC_PREFIX_DEFAULT( /opt/mrtg-2 ) AC_PROG_CPP AC_PROG_MAKE_SET AC_PROG_INSTALL AC_PATH_PROG(PERL, perl, no, $PATH:/usr/bin:/usr/local/bin) if test $PERL = no; then echo echo "** No Perl found in the PATH. A recent copy of Perl" echo " is required for mrtg to work. Check www.perl.com" echo exit 1 fi AC_PATH_PROGS(NROFF, groff nroff) dnl Check for long long type (64 bit rateup) AC_CHECK_HEADERS(inttypes.h) AC_CHECK_TYPE(unsigned long long) AC_CHECK_TYPE(long long) AC_CHECK_FUNCS(strtoll) # Taken from libIDL-0.8.2 AC_MSG_CHECKING([for printf long long format specifier]) AC_CACHE_VAL(mr_cv_long_long_format_specifier,[ for format in ll l q I64; do AC_TRY_RUN([#include int main() { long long b, a = -0x3AFAFAFAFAFAFAFALL; char buffer[1000]; sprintf (buffer, "%${format}u", a); sscanf (buffer, "%${format}u", &b); exit (b!=a); } ], mr_cv_long_long_format_specifier="%${format}d" mr_cv_long_long_format="${format}d" break) done]) AC_MSG_RESULT($mr_cv_long_long_format_specifier) AC_DEFINE_UNQUOTED(LLD, "$mr_cv_long_long_format_specifier", [How to print a long long]) AC_DEFINE_UNQUOTED(LLD_FORMAT, "$mr_cv_long_long_format", [long long format without % specifier]) AH_BOTTOM( #ifndef HAVE_STRTOLL long long int strtoll(const char *str, char **ptr, int base) { long long int ll; sscanf(str, LLD, &ll); return ll; } #endif ) dnl Checks for libraries. AC_CHECK_LIB(m, pow, [ MATHLIBS="-lm" ]) AC_ARG_WITH(gd,[ --with-gd=DIR location of the gd lib/inc], [LDFLAGS="${LDFLAGS} -L${withval}" CPPFLAGS="${CPPFLAGS} -I${withval}" LD_RUN_PATH="${withval}${LD_RUN_PATH:+:}${LD_RUN_PATH}"]) AC_ARG_WITH(gd-lib,[ --with-gd-lib=DIR location of the gd library], [LDFLAGS="${LDFLAGS} -L${withval}" LD_RUN_PATH="${withval}${LD_RUN_PATH:+:}${LD_RUN_PATH}"]) AC_ARG_WITH(gd-inc,[ --with-gd-inc=DIR location of the gd include files], [CPPFLAGS="${CPPFLAGS} -I${withval}"]) AC_ARG_WITH(z,[ --with-z=DIR location of zlib lib/inc], [LDFLAGS="${LDFLAGS} -L${withval}" CPPFLAGS="${CPPFLAGS} -I${withval}" LD_RUN_PATH="${withval}${LD_RUN_PATH:+:}${LD_RUN_PATH}"]) AC_ARG_WITH(z-lib,[ --with-z-lib=DIR location of zlib library], [LDFLAGS="${LDFLAGS} -L${withval}" LD_RUN_PATH="${withval}${LD_RUN_PATH:+:}${LD_RUN_PATH}"]) AC_ARG_WITH(z-inc,[ --with-z-inc=DIR location of the zlib include files], [CPPFLAGS="${CPPFLAGS} -I${withval}"]) AC_ARG_WITH(png,[ --with-png=DIR location of png lib/inc], [LDFLAGS="${LDFLAGS} -L${withval}" CPPFLAGS="${CPPFLAGS} -I${withval}" LD_RUN_PATH="${withval}${LD_RUN_PATH:+:}${LD_RUN_PATH}"]) AC_ARG_WITH(png-lib,[ --with-png-lib=DIR location of png library], [LDFLAGS="${LDFLAGS} -L${withval}" LD_RUN_PATH="${withval}${LD_RUN_PATH:+:}${LD_RUN_PATH}"]) AC_ARG_WITH(png-inc,[ --with-png-inc=DIR location of the libpng include files], [CPPFLAGS="${CPPFLAGS} -I${withval}"]) LIBS="${LIBS} ${MATHLIBS}" GDEXTRALIB="" dnl which version of gd do we have here ? AC_CHECK_LIB(gd,gdImageGif,[ GDFORM_EXT=gif GLIBS="-lgd" ],:,[-lgd ${MATHLIBS}]) AC_CHECK_LIB(gd,gdImagePng,[ GDFORM_EXT=png GLIBS="-lgd -lpng -lz" ],:,[-lgd -lpng -lz ${MATHLIBS}]) AC_CHECK_LIB(gd,gdImagePng_jpg,[ GDFORM_EXT=png GLIBS="-lgd -lpng -lz -ljpeg" ],:,[-lgd -lpng -lz -ljpeg ${MATHLIBS}]) AC_CHECK_LIB(gd,gdImagePng_jpg_ft,[ GDFORM_EXT=png GLIBS="-lgd -lpng -lz -ljpeg -lfreetype" ],:,[-lgd -lpng -lz -ljpeg -lfreetype ${MATHLIBS}]) if test x$GDFORM_EXT = xgif; then CPPFLAGS="$CPPFLAGS -DGFORM_GD=gdImageGif" fi LIBS="${GLIBS} ${LIBS}" if test x$LD_RUN_PATH != x; then SET_LD_RUN_PATH="LD_RUN_PATH=${LD_RUN_PATH}" fi dnl Make sure the header is here AC_CHECK_HEADER( gd.h,:,[ GDFORM_EXT="" ]) if test x$GDFORM_EXT = x; then echo echo "** Ooops, one of many bad things happened:" echo "" echo " a) You don't have the GD library installed." echo " Get it from http://www.boutell.com, compile it and" echo " use either --with-gd-lib=DIR and --with-gd-inc=DIR to specify" echo " its location. You might also have to use --with-z-inc," echo " --with-z-lib and --with-png-inc, --with-png-lib for gd" echo " versions 1.6 and higher. Check config.log for more" echo " information on the problem." echo "" echo " b) You have the GD library installed, but not the gd.h" echo " header file. Download the source (see above) and use" echo " --with-gd-inc=DIR to specify where the file can be found." echo "" echo " c) You have the library and the header file installed, but" echo " you also have a shared GD library in the same directory. " echo " Remove the shared library files and/or links (e.g. " echo " libgd.so.2.0.0, libgd.so and libgd.so.2). This is especially" echo " likely if you're using a recent (post 1.8.4) version of GD" echo " and didn't configure it with --disable-shared." echo "" echo " d) You have gd library installed and also it's headers, but you are" echo " missing libpng (and headers) or freetype (and headers)" echo " (mrtg does not use freetype, but if your copy of gd is precompiled" echo " against it, you have to install it ... " echo "" echo " Consider following the instructions in doc/mrtg-unix-guide.txt" exit 1 fi AC_MSG_CHECKING(the weather) AC_MSG_RESULT((cached) it's fine) dnl Does the compiler like -Wall and if test "x$GCC" = "xyes"; then oCFLAGS=$CFLAGS CFLAGS="$CFLAGS -Wall -Wpointer-arith -Wcast-align -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 ) ] ) if test $rd_cv_gcc_opt = no; then CFLAGS=$oCFLAGS fi fi AC_SUBST(PERL) AC_SUBST(RRD_PERL) AC_SUBST(GDFORM_EXT) AC_SUBST(SET_LD_RUN_PATH) AC_SUBST(LIBS) AC_SUBST(CFLAGS) AC_CONFIG_HEADERS(config.h) AC_OUTPUT(Makefile) echo $ECHO_N "ordering CD from http://tobi.oetiker.ch/wish $ECHO_C" 1>&6 sleep 1 echo $ECHO_N ".$ECHO_C" 1>&6 sleep 1 echo $ECHO_N ".$ECHO_C" 1>&6 sleep 1 echo $ECHO_N ".$ECHO_C" 1>&6 sleep 1 echo $ECHO_N ".$ECHO_C" 1>&6 sleep 1 AC_MSG_RESULT([ just kidding ;-)]) sleep 2 echo echo "----------------------------------------------------------------" echo "Config is DONE!" echo echo "Type 'make' to compile the software" echo echo " ... that wishlist mentioned above does really exist. So if" echo "you feel like showing your appreciation for MRTG, this is the" echo "place to go. I just love CDs and DVDs" echo echo " -- Tobi Oetiker " echo "----------------------------------------------------------------"