AC_INIT(bambamc,0.0.50,[gt1@sanger.ac.uk],[bambamc],[http://www.sanger.ac.uk])
LIBRARY_VERSION=0:50:0
AC_CANONICAL_SYSTEM
AC_PROG_LIBTOOL
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE
AC_CONFIG_MACRO_DIR([m4])
# check for c99 compiler
CFLAGS_SAVE="${CFLAGS}"
CPPFLAGS_SAVE="${CPPFLAGS}"
CFLAGS=""
CPPFLAGS=""
AC_PROG_CC_C99
C99CFLAGS="${CFLAGS}"
C99CPPFLAGS="${CPPFLAGS}"
CFLAGS="${CFLAGS_SAVE}"
CPPFLAGS="${CPPFLAGS_SAVE}"
# AC_MSG_NOTICE([C99: :${C99CFLAGS}: :${C99CPPFLAGS}:])
AM_PROG_CC_C_O
AC_LANG_ASSERT([C])
AC_HEADER_STDC
PKG_PROG_PKG_CONFIG
PKG_CHECK_MODULES([zlib],[zlib >= 0],[zlibpkg=yes],[zlibpkg=no])
if [[ "${zlibpkg}" = "yes" ]] ; then
PKG_CHECK_MODULES([zlib],[zlib >= 0])
LIBSSAVE="${LIBS}"
LIBS="${LIBS} ${zlib_LIBS}"
CPPFLAGSSAVE="${CPPFLAGS}"
CPPFLAGS="${CPPFLAGS} ${zlib_CFLAGS}"
AC_MSG_CHECKING([whether we can compile a zlib program])
AC_TRY_LINK([#include <zlib.h>
#include <string.h>
],[
z_stream strm;
memset ( &strm , 0, sizeof(z_stream) );
strm.zalloc = Z_NULL;
strm.zfree = Z_NULL;
strm.opaque = Z_NULL;
deflateInit(&strm,Z_DEFAULT_COMPRESSION);
],[zlib=yes],[zlib=no])
AC_MSG_RESULT([${zlib}])
LIBS="${LIBSSAVE}"
CPPFLAGS="${CPPFLAGSSAVE}"
if [[ "$zlib" = "no" ]] ; then
AC_MSG_ERROR([Required library zlib not found.]);
else
ZLIBREQ=zlib
ZLIBCPPFLAGS="${zlib_CFLAGS}"
ZLIBLIBS="${zlib_LIBS}"
ZLIBPKGLBIS=
fi
else
AC_MSG_WARN([zlib pkgconfig file is not installed. Trying if -lz for LIBS is enough.])
LIBSSAVE="${LIBS}"
LIBS="${LIBS} -lz"
AC_MSG_CHECKING([whether we can compile a zlib program])
AC_TRY_LINK([#include <zlib.h>
#include <string.h>
],[
z_stream strm;
memset ( &strm , 0, sizeof(z_stream) );
strm.zalloc = Z_NULL;
strm.zfree = Z_NULL;
strm.opaque = Z_NULL;
deflateInit(&strm,Z_DEFAULT_COMPRESSION);
],[zlib=yes],[zlib=no])
AC_MSG_RESULT([${zlib}])
LIBS="${LIBSSAVE}"
if [[ "$zlib" = "no" ]] ; then
AC_MSG_ERROR([Required library zlib not found.]);
else
ZLIBREQ=
ZLIBCPPFLAGS=
ZLIBLIBS="-lz"
ZLIBPKGLIBS="-lz"
fi
fi
if test "${CC}" = "gcc" ; then
CPPFLAGS="${CPPFLAGS} -W -Wall"
fi
if test "${CC}" = "cl.exe" ; then
CPPFLAGS="${CPPFLAGS} -W1" # -Wall
fi
AC_ARG_ENABLE(optimization,
AS_HELP_STRING([--enable-optimization],[use compiler optimization (default yes)]),
[optimization=${enableval}],[optimization=yes])
AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug],[use compiler debug flags (default no)]),
[debug=${enableval}],[debug=no])
AC_ARG_ENABLE(profile,
AS_HELP_STRING([--enable-profile],[use compiler profiling flags (default no)]),
[profile=${enableval}],[profile=no])
AC_ARG_ENABLE(fast,
AS_HELP_STRING([--enable-fast],[disable evaluation of assertions (default no)]),
[fast=${enableval}],[fast=no])
if test "${fast}" = "yes" ; then
CPPFLAGS="${CPPFLAGS} -DNDEBUG"
fi
if test "${debug}" = "yes" ; then
CFLAGS="${CFLAGS} -g -O0 -rdynamic"
else
if test "${profile}" = "yes" ; then
CFLAGS="${CFLAGS} -g -pg -rdynamic"
else
if test "${optimization}" = "yes" ; then
case ${CC} in
gcc)
CFLAGS="${CFLAGS} -O3 -rdynamic"
;;
*-mingw32msvc-gcc)
CFLAGS="${CFLAGS} -O3 -rdynamic"
;;
cl.exe)
CFLAGS="${CFLAGS} -O2 -Ob2 -Ot -Oy"
;;
esac
fi
fi
fi
AC_CHECK_FUNC([_mkdir],[have_mkdir=yes],[have_mkdir=no])
AC_CHECK_HEADER([direct.h],[have_direct_h=yes],[have_direct_h=no])
if test "${have_mkdir}" = "yes" -a "${have_direct_h}" = "yes" ; then
AC_MSG_CHECKING([whether we can compile a program using _mkdir])
AC_TRY_LINK([#include <direct.h>],[_mkdir("tmpdir");],[have_mkdir=yes],[have_mkdir=no])
AC_MSG_RESULT([${have_mkdir}])
fi
if test "${have_mkdir}" = "yes" ; then
HAVEWINDOWS_MKDIR="#define HAVEWINDOWS_MKDIR"
else
HAVEWINDOWS_MKDIR=
fi
PACKAGE_NAME=${PACKAGE}
PACKAGE_VERSION=${VERSION}
AC_SUBST([PACKAGE_NAME])
AC_SUBST([PACKAGE_VERSION])
AC_SUBST([ZLIBCPPFLAGS])
AC_SUBST([ZLIBLIBS])
AC_SUBST([ZLIBPKGLIBS])
AC_SUBST([ZLIBREQ])
AC_SUBST([LIBRARY_VERSION])
AC_SUBST([HAVEWINDOWS_MKDIR])
AC_OUTPUT(Makefile src/Makefile ubuntu.sh bambamc.pc src/bambamc/BamBam_Config.h)