You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
257 lines
7.6 KiB
257 lines
7.6 KiB
AC_INIT([libisofs], [0.6.39], [http://libburnia-project.org]) |
|
AC_PREREQ([2.50]) |
|
dnl AC_CONFIG_HEADER([config.h]) |
|
|
|
AC_CANONICAL_HOST |
|
AC_CANONICAL_TARGET |
|
|
|
LIBBURNIA_SET_FLAGS |
|
|
|
AM_INIT_AUTOMAKE([subdir-objects]) |
|
|
|
dnl |
|
dnl if MAJOR or MINOR version changes, be sure to change AC_INIT above to match |
|
dnl |
|
dnl CURRENT and AGE describe the binary compatibility interval of a |
|
dnl dynamic library. |
|
dnl See also http://www.gnu.org/software/libtool/manual.html#Interfaces |
|
dnl |
|
dnl The name of the library will be libisofs.so.$CURRENT-$AGE.$AGE.$REV |
|
dnl In the terminology of this file: |
|
dnl CURRENT = LT_CURRENT |
|
dnl REV = LT_REVISION |
|
dnl AGE = LT_AGE |
|
dnl |
|
dnl LT_CURRENT, LT_REVISION and LT_AGE get set directly now. |
|
dnl |
|
dnl SONAME of the emerging library is LT_CURRENT - LT_AGE. |
|
dnl The linker will do no finer checks. Especially no age range check for |
|
dnl the cdrskin binary. If SONAME matches, then the couple starts. |
|
dnl |
|
dnl Therefore a run time check is provided by libisofs function |
|
dnl iso_lib_version(). It returns the major, minor and micro revision of the |
|
dnl library. This means LIBISOFS_*_VERSION kept its second job which does not |
|
dnl comply to the usual ways of configure.ac . I.e. now *officially* this is |
|
dnl the source code release version as announced to the public. It has no |
|
dnl connection to SONAME or libtool version numbering. |
|
dnl It rather feeds the API function iso_lib_version(). |
|
dnl |
|
dnl If LIBISOFS_*_VERSION changes, be sure to change AC_INIT above to match. |
|
dnl |
|
LIBISOFS_MAJOR_VERSION=0 |
|
LIBISOFS_MINOR_VERSION=6 |
|
LIBISOFS_MICRO_VERSION=39 |
|
LIBISOFS_VERSION=$LIBISOFS_MAJOR_VERSION.$LIBISOFS_MINOR_VERSION.$LIBISOFS_MICRO_VERSION |
|
|
|
AC_SUBST(LIBISOFS_MAJOR_VERSION) |
|
AC_SUBST(LIBISOFS_MINOR_VERSION) |
|
AC_SUBST(LIBISOFS_MICRO_VERSION) |
|
AC_SUBST(LIBISOFS_VERSION) |
|
|
|
dnl Libtool versioning |
|
LT_RELEASE=$LIBISOFS_MAJOR_VERSION.$LIBISOFS_MINOR_VERSION |
|
# 2010.10.23 development jump has not yet happened |
|
# SONAME = 40 - 34 = 6 . Library name = libisofs.6.34.0 |
|
LT_CURRENT=40 |
|
LT_AGE=34 |
|
LT_REVISION=0 |
|
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` |
|
|
|
AC_SUBST(LT_RELEASE) |
|
AC_SUBST(LT_CURRENT) |
|
AC_SUBST(LT_REVISION) |
|
AC_SUBST(LT_AGE) |
|
AC_SUBST(LT_CURRENT_MINUS_AGE) |
|
|
|
AC_PREFIX_DEFAULT([/usr/local]) |
|
test "$prefix" = "NONE" && prefix=$ac_default_prefix |
|
|
|
AM_MAINTAINER_MODE |
|
|
|
AM_PROG_CC_C_O |
|
AC_C_CONST |
|
AC_C_INLINE |
|
AC_C_BIGENDIAN |
|
|
|
dnl Large file support |
|
AC_SYS_LARGEFILE |
|
AC_FUNC_FSEEKO |
|
AC_CHECK_FUNC([fseeko]) |
|
if test ! $ac_cv_func_fseeko; then |
|
AC_MSG_ERROR([Libisofs requires largefile support.]) |
|
fi |
|
|
|
dnl If iconv(3) is in an extra lib, then it gets added to variable LIBS. |
|
dnl If not, then no -liconv will be added. |
|
LIBBURNIA_CHECK_ICONV |
|
|
|
dnl To abort configuration if iconv() still cannot be compiled |
|
LIBBURNIA_ASSERT_ICONV |
|
|
|
|
|
AC_PROG_LIBTOOL |
|
AC_SUBST(LIBTOOL_DEPS) |
|
LIBTOOL="$LIBTOOL --silent" |
|
|
|
AC_PROG_INSTALL |
|
|
|
AC_CHECK_HEADERS() |
|
|
|
dnl Use GNU extensions if available |
|
AC_DEFINE(_GNU_SOURCE, 1) |
|
|
|
dnl Check for tm_gmtoff field in struct tm |
|
AC_CHECK_MEMBER([struct tm.tm_gmtoff], |
|
[AC_DEFINE(HAVE_TM_GMTOFF, 1, |
|
[Define this if tm structure includes a tm_gmtoff entry.])], |
|
, |
|
[#include <time.h>]) |
|
|
|
dnl Check if non standard timegm() function is available |
|
AC_CHECK_DECL([timegm], |
|
[AC_DEFINE(HAVE_TIMEGM, 1, [Define this if timegm function is available])], |
|
, |
|
[#include <time.h>]) |
|
|
|
dnl Check if non standard eaccess() function is available |
|
AC_CHECK_DECL([eaccess], |
|
[AC_DEFINE(HAVE_EACCESS, 1, [Define this if eaccess function is available])], |
|
, |
|
[#include <unistd.h>]) |
|
|
|
THREAD_LIBS=-lpthread |
|
AC_SUBST(THREAD_LIBS) |
|
|
|
TARGET_SHIZZLE |
|
AC_SUBST(ARCH) |
|
AC_SUBST(LIBBURN_ARCH_LIBS) |
|
|
|
|
|
dnl See if the user wants aggressive optimizations of the code |
|
AC_ARG_ENABLE(debug, |
|
[ --enable-debug Disable aggressive optimizations, default=yes], |
|
, enable_debug=yes) |
|
if test x$enable_debug != xyes; then |
|
if test x$GCC = xyes; then |
|
CFLAGS="$CFLAGS -O3" |
|
CFLAGS="$CFLAGS -fexpensive-optimizations" |
|
fi |
|
CFLAGS="$CFLAGS -DNDEBUG" |
|
else |
|
if test x$GCC = xyes; then |
|
CFLAGS="$CFLAGS -g -pedantic -Wall" |
|
fi |
|
CFLAGS="$CFLAGS -DDEBUG" |
|
fi |
|
|
|
dnl Verbose debug to make libisofs issue more debug messages |
|
AC_ARG_ENABLE(verbose-debug, |
|
[ --enable-verbose-debug Enable verbose debug messages, default=no], |
|
AC_DEFINE(LIBISOFS_VERBOSE_DEBUG, 1)) |
|
|
|
|
|
dnl Determine target directory for libisofs-*.pc |
|
dnl Important: Must be performed _after_ TARGET_SHIZZLE |
|
dnl |
|
LIBBURNIA_SET_PKGCONFIG |
|
|
|
|
|
dnl Add compiler-specific flags |
|
|
|
AC_ARG_ENABLE(libacl, |
|
[ --enable-libacl Enable use of libacl by libisofs, default=yes], |
|
, enable_libacl=yes) |
|
if test "x$enable_libacl" = xyes; then |
|
dnl Check whether there is libacl-devel and libacl-runtime. |
|
dnl If not, erase this macro which would enable use of acl_to_text and others |
|
LIBACL_DEF="-DLibisofs_with_aaip_acL" |
|
dnl The empty yes case obviously causes -lacl to be linked |
|
AC_CHECK_HEADER(sys/acl.h, AC_CHECK_LIB(acl, acl_to_text, , LIBACL_DEF= ), LIBACL_DEF= ) |
|
else |
|
LIBACL_DEF= |
|
fi |
|
AC_SUBST(LIBACL_DEF) |
|
|
|
|
|
dnl ts A90123 |
|
AC_ARG_ENABLE(xattr, |
|
[ --enable-xattr Enable use of xattr by libisofs, default=yes], |
|
, enable_xattr=yes) |
|
if test "x$enable_xattr" = xyes; then |
|
dnl Check whether there is the header for Linux xattr. |
|
dnl If not, erase this macro which would enable use of listxattr and others |
|
XATTR_DEF="-DLibisofs_with_aaip_xattR" |
|
AC_CHECK_HEADER(attr/xattr.h, AC_CHECK_LIB(c, listxattr, X= , XATTR_DEF= ), XATTR_DEF= ) |
|
else |
|
XATTR_DEF= |
|
fi |
|
AC_SUBST(XATTR_DEF) |
|
|
|
|
|
dnl ts A90409 |
|
AC_ARG_ENABLE(zlib, |
|
[ --enable-zlib Enable use of zlib by libisofs, default=yes], |
|
, enable_zlib=yes) |
|
if test "x$enable_zlib" = xyes; then |
|
dnl Check whether there is the header for zlib. |
|
dnl If not, erase this macro which would enable use of compress2() and others. |
|
dnl Linking fails on SuSE 9.0 because zlib has compress2() but lacks |
|
dnl compressBound(). So compressBound is the more modern thing to test. |
|
dnl The empty parameter after "compressBound" causes -lz. |
|
ZLIB_DEF="-DLibisofs_with_zliB" |
|
AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, compressBound, , ZLIB_DEF= ), ZLIB_DEF= ) |
|
else |
|
ZLIB_DEF= |
|
fi |
|
AC_SUBST(ZLIB_DEF) |
|
|
|
dnl ts B00927 |
|
AC_ARG_ENABLE(libjte, |
|
[ --enable-libjte Enable use of libjte by libisofs, default=yes], |
|
, enable_libjte=yes) |
|
if test "x$enable_libjte" = xyes; then |
|
LIBJTE_DEF="-DLibisofs_with_libjtE" |
|
AC_CHECK_HEADER(libjte/libjte.h, AC_CHECK_LIB(jte, libjte_new, , LIBJTE_DEF= ), LIBJTE_DEF= ) |
|
else |
|
LIBJTE_DEF= |
|
fi |
|
AC_SUBST(LIBJTE_DEF) |
|
|
|
# Library versioning normally serves a complex purpose. |
|
# Since libisofs obeys strict ABI backward compatibility, it needs only the |
|
# simple feature to declare function names "global:" or "local:". Only the |
|
# global ones are visible to applications at library load time. |
|
AC_ARG_ENABLE(versioned-libs, |
|
[ --enable-versioned-libs Enable strict symbol encapsulation , default=yes], |
|
, enable_versioned_libs=yes) |
|
if test x$enable_versioned_libs = xyes; then |
|
vers_libs_test=no |
|
LIBISOFS_ASSERT_VERS_LIBS |
|
if test x$vers_libs_test = xno |
|
then |
|
echo "disabled strict symbol encapsulation (test failed)" |
|
else |
|
echo "enabled strict symbol encapsulation" |
|
fi |
|
else |
|
echo "disabled strict symbol encapsulation" |
|
fi |
|
|
|
AC_ARG_ENABLE(ldconfig-at-install, |
|
[ --enable-ldconfig-at-install On GNU/Linux run ldconfig, default=yes], |
|
, ldconfig_at_install=yes) |
|
if test x$ldconfig_at_install = xyes; then |
|
dummy=dummy |
|
else |
|
LIBBURNIA_LDCONFIG_CMD="echo 'NOTE: ldconfig is disabled. If needed, configure manually for:'" |
|
echo "disabled run of ldconfig during installation on GNU/Linux" |
|
fi |
|
AC_SUBST(LIBBURNIA_LDCONFIG_CMD) |
|
|
|
AC_CONFIG_FILES([ |
|
Makefile |
|
doc/doxygen.conf |
|
version.h |
|
libisofs-1.pc |
|
]) |
|
AC_OUTPUT
|
|
|