# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ([2.68]) # Get version from file VERSION m4_define([f2fs_tools_version], m4_esyscmd([sed -n '1p' VERSION | tr -d '\n'])) m4_define([f2fs_tools_date], m4_esyscmd([sed -n '2p' VERSION | tr -d '\n'])) m4_define([f2fs_tools_gitdate], m4_esyscmd([git log -1 --pretty=format:%ci 2> /dev/null])) AC_INIT([F2FS tools], [f2fs_tools_version], [linux-f2fs-devel@lists.sourceforge.net]) AC_DEFINE([F2FS_TOOLS_VERSION], "f2fs_tools_version", [f2fs-tools version]) AC_DEFINE([F2FS_MAJOR_VERSION], m4_bpatsubst(f2fs_tools_version, [\([0-9]*\)\(\w\|\W\)*], [\1]), [Major version for f2fs-tools]) AC_DEFINE([F2FS_MINOR_VERSION], m4_bpatsubst(f2fs_tools_version, [\([0-9]*\).\([0-9]*\)\(\w\|\W\)*], [\2]), [Minor version for f2fs-tools]) AS_IF([test -d .git],[ AC_DEFINE([F2FS_TOOLS_DATE], "m4_bpatsubst(f2fs_tools_gitdate, [\([0-9-]*\)\(\w\|\W\)*], [\1])", [f2fs-tools date based on Git commits])],[ AC_DEFINE([F2FS_TOOLS_DATE], "f2fs_tools_date", [f2fs-tools date based on Source releases])]) AC_CONFIG_SRCDIR([config.h.in]) AC_CONFIG_HEADER([config.h]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([foreign tar-pax dist-xz]) # Test configure options. AC_ARG_WITH([selinux], AS_HELP_STRING([--without-selinux], [Ignore presence of libselinux and disable selinux support])) AC_ARG_WITH([blkid], AS_HELP_STRING([--without-blkid], [Ignore presence of libblkid and disable blkid support])) # Checks for programs. AC_PROG_CC AC_PROG_LIBTOOL AC_PATH_PROG([LDCONFIG], [ldconfig], [AC_MSG_ERROR([ldconfig not found])], [$PATH:/sbin]) # Checks for libraries. PKG_CHECK_MODULES([libuuid], [uuid]) AS_IF([test "x$with_selinux" != "xno"], [PKG_CHECK_MODULES([libselinux], [libselinux], [have_selinux=yes], [have_selinux=no])], [have_selinux=no] ) AS_IF([test "x$have_selinux" = "xyes"], [AC_DEFINE([HAVE_LIBSELINUX], [1], [Use libselinux])], [AS_IF([test "x$with_selinux" = "xyes"], [AC_MSG_ERROR([selinux support requested but libselinux not found])] )] ) AS_IF([test "x$with_blkid" != "xno"], [PKG_CHECK_MODULES([libblkid], [blkid], [have_blkid=yes], [have_blkid=no])], [have_blkid=no] ) AS_IF([test "x$have_blkid" = "xyes"], [AC_DEFINE([HAVE_LIBBLKID], [1], [Use blkid])], [AS_IF([test "x$with_blkid" = "xyes"], [AC_MSG_ERROR([blkid support requested but libblkid not found])] )] ) # Checks for header files. AC_CHECK_HEADERS(m4_flatten([ attr/xattr.h byteswap.h fcntl.h linux/blkzoned.h linux/falloc.h linux/fs.h linux/hdreg.h linux/limits.h linux/posix_acl.h linux/types.h linux/xattr.h mach/mach_time.h mntent.h scsi/sg.h stdlib.h string.h sys/acl.h sys/ioctl.h sys/syscall.h sys/mount.h sys/sysmacros.h sys/utsname.h sys/xattr.h unistd.h ])) # Checks for typedefs, structures, and compiler characteristics. AC_C_INLINE AC_TYPE_INT32_T AC_TYPE_INT8_T AC_TYPE_SIZE_T # Checks for library functions. AC_FUNC_GETMNTENT AC_CHECK_FUNCS_ONCE([ add_key fallocate fsetxattr fstat fstat64 getmntent keyctl llseek lseek64 memset setmntent ]) AS_IF([test "$ac_cv_header_byteswap_h" = "yes"], [AC_CHECK_DECLS([bswap_64],,,[#include ])]) dnl dnl Check to see if llseek() is declared in unistd.h. On some libc's dnl it is, and on others it isn't..... Thank you glibc developers.... dnl AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1, [Define to 1 if llseek declared in unistd.h])],, [#include ]) dnl dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files dnl are so convoluted that I can't tell whether it will always be defined, dnl and if it isn't defined while lseek64 is defined in the library, dnl disaster will strike. dnl dnl Warning! Use of --enable-gcc-wall may throw off this test. dnl dnl AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1, [Define to 1 if lseek64 declared in unistd.h])],, [#define _LARGEFILE_SOURCE #define _LARGEFILE64_SOURCE #include ]) dnl dnl Word sizes... dnl # AC_CANONICAL_HOST is needed to access the 'host_os' variable AC_CANONICAL_HOST build_linux=no build_windows=no build_mac=no # Detect the target system case "${host_os}" in linux*|uclinux*) build_linux=yes ;; cygwin*|mingw*) build_windows=yes ;; darwin*) build_mac=yes ;; *) AC_MSG_ERROR(["OS $host_os is not supported"]) ;; esac # Pass the conditionals to automake AM_CONDITIONAL([LINUX], [test "$build_linux" = "yes"]) AM_CONDITIONAL([WINDOWS], [test "$build_windows" = "yes"]) AM_CONDITIONAL([OSX], [test "$build_mac" = "yes"]) # Install directories #AC_PREFIX_DEFAULT([/usr]) #AC_SUBST([sbindir], [/sbin]) #AC_SUBST([sysconfdir], [/etc]) #AC_SUBST([localstatedir], [/var]) AC_ARG_WITH([root-libdir], [ --with-root-libdir=DIR override location for /lib/libf2fs.so], root_libdir=$withval, root_libdir=NONE)dnl if test "$root_libdir" = NONE ; then root_libdir="$libdir" fi AC_SUBST(root_libdir) AC_CONFIG_FILES([ Makefile man/Makefile lib/Makefile mkfs/Makefile fsck/Makefile tools/Makefile tools/sg_write_buffer/Makefile tools/f2fs_io/Makefile ]) AC_CHECK_MEMBER([struct blk_zone.capacity], [AC_DEFINE(HAVE_BLK_ZONE_REP_V2, [1], [report zones includes zone capacity])], [], [[#include ]]) # export library version info for mkfs/libf2fs_format_la AC_SUBST(FMT_CURRENT, 7) AC_SUBST(FMT_REVISION, 0) AC_SUBST(FMT_AGE, 0) # export library version info for lib/libf2fs_la AC_SUBST(LIBF2FS_CURRENT, 8) AC_SUBST(LIBF2FS_REVISION, 0) AC_SUBST(LIBF2FS_AGE, 0) AC_OUTPUT