blob: d66cb737173a61319adb8f35178354d9a1e02cda [file] [log] [blame]
Jaegeuk Kim036d45e2012-10-26 21:56:34 +09001# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
4AC_PREREQ([2.68])
Sven-Göran Berghdd1ba072012-12-07 10:20:27 +09005
6# Get version from file VERSION
7m4_define([f2fs_tools_version], m4_esyscmd([sed -n '1p' VERSION | tr -d '\n']))
8m4_define([f2fs_tools_date], m4_esyscmd([sed -n '2p' VERSION | tr -d '\n']))
9m4_define([f2fs_tools_gitdate],
10 m4_esyscmd([git log -1 --pretty=format:%ci 2> /dev/null]))
11
12AC_INIT([F2FS tools], [f2fs_tools_version],
13 [linux-f2fs-devel@lists.sourceforge.net])
14
15AC_DEFINE([F2FS_TOOLS_VERSION], "f2fs_tools_version", [f2fs-tools version])
16AC_DEFINE([F2FS_MAJOR_VERSION], m4_bpatsubst(f2fs_tools_version,
17 [\([0-9]*\)\(\w\|\W\)*], [\1]),
18 [Major version for f2fs-tools])
19AC_DEFINE([F2FS_MINOR_VERSION], m4_bpatsubst(f2fs_tools_version,
20 [\([0-9]*\).\([0-9]*\)\(\w\|\W\)*], [\2]),
21 [Minor version for f2fs-tools])
22
23AC_CHECK_FILE(.git,
24 AC_DEFINE([F2FS_TOOLS_DATE],
25 "m4_bpatsubst(f2fs_tools_gitdate,
26 [\([0-9-]*\)\(\w\|\W\)*], [\1])",
27 [f2fs-tools date based on Git commits]),
28 AC_DEFINE([F2FS_TOOLS_DATE],
29 "f2fs_tools_date",
30 [f2fs-tools date based on Source releases]))
31
Jaegeuk Kime69e4372013-01-25 17:20:16 +090032AC_CONFIG_SRCDIR([config.h.in])
Jan Engelhardt8471b6a2012-12-12 03:59:16 +010033AC_CONFIG_HEADER([config.h])
Jaegeuk Kime69e4372013-01-25 17:20:16 +090034AC_CONFIG_MACRO_DIR([m4])
Jan Engelhardtec1a5da2012-12-12 03:55:42 +010035AC_CONFIG_AUX_DIR([build-aux])
Jan Engelhardt2a8c4b12012-12-12 03:57:11 +010036AM_INIT_AUTOMAKE([foreign tar-pax dist-xz])
Jaegeuk Kime69e4372013-01-25 17:20:16 +090037
Jan Engelhardtb1bce4d2012-12-12 03:52:24 +010038AC_CHECK_HEADERS_ONCE([
Mike Frysinger0903d1e2012-10-30 07:38:59 +090039 fcntl.h
40 mntent.h
41 stdlib.h
42 string.h
43 unistd.h
44 sys/ioctl.h
45 sys/mount.h
Jan Engelhardtb1bce4d2012-12-12 03:52:24 +010046])
Jaegeuk Kim036d45e2012-10-26 21:56:34 +090047
48# Checks for programs.
49AC_PROG_CC
Jaegeuk Kime69e4372013-01-25 17:20:16 +090050AC_PROG_LIBTOOL
51AC_PATH_PROG([LDCONFIG], [ldconfig],
52 [AC_MSG_ERROR([ldconfig not found])],
53 [$PATH:/sbin])
Jaegeuk Kim036d45e2012-10-26 21:56:34 +090054
55# Checks for libraries.
Jan Engelhardtfe2928a2012-12-12 03:53:28 +010056PKG_CHECK_MODULES([libuuid], [uuid])
Jaegeuk Kim036d45e2012-10-26 21:56:34 +090057
58# Checks for header files.
Sankalp Bose92a65a42014-07-23 03:28:14 +030059AC_CHECK_HEADERS([linux/fs.h fcntl.h mntent.h stdlib.h string.h \
Changman Lee9a5808c2014-11-04 18:10:54 +090060 sys/ioctl.h sys/mount.h unistd.h linux/falloc.h])
Jaegeuk Kim036d45e2012-10-26 21:56:34 +090061
62# Checks for typedefs, structures, and compiler characteristics.
63AC_C_INLINE
64AC_TYPE_INT32_T
65AC_TYPE_INT8_T
66AC_TYPE_SIZE_T
67
68# Checks for library functions.
69AC_FUNC_GETMNTENT
Jan Engelhardtb1bce4d2012-12-12 03:52:24 +010070AC_CHECK_FUNCS_ONCE([
Mike Frysinger0903d1e2012-10-30 07:38:59 +090071 getmntent
72 memset
Jan Engelhardtb1bce4d2012-12-12 03:52:24 +010073])
Jaegeuk Kim036d45e2012-10-26 21:56:34 +090074
Jaegeuk Kime69e4372013-01-25 17:20:16 +090075# Install directories
76AC_PREFIX_DEFAULT([/usr])
77AC_SUBST([sbindir], [/sbin])
78AC_SUBST([sysconfdir], [/etc])
79AC_SUBST([localstatedir], [/var])
Jan Engelhardtb1bce4d2012-12-12 03:52:24 +010080AC_CONFIG_FILES([
Mike Frysinger0903d1e2012-10-30 07:38:59 +090081 Makefile
82 man/Makefile
Jaegeuk Kime69e4372013-01-25 17:20:16 +090083 lib/Makefile
Mike Frysinger0903d1e2012-10-30 07:38:59 +090084 mkfs/Makefile
Changman Lee7f35b542013-07-04 17:11:32 +090085 fsck/Makefile
Changman Leea0a55672014-01-10 17:44:59 +090086 tools/Makefile
Jan Engelhardtb1bce4d2012-12-12 03:52:24 +010087])
Mike Frysinger0903d1e2012-10-30 07:38:59 +090088
Jaegeuk Kim036d45e2012-10-26 21:56:34 +090089AC_OUTPUT