Use ext2fs_close2 API if available to avoid unnecessary fsync.
[febootstrap.git] / configure.ac
1 dnl febootstrap configure.ac
2 dnl (C) Copyright 2009-2011 Red Hat Inc.
3 dnl
4 dnl This program is free software; you can redistribute it and/or modify
5 dnl it under the terms of the GNU General Public License as published by
6 dnl the Free Software Foundation; either version 2 of the License, or
7 dnl (at your option) any later version.
8 dnl
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 dnl GNU General Public License for more details.
13 dnl
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program; if not, write to the Free Software
16 dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 dnl
18 dnl Written by Richard W.M. Jones <rjones@redhat.com>
19
20 AC_INIT(febootstrap,3.10)
21 AM_INIT_AUTOMAKE
22
23 dnl Check for basic C environment.
24 AC_PROG_CC_STDC
25 gl_EARLY
26
27 AC_PROG_INSTALL
28 AC_PROG_CPP
29
30 AC_C_PROTOTYPES
31 test "x$U" != "x" && AC_MSG_ERROR([Compiler not ANSI compliant])
32
33 AM_PROG_CC_C_O
34
35 dnl Check support for 64 bit file offsets.
36 AC_SYS_LARGEFILE
37
38 gl_INIT
39
40 # Define $(SED).
41 AC_PROG_SED
42
43 # OCaml and ocamlfind are required to compile.
44 AC_PROG_OCAML
45 if test "$OCAMLC" = "no"; then
46     AC_MSG_ERROR([You must install the OCaml compiler])
47 fi
48 AM_CONDITIONAL([HAVE_OCAMLOPT],[test "$OCAMLBEST" = "opt"])
49 AC_PROG_FINDLIB
50 if test "$OCAMLFIND" = "no"; then
51     AC_MSG_ERROR([You must install OCaml findlib (the ocamlfind command)])
52 fi
53
54 dnl Optional programs.
55 AC_CHECK_PROG(PERLDOC,[perldoc],[perldoc],[no])
56 if test "x$PERLDOC" = "xno" ; then
57   AC_MSG_WARN([perldoc not found - install perl to make man pages])
58 fi
59 AM_CONDITIONAL(HAVE_PERLDOC,[test "$perldoc" != "no"])
60
61 dnl For yum-rpm handler.
62 AC_CHECK_PROG(YUM,[yum],[yum],[no])
63 AC_CHECK_PROG(RPM,[rpm],[rpm],[no])
64 AC_CHECK_PROG(YUMDOWNLOADER,[yumdownloader],[yumdownloader],[no])
65
66 dnl For Debian handler.
67 AC_CHECK_PROG(APTITUDE,[aptitude],[aptitude],[no])
68 AC_CHECK_PROG(APT_CACHE,[apt-cache],[apt-cache],[no])
69 AC_CHECK_PROG(DPKG,[dpkg],[dpkg],[no])
70
71 dnl Include workaround for broken apt-cache depends --recurse (Ubuntu 10.04)?
72 if test "x$APT_CACHE" != "xno"; then
73     AC_MSG_CHECKING([if apt-cache depends --recurse is broken])
74     if ! $APT_CACHE depends --recurse -i bash | grep -q '^libc6$'; then
75         AC_MSG_RESULT([yes])
76         APT_CACHE_DEPENDS_RECURSE_BROKEN=true
77     else
78         AC_MSG_RESULT([no])
79         APT_CACHE_DEPENDS_RECURSE_BROKEN=false
80     fi
81 else
82     APT_CACHE_DEPENDS_RECURSE_BROKEN=false
83 fi
84 AC_SUBST([APT_CACHE_DEPENDS_RECURSE_BROKEN])
85
86 dnl For ArchLinux handler.
87 AC_CHECK_PROG(PACMAN,[pacman],[pacman],[no])
88
89 dnl Required programs, libraries.
90 AC_PATH_PROG([MKE2FS],[mke2fs],[no],
91              [$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR])
92 if test "x$MKE2FS" = "xno" ; then
93   AC_MSG_FAILURE([mke2fs program not found])
94 fi
95 AC_DEFINE_UNQUOTED([MKE2FS],["$MKE2FS"],
96   [Full path to the mke2fs program.])
97
98 old_LIBS="$LIBS"
99 AC_CHECK_LIB([com_err],[error_message],[],[
100   AC_MSG_FAILURE([com_err library not found (part of e2fsprogs)])
101 ])
102 LIBS="$old_LIBS"
103
104 old_LIBS="$LIBS"
105 AC_CHECK_LIB([ext2fs],[ext2fs_file_open2],[],[
106   AC_MSG_FAILURE([libext2fs library not found (part of e2fsprogs)])
107 ])
108 AC_CHECK_FUNCS([ext2fs_close2])
109 LIBS="$old_LIBS"
110
111 AC_CHECK_HEADER([ext2fs/ext2fs.h],[],[
112   AC_MSG_FAILURE([Header <ext2fs/ext2fs.h> not found (part of e2fsprogs)])
113 ])
114
115 AC_CHECK_PROG(GAWK,[gawk],[gawk],[no])
116 if test "x$GAWK" = "xno" ; then
117   AC_MSG_FAILURE([gawk (GNU awk) not found])
118 fi
119
120 AC_CONFIG_HEADERS([config.h])
121 AC_CONFIG_FILES([Makefile
122         debian/changelog
123         helper/Makefile
124         lib/Makefile
125         src/config.ml
126         src/Makefile])
127 AC_OUTPUT