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 <stdio.h>
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 <tobi@oetiker.ch>"
echo "----------------------------------------------------------------"