dnl Process this file with autoconf to produce a configure script. AC_INIT(fib.c) AC_CONFIG_HEADER(config.h) dnl I did this wrong, I think. I should have used AC_DEFINE(VERSION,"$VERSION") or similar dnl but what's done is done... (fjf) VERSION=0.7.0 AC_SUBST(VERSION) # Tests for Windows AC_CYGWIN AC_EXEEXT AC_OBJEXT AC_MINGW32 # End Tests for Windows dnl Checks for programs. dnl I'm changing back to the default since I think avoiding the -g is rather too elaborate dnl but tell me if I'm wrong to do this. The definition has been moved to acinclude.m4, so dnl just uncomment AC_PROG_CC_NO_G and comment AC_PROG_CC to return to the original: (fjf) dnl AC_PROG_CC_NO_G AC_PROG_CC dnl This is really a check for Mac OS X.1 (or darwin 1.4, whatever...) suppress_md=`cat /usr/share/man/man1/ld.1 2>&1 | grep multiply_defined` if test "x$suppress_md" != "x"; then CFLAGS="$CFLAGS -Wno-long-long -no-cpp-precomp" LDFLAGS="$LDFLAGS -Wl,-multiply_defined -Wl,suppress" fi AC_PROG_MAKE_SET AC_PROG_INSTALL AC_PROG_RANLIB dnl Checks for headers. AC_HEADER_STDC dnl AC_HEADER_SYS_WAIT dnl AC_TYPE_SIGNAL dnl AC_FUNC_WAIT3 AC_CHECK_HEADERS(fcntl.h io.h malloc.h sys/file.h sys/ioctl.h unistd.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST dnl exporter support dnl ======================================================= AC_ARG_WITH(exporter,[ --with-exporter build the exporter (default is no)],[ if test "x$withval" = "xno"; then EXPORTER="" else dnl Need to watch out for case-insensitive file systems (e.g. HFS+) EXPORTER="BEXPORTER" fi ],[ EXPORTER="" ]) AC_SUBST(EXPORTER) dnl zlib support dnl ======================================================= _cppflags=$CPPFLAGS _ldflags=$LDFLAGS AC_ARG_WITH(zlib,[ --with-zlib=DIR use libz in DIR],[ if test "x$withval" = "xyes"; then ZLIB_DIR="" elif test "x$withval" != "xno"; then ZLIB_DIR="$withval" CPPFLAGS="$CPPFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" else AC_MSG_WARN([No zlib? Are you sure? I think I'll look for it anyway...]) ZLIB_DIR="" fi ],[ ZLIB_DIR="" ]) AC_CHECK_HEADER(zlib.h,[ AC_CHECK_LIB(z,gzread,[ AC_DEFINE(HAVE_ZLIB) HAVE_ZLIB=1 if test "x$ZLIB_DIR" != "x"; then ZLIB_CFLAGS="-I$ZLIB_DIR/include" ZLIB_LIBS="-L$ZLIB_DIR/lib -lz" else ZLIB_CFLAGS="" ZLIB_LIBS="-lz" fi ],[ AC_CHECK_LIB(gz,gzread,[ AC_DEFINE(HAVE_ZLIB) HAVE_ZLIB=1 if test "x$ZLIB_DIR" != "x"; then ZLIB_CFLAGS="-I$ZLIB_DIR/include" ZLIB_LIBS="-L$ZLIB_DIR/lib -lgz" else ZLIB_CFLAGS="" ZLIB_LIBS="-lgz" fi ],[ dnl Shouldn't this be an error? AC_MSG_WARN([* * * Unable to find zlib, which is kinda necessary. * * *]) HAVE_ZLIB=0 ZLIB_CFLAGS="" ZLIB_LIBS="" ]) ]) ]) AC_SUBST(ZLIB_CFLAGS) AC_SUBST(ZLIB_LIBS) CPPFLAGS=$_cppflags LDFLAGS=$_ldflags dnl system png support dnl ======================================================== _cppflags=$CPPFLAGS _ldflags=$LDFLAGS dnl libpng requires zlib CPPFLAGS="$CPPFLAGS $ZLIB_CFLAGS" AC_ARG_WITH(png,[ --with-png=DIR use png library in DIR],[ if test "x$withval" = "xyes"; then PNG_DIR="" elif test "x$withval" != "xno"; then PNG_DIR=$withval CPPFLAGS="$CPPFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" else AC_MSG_WARN([No libpng? Are you sure? I think I'll look for it anyway...]) PNG_DIR="" fi ],[ PNG_DIR="" ]) AC_CHECK_HEADER(png.h,[ AC_CHECK_HEADER(pngconf.h,[ AC_CHECK_LIB(png, png_free,[ AC_DEFINE(HasPNG) HAVE_PNG=1 if test "x$PNG_DIR" != "x"; then PNG_CFLAGS="-I$PNG_DIR/include" PNG_LIBS="-L$PNG_DIR/lib -lpng" else PNG_CFLAGS="" PNG_LIBS="-lpng" fi ],[ dnl Shouldn't this be an error? AC_MSG_WARN([* * * Unable to find libpng, which is kinda necessary. * * *]) HAVE_PNG=0 PNG_CFLAGS="" PNG_LIBS="" ],$ZLIB_LIBS -lm) ],[ dnl Shouldn't this be an error? AC_MSG_WARN([* * * Missing "pngconf.h" header file * * *]) HAVE_PNG=0 PNG_CFLAGS="" PNG_LIBS="" ]) ],[ dnl Shouldn't this be an error? AC_MSG_WARN([* * * Missing "png.h" header file * * *]) HAVE_PNG=0 PNG_CFLAGS="" PNG_LIBS="" ]) AC_SUBST(PNG_CFLAGS) AC_SUBST(PNG_LIBS) CPPFLAGS=$_cppflags LDFLAGS=$_ldflags dnl system XML support dnl ======================================================== _cppflags=$CPPFLAGS _ldflags=$LDFLAGS dnl There are various options: dnl (1) wv's 'included' expat (default) dnl (2) system 'expat' library dnl (3) system 'libxml2' library dnl (4) 'peer' expat (i.e., AbiWord build) ? wv_xml="included" AC_ARG_WITH(expat,[ --with-expat[=DIR] use system expat (default is no)],[ if test "x$withval" = "xyes"; then wv_xml="expat" XML_DIR="" elif test "x$withval" != "xno"; then wv_xml="expat" XML_DIR=$withval CPPFLAGS="$CPPFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" fi ]) AC_ARG_WITH(libxml2,[ --with-libxml2[=DIR] use system libxml2 (default is no)],[ if test "x$wv_xml" = "xexpat"; then AC_MSG_WARN([* * * Cannot specify expat AND libxml2. I'm going to use expat * * *]) else if test "x$withval" = "xyes"; then wv_xml="libxml2" XML_DIR="" elif test "x$withval" != "xno"; then wv_xml="libxml2" XML_DIR=$withval fi fi ]) if test "x$wv_xml" = "xincluded"; then INCLUDED_EXPAT=1 HAVE_LIBXML2=0 XML_CFLAGS="" XML_LIBS="" elif test "x$wv_xml" = "xexpat"; then AC_DEFINE(HAVE_EXPAT) INCLUDED_EXPAT=0 HAVE_LIBXML2=0 AC_CHECK_HEADER(expat.h,[ AC_CHECK_LIB(expat,XML_ParserCreate,[ if test "x$XML_DIR" != "x"; then XML_CFLAGS="-I$XML_DIR/include" XML_LIBS="-L$XML_DIR/lib -lexpat" else XML_CFLAGS="" XML_LIBS="-lexpat" fi ],[ AC_MSG_ERROR([* * * Unable to find expat library * * *]) ]) ],[ AC_MSG_ERROR([* * * Unable to find header file "expat.h" * * *]) ]) elif test "x$wv_xml" = "xlibxml2"; then AC_DEFINE(HAVE_LIBXML2) INCLUDED_EXPAT=0 HAVE_LIBXML2=1 if [ test -n "$XML_DIR" ]; then AC_PATH_PROG(XML2_CONFIG,xml2-config, ,[$XML_DIR/bin:$PATH]) else AC_PATH_PROG(XML2_CONFIG,xml2-config) fi if [ test -n "$XML2_CONFIG" ]; then xml2_cflags=`$XML2_CONFIG --cflags` xml2_libs=`$XML2_CONFIG --libs` else AC_MSG_ERROR([* * * unable to find xml2-config; unable to continue * * *]) fi CPPFLAGS="$CPPFLAGS $xml2_cflags" LDFLAGS="$LDFLAGS $xml2_libs" AC_CHECK_HEADER(libxml/parser.h,[ AC_CHECK_LIB(xml2,xmlParseDocument,[ XML_CFLAGS="$xml2_cflags" XML_LIBS="$xml2_libs" ],[ AC_MSG_ERROR([* * * Unable to find libxml2 library * * *]) ],$xml2_libs) ],[ AC_MSG_ERROR([* * * Unable to find header file "libxml/parser.h" * * *]) ]) elif test "x$wv_xml" = "xpeer"; then AC_MSG_ERROR([* * * Glitch! Unsupported value. * * *]) INCLUDED_EXPAT=0 HAVE_LIBXML2=0 XML_CFLAGS="" XML_LIBS="" else AC_MSG_ERROR([* * * Glitch! Unexpected value. * * *]) fi AC_SUBST(INCLUDED_EXPAT) AC_SUBST(HAVE_LIBXML2) AC_SUBST(XML_CFLAGS) AC_SUBST(XML_LIBS) CPPFLAGS=$_cppflags LDFLAGS=$_ldflags dnl system glib support dnl ======================================================== AC_ARG_WITH(glib,[ --with-glib[=DIR] use system glib [in DIR]],[ if [ test "x$withval" = "xno" ]; then wv_sys_glib=no elif [ test "x$withval" = "xyes" ]; then wv_sys_glib=required GLIB_DIR="" else wv_sys_glib=required GLIB_DIR="$withval" fi ],[ wv_sys_glib=check GLIB_DIR="" ]) if [ test $wv_sys_glib != no ]; then if [ test "x$GLIB_DIR" = "x" ]; then AC_PATH_PROG(GLIB_CONFIG, glib12-config, , [$PATH]) else AC_PATH_PROG(GLIB_CONFIG, glib12-config, , [$GLIB_DIR/bin:$PATH]) fi if [ test "x$GLIB_CONFIG" = "x" ]; then if [ test "x$GLIB_DIR" = "x" ]; then AC_PATH_PROG(GLIB_CONFIG, glib-config, , [$PATH]) else AC_PATH_PROG(GLIB_CONFIG, glib-config, , [$GLIB_DIR/bin:$PATH]) fi fi if [ test "x$GLIB_CONFIG" = "x" ]; then if [ test $wv_sys_glib = required ]; then AC_MSG_ERROR(* * * Unable to find glib12-config or glib-config in path! * * *) fi wv_sys_glib=no fi fi if [ test $wv_sys_glib = no ]; then HAVE_GLIB=0 GLIB_CFLAGS="" GLIB_LIBS="" else AC_DEFINE(HAVE_GLIB) HAVE_GLIB=1 GLIB_CFLAGS=`$GLIB_CONFIG --cflags` GLIB_LIBS=`$GLIB_CONFIG --libs` fi AC_SUBST(HAVE_GLIB) AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) dnl gnomevfs support dnl ======================================================== AC_PATH_PROG(GNOME_CONFIG, gnome-config, , [$PATH]) if test -n "$GNOME_CONFIG"; then HAVE_GNOME_CONFIG=1 else HAVE_GNOME_CONFIG=0 fi AC_ARG_WITH(gnomevfs,[ --with-gnomevfs build with gnomevfs support (default is no)],[ if test "x$withval" = "xno"; then HAVE_GNOMEVFS="" else if test "x$GNOME_CONFIG" = "x"; then echo "--with-gnomevfs cannot run without gnome-config" else gvfs_cflags=`$GNOME_CONFIG --cflags vfs` gvfs_ldflags=`$GNOME_CONFIG --libs vfs` CPPFLAGS="$CPPFLAGS $gvfs_cflags" LDFLAGS="$LDFLAGS $gvfs_ldflags" AC_DEFINE(HAVE_GNOMEVFS) HAVE_GNOMEVFS="1" fi fi ],[ HAVE_GNOMEVFS="" ]) AC_SUBST(HAVE_GNOMEVFS) dnl system libwmf support dnl ======================================================== dnl Check for libwmf-0.2.1 or higher _cppflags=$CPPFLAGS _ldflags=$LDFLAGS have_libwmf=no AC_ARG_WITH(libwmf,[ --with-libwmf=DIR use libwmf(2) in DIR],[ if [ test "x$withval" != "xno" ]; then if [ test "x$withval" != "xyes" ]; then LIBWMF_DIR=$withval fi search_for_libwmf=yes else search_for_libwmf=no fi ],[ search_for_libwmf=no ]) if [ test $search_for_libwmf != no ]; then if [ test -n "$LIBWMF_DIR" ]; then AC_PATH_PROG(LIBWMF_CONFIG,libwmf-config, ,[$LIBWMF_DIR/bin:$PATH]) else AC_PATH_PROG(LIBWMF_CONFIG,libwmf-config) fi if [ test -n "$LIBWMF_CONFIG" ]; then libwmf_cflags=`$LIBWMF_CONFIG --cflags` libwmf_libs=`$LIBWMF_CONFIG --libs` else AC_MSG_ERROR(* * * unable to find libwmf-config; unable to continue * * *) fi CPPFLAGS="$CPPFLAGS $libwmf_cflags" LDFLAGS="$LDFLAGS $libwmf_libs" AC_CHECK_HEADER(libwmf/api.h,[ AC_CHECK_LIB(wmf,wmf_stream_create,have_libwmf=yes,[ AC_MSG_ERROR(* * * libwmf >= 0.2.1 required * * *) ]) AC_CHECK_HEADER(libwmf/foreign.h,[ AC_DEFINE(HAVE_LIBWMF_FOREIGN_H) ],[ AC_MSG_WARN(* * * libwmf >= 0.2.2 recommended * * *) ]) ]) if [ test $have_libwmf != no]; then AC_DEFINE(HAVE_LIBWMF) WMF_CFLAGS="$libwmf_cflags" WMF_LIBS="$libwmf_libs" fi fi CPPFLAGS=$_cppflags LDFLAGS=$_ldflags AC_SUBST(WMF_LIBS) AC_SUBST(WMF_CFLAGS) dnl test for iconv dnl ======================================================== _cppflags=${CPPFLAGS} _ldflags=${LDFLAGS} have_iconv=no use_peer_libiconv=no check_for_libiconv=yes default_to_libiconv=yes AC_ARG_WITH(libiconv,[ --with-libiconv[=DIR] use libiconv [in DIR]],[ if [ test "$withval" = "no" ]; then check_for_libiconv=no elif [ test "$withval" != "yes" ]; then check_for_libiconv=yes LIBICONV_DIR=$withval fi ],default_to_libiconv=no) dnl use --with-peer-iconv to get libiconv from the peer directory dnl AC_ARG_WITH(peer-iconv,[ --with-peer-iconv use libiconv from peer directory ],[ if test "$withval" != "no"; then use_peer_libiconv=$withval if [ test -d ../libiconv ]; then check_for_libiconv=yes default_to_libiconv=yes LIBICONV_DIR="../libiconv" fi fi ]) dnl first search for system iconv dnl if [ test "$default_to_libiconv" = "no" ]; then AC_CHECK_FUNC(iconv,[ AC_CHECK_HEADER(iconv.h,[ have_iconv=sys check_for_libiconv=no ],[ AC_MSG_ERROR(* * * I found system iconv but can't find iconv.h header! * * *) ]) ]) fi dnl then search for libiconv dnl if [ test "$check_for_libiconv" = "yes" ]; then if [ test "x$LIBICONV_DIR" != "x" ]; then if [ test "$use_peer_libiconv" != "no" ]; then ICONV_CFLAGS="-I$LIBICONV_DIR/include" ICONV_LIBS="-L$LIBICONV_DIR/lib/.libs -liconv" else ICONV_CFLAGS="-I$LIBICONV_DIR/include" ICONV_LIBS="-L$LIBICONV_DIR/lib -liconv" fi else ICONV_CFLAGS="" ICONV_LIBS="-liconv" fi CPPFLAGS="${CPPFLAGS} $ICONV_CFLAGS" LDFLAGS="${LDFLAGS} $ICONV_LIBS" if [ test "$use_peer_libiconv" = "abi" ]; then dnl if configure is called with --with-peer-iconv=abi dnl then assume that iconv exists and will be linked eventually dnl AC_CHECK_HEADER(iconv.h,have_iconv=abi) else AC_CHECK_HEADER(iconv.h,[ AC_CHECK_LIB(iconv,iconv_open,[ have_iconv=iconv ],[ AC_CHECK_LIB(iconv,libiconv_open,[ have_iconv=libiconv ],[ AC_MSG_ERROR(* * * I found iconv.h header but no working library! * * *) ]) ]) ]) fi fi if [ test "$have_iconv" = "no" ]; then AC_MSG_ERROR(* * * iconv is required: ftp://ftp.gnu.org/pub/gnu/libiconv * * *) fi dnl Apparently this trick fails on RedHat 6.2 (and presumably earlier RedHats & other dnl concurrent Linux distributions) because g++ issues a warning rather than an error. dnl Perhaps we should have something like (I'm not sure about the flag): (fjf) dnl if test "x$GCC" = "xyes"; then CFLAGS="$CFLAGS --fstrict-ansi"; fi AC_LANG_CPLUSPLUS AC_MSG_CHECKING(need for const in iconv) AC_TRY_COMPILE([ #include ],[ iconv_t handle; size_t ib; size_t ob; const char* in = 0; char* out = 0; iconv (handle,const_cast(&in),&ib,&out,&ob); ],[ AC_MSG_RESULT(no) ],[ AC_MSG_RESULT(yes) AC_DEFINE(ICONV_REQUIRES_CONST) ]) AC_LANG_C AC_SUBST(ICONV_CFLAGS) AC_SUBST(ICONV_LIBS) CPPFLAGS=$_cppflags LDFLAGS=$_ldflags dnl end of iconv dnl ======================================================== dnl ======================================================== dnl test for imagemagick dnl test for the existence of the MagickConfig program, dnl if its not there then we dont have imagemagick, if it dnl is there then we still have to do a big dance to get dnl something to link against it as it does not provide all dnl the information that we need to compile against it dnl first try it raw, maybe the author will have fixed it dnl by now, then try it with the prefix attached, and then dnl try it with the X varient of that, and then try it with dnl both. _cppflags=$CPPFLAGS _ldflags=$LDFLAGS AC_ARG_WITH(Magick, [ --with-Magick=DIR use Magick in DIR],[ if test "$withval" != "no"; then MAGICK_DIR=$withval CPPFLAGS="$CPPFLAGS -I$withval/include" LDFLAGS="$LDFLAGS -L$withval/lib" fi ]) if test -n "$MAGICK_DIR"; then AC_PATH_PROG(MAGICK_CONFIG, Magick-config, , [$MAGICK_DIR:$MAGICK_DIR/bin:$PATH]) else AC_PATH_PROG(MAGICK_CONFIG, Magick-config) fi if test -n "$MAGICK_CONFIG"; then m_cppflags=`$MAGICK_CONFIG --cppflags` m_ldflags=`$MAGICK_CONFIG --ldflags` CPPFLAGS="$CPPFLAGS $m_cppflags" LDFLAGS="$LDFLAGS $m_ldflags" AC_CHECK_HEADER(magick/magick.h, AC_CHECK_LIB(Magick, GetImageInfo,[ MAGICK_CFLAGS=$m_cppflags MAGICK_LIBS=$m_ldflags MAGICK="BMAGICK" MAGICKOBJS="\$(RMAGICKOBJS)"])) fi if test -z "$MAGICK"; then MAGICK="BMAGICK" MAGICK_CFLAGS="-I./magick" MAGICK_LIBS="" MAGICKOBJS="\$(RMAGICKOBJS)" fi CPPFLAGS=$_cppflags LDFLAGS=$_ldflags AC_SUBST(MAGICK_CFLAGS) AC_SUBST(MAGICK_LIBS) AC_SUBST(MAGICK) AC_SUBST(MAGICKOBJS) dnl ======================================================== dnl begin of possible optimization tests dnl read notes/optimization AC_CHECK_SIZEOF(char,1) AC_CHECK_SIZEOF(short,2) AC_CHECK_SIZEOF(int,4) AC_CHECK_SIZEOF(long,4) if [test "$SIZEOF_CHAR" != "1" ]; then if [test "$SIZEOF_SHORT" != "2" ]; then if [test "$SIZEOF_INT" != "4" ]; then AC_DEFINE(MATCHED_TYPE) fi fi fi if [ test "$cross_compiling" != "yes" ]; then AC_C_BIGENDIAN dnl here we will know the endianness if [ test "$ac_cv_c_bigendian" = "no" ]; then AC_DEFINE(XML_BYTE_ORDER,12) else if [ test "$ac_cv_c_bigendian" = "yes" ]; then AC_DEFINE(XML_BYTE_ORDER,21) fi fi else dnl here we will not know the endianness, so we will dnl go with the mechanism that works everywhere AC_DEFINE(WORDS_BIGENDIAN) fi dnl given matched types and little endian we can read types larger dnl than a byte with fread and avoid byteswapping dnl at some later stage we will have a test to see if the compiler can dnl get rid of holes, for the moment we will assume only that we can dnl do it if we have __GNUC__ defined dnl end of possible optimization tests dnl check for getopt AC_CHECK_FUNC(getopt_long, , [LIBOBJS="$LIBOBJS getopt1.o getopt.o"]) dnl check for strerror AC_CHECK_FUNC(strerror, , [LIBOBJS="$LIBOBJS strerror.o"]) dnl check for strcasecmp AC_CHECK_FUNC(strcasecmp, , [LIBOBJS="$LIBOBJS strcasecmp.o"]) AC_EGREP_HEADER(strcasecmp,string.h,,AC_DEFINE(DEFINE_STRCASECMP)) dnl check for memcpy, if not there we'll use bcopy AC_CHECK_FUNCS(memcpy) dnl check for mmap AC_FUNC_MMAP AC_SUBST(LIBOBJS) AC_OUTPUT( Makefile version.c wvAbw wvDVI wvPS wvPDF wvHtml wvLatex wvCleanLatex wvText wvWml oledecod/Makefile libole2/Makefile glib-wv/Makefile expat/Makefile expat/xmltok/Makefile expat/xmlparse/Makefile exporter/Makefile iconv/Makefile magick/Makefile ) if [ test $have_libwmf != yes ]; then AC_MSG_WARN(libwv will not have wmf to png support: see README) fi if test -z "$HAVE_ZLIB"; then AC_MSG_WARN(Could not find zlib library or some of its components: libwv *will* build but will not be able to decompress most wmf files: see README) fi