[go: up one dir, main page]

Menu

[r991]: / libmona / configure.ac  Maximize  Restore  History

Download this file

349 lines (284 with data), 9.4 kB

dnl Process this file with autoconf to produce a configure script.

AC_PREREQ(2.59)

# Making releases:
#   LIBMONA_MICRO_VERSION += 1;
#   LIBMONA_INTERFACE_AGE += 1;
#   LIBMONA_BINARY_AGE += 1;
# if any functions have been added, set LIBMONA_INTERFACE_AGE to 0.
# if backwards compatibility has been broken,
# set LIBMONA_BINARY_AGE and LIBMONA_INTERFACE_AGE to 0.

m4_define([libmona_major_version], [0])
m4_define([libmona_minor_version], [8])
m4_define([libmona_micro_version], [4])
m4_define([libmona_real_version],
          [libmona_major_version.libmona_minor_version.libmona_micro_version])
m4_define([libmona_version], [libmona_real_version])
m4_define([libmona_interface_age], [0])
m4_define([libmona_binary_age], [2])

m4_define([libmona_unstable],
          m4_if(m4_eval(libmona_minor_version % 2), [1], [yes], [no]))
m4_define([libmona_full_name], [The MONA library])

AC_INIT([libmona], [libmona_version], [tittge@cbs.mpg.de])
AC_CONFIG_SRCDIR([libmona/monaConfig.hh.in])

AM_INIT_AUTOMAKE(no-define)
AC_CONFIG_HEADER(config.h)

LIBMONA_MAJOR_VERSION=libmona_major_version
LIBMONA_MINOR_VERSION=libmona_minor_version
LIBMONA_MICRO_VERSION=libmona_micro_version
LIBMONA_INTERFACE_AGE=libmona_interface_age
LIBMONA_BINARY_AGE=libmona_binary_age
LIBMONA_VERSION=libmona_version
LIBMONA_UNSTABLE=libmona_unstable
AC_SUBST(LIBMONA_MAJOR_VERSION)
AC_SUBST(LIBMONA_MINOR_VERSION)
AC_SUBST(LIBMONA_MICRO_VERSION)
AC_SUBST(LIBMONA_INTERFACE_AGE)
AC_SUBST(LIBMONA_BINARY_AGE)
AC_SUBST(LIBMONA_VERSION)
AC_SUBST(LIBMONA_UNSTABLE)

dnl The symbol LIBMONA_UNSTABLE is defined above for substitution in
dnl Makefiles and conditionally defined here as a preprocessor symbol.
if test "x$LIBMONA_UNSTABLE" = "xyes"; then
  AC_DEFINE(LIBMONA_UNSTABLE,1,
            [Define to 1 if this is an unstable version of the libmona])
fi

# libtool versioning
m4_define([lt_release], [libmona_major_version.libmona_minor_version])
m4_define([lt_current], [m4_eval(libmona_micro_version - libmona_interface_age)])
m4_define([lt_revision], [libmona_interface_age])
m4_define([lt_age], [m4_eval(libmona_binary_age - libmona_interface_age)])
LT_RELEASE=lt_release
LT_CURRENT=lt_current
LT_REVISION=lt_revision
LT_AGE=lt_age
LT_VERSION_INFO="lt_current:lt_revision:lt_age"
LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
AC_SUBST(LT_RELEASE)
AC_SUBST(LT_CURRENT)
AC_SUBST(LT_REVISION)
AC_SUBST(LT_AGE)
AC_SUBST(LT_VERSION_INFO)

dnl Initialize maintainer mode
AM_MAINTAINER_MODE

# some generic stuff
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET

AC_MSG_CHECKING([whether to turn on debugging])
AC_ARG_ENABLE(debug,
	AC_HELP_STRING([--enable-debug],       
	               [turn on debugging (default=no)]),
		        DEBUGFLAG="-g -ansi -Wall"; enable_debug=yes)

AM_CONDITIONAL(DEBUG, test "$enable_debug" = yes)
if test -n "$DEBUGFLAG"; then
	AC_MSG_RESULT([yes])
	CXXFLAGS="$DEBUGFLAG $CXXFLAGS"
	CFLAGS="$DEBUGFLAG $CFLAGS"
	AC_DEFINE(ENABLE_DEBUG, 1, [Define if debugging needs some extra code.])
