AC_INIT([libisoburn], [0.4.1], [http://libburnia-project.org]) AC_PREREQ([2.50]) dnl AC_CONFIG_HEADER([config.h]) AC_CANONICAL_HOST AC_CANONICAL_TARGET AM_INIT_AUTOMAKE([subdir-objects]) dnl Hint: Search list for version code aspects: dnl /AC_INIT( dnl /ISOBURN_.*_VERSION dnl /LT_.* dnl /LIB.*_REQUIRED dnl The API version codes are defined in libisoburn/libisoburn.h dnl #define isoburn_header_version_* dnl configure.ac only rules the libtool revision numbering about dnl LT_CURREN, LT_AGE, LT_REVISION where SONAME becomes LT_CURRENT - LT_AGE dnl dnl These three are only copies to provide libtool with unused LT_RELEASE ISOBURN_MAJOR_VERSION=0 ISOBURN_MINOR_VERSION=4 ISOBURN_MICRO_VERSION=1 dnl ISOBURN_VERSION=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION.$ISOBURN_MICRO_VERSION AC_SUBST(ISOBURN_MAJOR_VERSION) AC_SUBST(ISOBURN_MINOR_VERSION) AC_SUBST(ISOBURN_MICRO_VERSION) dnl AC_SUBST(ISOBURN_VERSION) dnl Libtool versioning dnl Generate libisoburn.so.1.x.y dnl SONAME will become LT_CURRENT - LT_AGE dnl dnl ts A90628 dnl ### This is the release version 0.4.0 = libisoburn.so.1.29.0 dnl This is the development version after above stable release dnl LT_CURRENT++, LT_AGE++ have not happened happened yet. dnl ### LT_CURRENT++, LT_AGE++ has happened meanwhile. dnl dnl SONAME = 30 - 29 = 1 . Library name = libisoburn.so.1.29.0 LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION LT_CURRENT=30 LT_AGE=29 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_ERROR([Libburn 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. AC_CHECK_LIB(iconv, iconv, , ) dnl GNU iconv has no function iconv() but libiconv() and a macro iconv() AC_CHECK_LIB(iconv, libiconv, , ) AC_PROG_LIBTOOL AC_SUBST(LIBTOOL_DEPS) LIBTOOL="$LIBTOOL --silent" AC_PROG_INSTALL AC_CHECK_HEADERS() THREAD_LIBS=-lpthread AC_SUBST(THREAD_LIBS) TARGET_SHIZZLE AC_SUBST(ARCH) AC_SUBST(LIBBURNIA_PKGCONFDIR) AC_SUBST(LIBBURN_ARCH_LIBS) dnl Determine target directory for libisoburn-*.pc dnl Important: Must be performed _after_ TARGET_SHIZZLE dnl LIBBURNIA_SET_PKGCONFIG AC_ARG_ENABLE(libreadline, [ --enable-libreadline Enable use of libreadline by xorriso, default=yes], , enable_libreadline=yes) if test x$enable_libreadline = xyes; then dnl Check whether there is readline-devel and readline-runtime. dnl If not, erase this macro which would enable use of readline(),add_history() READLINE_DEF="-DXorriso_with_readlinE" dnl The empty yes case obviously causes -lreadline to be linked AC_CHECK_HEADER(readline/readline.h, AC_CHECK_LIB(readline, readline, , READLINE_DEF= ), READLINE_DEF= ) dnl The X= in the yes case prevents that -lreadline gets linked twice AC_CHECK_HEADER(readline/history.h, AC_CHECK_LIB(readline, add_history, X= , READLINE_DEF= ), READLINE_DEF= ) else READLINE_DEF= fi AC_SUBST(READLINE_DEF) dnl ts A90329 dnl ACL and xattr do not need to be enabled in libisoburn or xorriso source dnl but without AC_CHECK_LIB() xorriso will not be linked with -lacl . dnl On my Linux this does work with an ACL enabled libisofs but in general dnl it seems not be right. dnl So for now it seems to be best to do the same configuration for libisoburn dnl and xorriso as for libisofs. 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) 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 dnl Same situation as with xattr and ACL: libisoburn does not depend directly dnl on zlib. But if it is enabled in libisofs then it seems wise to link it dnl with libisoburn apps. 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 The empty parameter after "compress2" causes -lz. ZLIB_DEF="-DLibisofs_with_zliB" AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, compress2, , ZLIB_DEF= ), ZLIB_DEF= ) else ZLIB_DEF= fi AC_SUBST(ZLIB_DEF) AC_ARG_ENABLE(external-filters, [ --enable-external-filters Enable use of external filter programs by xorriso, default=yes], , enable_external_filters=yes) if test x"$enable_external_filters" = xyes; then EXTF_DEF="-DXorriso_allow_external_filterS" echo "enabled xorriso external filter programs" else EXTF_DEF= echo "disabled xorriso external filter programs" fi AC_SUBST(EXTF_DEF) AC_ARG_ENABLE(external-filters-setuid, [ --enable-external-filters-setuid Enable xorriso external filter programs under setuid, default=no], , enable_external_filters_setuid=no) if test x$enable_external_filters_setuid = xyes; then EXTF_SUID_DEF="-DXorriso_allow_extf_suiD" echo "enabled xorriso external filter programs under setuid" else EXTF_SUID_DEF= echo "disabled xorriso external filter programs under setuid" fi AC_SUBST(EXTF_SUID_DEF) AC_CHECK_HEADER(libburn/libburn.h) AC_CHECK_HEADER(libisofs/libisofs.h) dnl Check for proper library versions LIBBURN_REQUIRED=0.7.0 LIBISOFS_REQUIRED=0.6.22 PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED) PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED) dnl Add compiler-specific flags 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 AC_CONFIG_FILES([ Makefile doc/doxygen.conf version.h libisoburn-1.pc ]) AC_OUTPUT