else
	AC_DEFINE(NDEBUG, 1, [Define we don't want debugging code.])
	AC_MSG_RESULT([no])
fi

PLUGIN_SEARCH_PATH=${prefix}/lib/$PACKAGE_NAME/$PACKAGE_VERSION/plugins
AC_SUBST(PLUGIN_SEARCH_PATH)

AC_DEFINE_UNQUOTED(PLUGIN_SEARCH_PATH, "$PLUGIN_SEARCH_PATH", [Package plugin search path])

AC_SUBST(define_DEBUG_OUTPUT)

# appreciate aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

dnl Initialize CC
AC_PROG_CC
AM_PROG_CC_STDC

dnl Initialize CXX
AC_PROG_CXX

dnl Initialize libtool
AC_PROG_LIBTOOL

AC_SUBST(define_WORKAROUND_RTTI)

# Checks for system header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_TIME
AC_CHECK_HEADERS([limits.h sys/time.h])

# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_CONST
AC_C_INLINE
AC_TYPE_SIZE_T
AC_CHECK_TYPES([ptrdiff_t])

# Check for doxygen
AC_CHECK_PROG(have_doxygen,doxygen,"yes","no")
if test "x$have_doxygen" = "xyes"; then
    AC_CHECK_PROG(HAVE_DOT,dot,"YES","NO")	
    AC_SUBST(HAVE_DOT)
else
    AC_MSG_ERROR([
    *** Doxygen is not installesd on your computer, though it is 
    ***	required to build the documentation of this package. 
    *** The latest version of doxygen is always available from 
    *** http://www.doxygen.org])
fi

# Check for libpopt
AC_CHECK_HEADERS(popt.h)
SAVE_LIBS="$LIBS"
AC_CHECK_LIB(popt, poptGetContext,
	POPT_LIB="-lpopt"; LIBS="$LIBS -lpopt",
	POPT_LIB=""; AC_MSG_ERROR([popt library not found]))
AC_SUBST(POPT_LIB)
ACX_POPT_CONST
LIBS="$SAVE_LIBS"

# Check for libiberty (in binutils-dev; put in package dependencies)
AC_CHECK_HEADERS(libiberty.h)
SAVE_LIBS="$LIBS"
AC_CHECK_LIB(iberty, cplus_demangle,[
		IBERTY_LIB="-liberty"; LIBS="$LIBS -liberty"
		use_liberty=yes
		AC_SUBST(HAVE_LIBERTY, 1, have the libiberty) 
	], [
		use_liberty=no
	])
AC_SUBST(IBERTY_LIB)
AM_CONDITIONAL(HAVE_LIBERTY, test x$use_liberty = xyes)
AC_CHECK_FUNCS(xcalloc)
AC_CHECK_FUNCS(xmemdup)
ACX_MALLOC_ATTRIBUTE
LIBS="$SAVE_LIBS"

# Check for libdl
SAVE_LIBS="$LIBS"
AC_CHECK_LIB(c, dlopen, DL_LIB="", [AC_CHECK_LIB(dl, dlopen, DL_LIB="-ldl")])
AC_SUBST(DL_LIB)
LIBS="$SAVE_LIBS"

#check for io plugin libraries
AC_CHECK_LIB(tiff, TIFFOpen,[
	TIFF_LIB="-ltiff -lm"
	AC_SUBST(TIFF_LIB)
	build_tiffio_plugins=yes
], [build_tiffio_plugins=no], -lm)

AC_CHECK_HEADER(tiffio.h,,[build_tiffio_plugins=no])

PKG_CHECK_MODULES(FFTW3, "fftw3", build_fftw=yes, build_fftw=no)
AC_SUBST(FFTW3_LIBS)
AC_SUBST(FFTW3_CFLAGS)
AM_CONDITIONAL(HAVE_FFTW3, test x$build_fftw = xyes)


PKG_CHECK_MODULES(EXR, OpenEXR,	[
	build_exrio_plugins=yes
	AC_DEFINE(HAVE_OPENEXR, 1, define if the OpenEXR library is available)
],build_exrio_plugins=no)
AC_SUBST(EXR_LIBS)
AC_SUBST(EXR_CFLAGS)

AM_CONDITIONAL(BUILD_EXRIO_PLUGINS, test x$build_exrio_plugins = xyes)

AC_CHECK_LIB(atlas, ATL_saxpy, [
	AC_CHECK_LIB(ptcblas, cblas_saxpy, [
		BLAS_LIBS="-lptcblas -latlas -lpthread -lm" 
		AC_SUBST(BLAS_LIBS)
		AC_CHECK_HEADER(cblas.h, AC_DEFINE(HAVE_BLAS, 1, use the blas routines))
	],[
	AC_CHECK_LIB(cblas, cblas_saxpy, [
		BLAS_LIBS="-lcblas -latlas -lm" 
		AC_SUBST(BLAS_LIBS)
		AC_CHECK_HEADER(cblas.h, AC_DEFINE(HAVE_BLAS, 1, use the blas routines))
	],, -latlas -lpthread -lm)
],-latlas -lpthread -lm)],[	
	AC_CHECK_LIB(cblas, cblas_saxpy, [
		BLAS_LIBS="-lcblas -lpthread -lm" 
		AC_SUBST(BLAS_LIBS)
		AC_CHECK_HEADER(cblas.h, AC_DEFINE(HAVE_BLAS, 1, use the blas routines))
	],, -lpthread -lm)
], -lpthread -lm )

AM_CONDITIONAL(BUILD_TIFFIO_PLUGINS, test x$build_tiffio_plugins = xyes)

AC_CHECK_LIB(png12, png_create_read_struct,[
	PNG_LIB="-lpng12 -lm -lz"
	AC_SUBST(PNG_LIB)
	build_pngio_plugins=yes
], [build_pngio_plugins=no], -lm -lz)

AC_CHECK_HEADER(png.h,,[build_pngio_plugins=no])
AM_CONDITIONAL(BUILD_PNGIO_PLUGINS, test x$build_pngio_plugins = xyes)


#check for GTS
SAVE_LIBS="$LIBS"
AM_PATH_GTS(0.7.3,[
    AC_DEFINE(HAVE_GTS, 1,[Define if we have libgts.])
    build_gts_plugins=yes
],[
    build_gts_plugins=no
])

AM_CONDITIONAL(BUILD_GTS_PLUGINS, test x$build_gts_plugins = xyes)

LIBS="$SAVE_LIBS"

#check for VISTAIO
SAVE_LIBS="$LIBS"
AM_PATH_VISTAIO(1.2.6, [
    AC_DEFINE(HAVE_VISTAIO, 1,[Define if we have libvistaio.])
    build_vistaio_plugins=yes
	],[
    build_vistaio_plugins=no
])
AM_CONDITIONAL(BUILD_VISTAIO_PLUGINS, test x$build_vistaio_plugins = xyes)

LIBS="$SAVE_LIBS"


SAVE_LIBS="$LIBS"
AC_CHECK_LIB(netcdf, nc_open, [
	MINC_LIB="-lnetcdf"
	build_minc_plugins=yes
],[
	build_minc_plugins=no
],  -L$prefix/lib)

if test x$build_minc_plugins = xyes
then 
    AC_CHECK_LIB(minc, miopen,[
	 MINC_LIB="-lminc -lnetcdf" 
	 build_minc_plugins=yes 
       ], [
	 build_minc_plugins=no
       ], -lnetcdf  -L$prefix/lib)
fi 

AM_CONDITIONAL(BUILD_MINC_PLUGINS, test x$build_minc_plugins = xyes)


AC_SUBST(MINC_LIB)

LIBS="$SAVE_LIBS"

dnl Checks some more functions.
AC_LANG(C++)
AC_TYPE_SIGNAL
AC_CHECK_FUNCS([difftime floor getcwd memset pow regcomp sqrt strerror strchr strtoul])

dnl check some boost functionality

AX_BOOST_BASE([1.34])
CXXFLAGS="$CXXFLAGS $BOOST_CPPFLAGS"
AX_BOOST_THREAD
AX_BOOST_FILESYSTEM

LIBS="$LIBS $BOOST_THREAD_LIB $BOOST_FILESYSTEM_LIB $BOOST_LDFLAGS"

dnl Set PACKAGE PREFIX
if test "x${prefix}" = "xNONE"; then
	packageprefix=${ac_default_prefix}
else
	packageprefix=${prefix}
fi

dnl set the standard flags for this library
libmona_cflags="-I$prefix/include/libmona-${LT_RELEASE}"
libmona_libs="-L$prefix/lib -lmona -lm -ldl $BOOST_THREAD_LIB $BOOST_LDFLAGS"
AC_SUBST(libmona_cflags)
AC_SUBST(libmona_libs)

AC_CONFIG_FILES([Makefile
		 libmona-config
		 libmona.pc
                 m4/Makefile
		 doc/library.dox
                 doc/Makefile
		 doc/version.tex
		 doc/src/Makefile
		 doc/examples/Makefile
                 libopt/Makefile
	  	 libmona/monaConfig.hh
                 libmona/Makefile
	         plugins/Makefile
	         plugins/io/Makefile
		 plugins/filter/Makefile
		 scripts/Makefile
		 src/Makefile
		 test/Makefile]
		 libmona.spec
		 ,[chmod +x libmona-config])
AC_OUTPUT

echo "================================="

echo "Build additional IO Plugins:"

echo "    exr......$build_exrio_plugins"
echo "    gts......$build_gts_plugins"
echo "    minc.....$build_minc_plugins"
echo "    png......$build_pngio_plugins"
echo "    tiff.....$build_tiffio_plugins"
echo "    vista....$build_vistaio_plugins"

echo "Build additional Filter Plugins:" 
     
echo "    fft......$build_fftw"

echo "================================="