]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blob - configure.ac
xfsprogs: Release v5.19.0-rc1
[thirdparty/xfsprogs-dev.git] / configure.ac
1 AC_INIT([xfsprogs],[5.19.0-rc1],[linux-xfs@vger.kernel.org])
2 AC_PREREQ([2.69])
3 AC_CONFIG_AUX_DIR([.])
4 AC_CONFIG_MACRO_DIR([m4])
5 AC_CONFIG_SRCDIR([include/libxfs.h])
6 AC_CONFIG_HEADERS([include/platform_defs.h])
7 AC_PREFIX_DEFAULT(/usr)
8
9 AC_PROG_INSTALL
10 LT_INIT
11
12 AC_PROG_CC
13 AC_ARG_VAR(BUILD_CC, [C compiler for build tools])
14 if test "${BUILD_CC+set}" != "set"; then
15 if test $cross_compiling = no; then
16 BUILD_CC="$CC"
17 else
18 AC_CHECK_PROGS(BUILD_CC, gcc cc)
19 fi
20 fi
21 AC_ARG_VAR(BUILD_CFLAGS, [C compiler flags for build tools])
22 if test "${BUILD_CFLAGS+set}" != "set"; then
23 if test $cross_compiling = no; then
24 BUILD_CFLAGS="$CFLAGS"
25 else
26 BUILD_CFLAGS="-g -O2"
27 fi
28 fi
29
30 AC_ARG_ENABLE(shared,
31 [ --enable-shared=[yes/no] Enable use of shared libraries [default=yes]],,
32 enable_shared=yes)
33 AC_SUBST(enable_shared)
34
35 AC_ARG_ENABLE(gettext,
36 [ --enable-gettext=[yes/no] Enable alternate language support [default=yes]],,
37 enable_gettext=yes)
38 AC_SUBST(enable_gettext)
39
40 AC_ARG_ENABLE(blkid,
41 [ --enable-blkid=[yes/no] Enable use of block device id library [default=yes]],,
42 enable_blkid=yes)
43 AC_SUBST(enable_blkid)
44
45 AC_ARG_ENABLE(editline,
46 [ --enable-editline=[yes/no] Enable editline command editing [default=no]],
47 test $enable_editline = yes && libeditline="-ledit",
48 enable_editline=no)
49 AC_SUBST(libeditline)
50 AC_SUBST(enable_editline)
51
52 AC_ARG_ENABLE(termcap,
53 [ --enable-termcap=[yes/no] Enable terminal capabilities library [default=no]],
54 test $enable_termcap = yes && libtermcap="-ltermcap",)
55 AC_SUBST(libtermcap)
56
57
58 AC_ARG_ENABLE(lib64,
59 [ --enable-lib64=[yes/no] Enable lib64 support [default=yes]],,
60 enable_lib64=yes)
61 AC_SUBST(enable_lib64)
62
63 AC_ARG_WITH([multiarch],
64 [ --with-multiarch=ARCH Specify the multiarch triplet],
65 multiarch=$withval)
66 AC_SUBST(multiarch)
67
68 AC_ARG_ENABLE(librt,
69 [ --enable-librt=[yes/no] Enable librt support [default=yes]],,
70 enable_librt=yes)
71 AC_SUBST(enable_librt)
72
73 # Enable UBSAN; set enable_ubsan=probe below to enable autoprobe.
74 AC_ARG_ENABLE(ubsan,
75 [ --enable-ubsan=[yes/no] Enable Undefined Behavior Sanitizer (UBSAN) [default=no]],,
76 enable_ubsan=no)
77 AC_SUBST(enable_ubsan)
78
79 # Enable ADDRSAN; set enable_addrsan=probe below to enable autoprobe.
80 AC_ARG_ENABLE(addrsan,
81 [ --enable-addrsan=[yes/no] Enable Address Sanitizer (ADDRSAN) [default=no]],,
82 enable_addrsan=no)
83 AC_SUBST(enable_addrsan)
84
85 # Enable THREADSAN; set enable_threadsan=probe to enable autoprobe.
86 AC_ARG_ENABLE(threadsan,
87 [ --enable-threadsan=[yes/no] Enable Thread Sanitizer (THREADSAN) [default=no]],,
88 enable_threadsan=no)
89 AC_SUBST(enable_threadsan)
90
91 AC_ARG_ENABLE(lto,
92 [ --enable-lto=[yes/no] Enable link time optimization (LTO) [default=no]],,
93 enable_lto=no)
94 AC_SUBST(enable_lto)
95
96 # Enable xfs_scrub build
97 AC_ARG_ENABLE(scrub,
98 [ --enable-scrub=[yes/no] Enable build of xfs_scrub utility [default=yes]],,
99 enable_scrub=yes)
100 AC_SUBST(enable_scrub)
101
102 # Enable libicu for xfs_scrubbing of malicious unicode sequences in names
103 AC_ARG_ENABLE(libicu,
104 [ --enable-libicu=[yes/no] Enable Unicode name scanning in xfs_scrub (libicu) [default=probe]],,
105 enable_libicu=probe)
106
107 #
108 # If the user specified a libdir ending in lib64 do not append another
109 # 64 to the library names.
110 #
111 base_libdir=`basename "$libdir"`
112 case $base_libdir in
113 lib64)
114 enable_lib64=no
115 esac
116
117 #
118 # If the user specified a multiarch path then disable lib64
119 #
120 test -n "$multiarch" && enable_lib64=no
121
122 #
123 # Some important tools should be installed into the root partitions.
124 #
125 # Check whether exec_prefix=/usr: and install them to /sbin in that
126 # case. If the user chooses a different prefix assume they just want
127 # a local install for testing and not a system install.
128 #
129 case $exec_prefix:$prefix in
130 NONE:NONE | NONE:/usr | /usr:*)
131 root_sbindir='/sbin'
132 root_libdir="/${base_libdir}"
133 ;;
134 *)
135 root_sbindir="${sbindir}"
136 root_libdir="${libdir}"
137 ;;
138 esac
139
140 AC_SUBST([root_sbindir])
141 AC_SUBST([root_libdir])
142
143 # Find localized files. Don't descend into any "dot directories"
144 # (like .git or .pc from quilt). Strangely, the "-print" argument
145 # to "find" is required, to avoid including such directories in the
146 # list.
147 LOCALIZED_FILES=""
148 for lfile in `find ${srcdir} -path './.??*' -prune -o -name '*.c' -type f -print || exit 1`; do
149 LOCALIZED_FILES="$LOCALIZED_FILES \$(TOPDIR)/$lfile"
150 done
151 AC_SUBST(LOCALIZED_FILES)
152
153 AC_PACKAGE_GLOBALS(xfsprogs)
154 AC_PACKAGE_UTILITIES(xfsprogs)
155 AC_MULTILIB($enable_lib64)
156 AC_MULTIARCH($multiarch)
157 AC_RT($enable_librt)
158
159 AC_PACKAGE_NEED_INI_H
160 AC_PACKAGE_NEED_LIBINIH
161
162 AC_PACKAGE_NEED_UUID_H
163 AC_PACKAGE_NEED_UUIDCOMPARE
164
165 AC_PACKAGE_NEED_PTHREAD_H
166 AC_PACKAGE_NEED_PTHREADMUTEXINIT
167
168 AC_PACKAGE_NEED_URCU_H
169 AC_PACKAGE_NEED_RCU_INIT
170
171 AC_HAVE_FADVISE
172 AC_HAVE_MADVISE
173 AC_HAVE_MINCORE
174 AC_HAVE_SENDFILE
175 AC_HAVE_GETMNTENT
176 AC_HAVE_FALLOCATE
177 AC_HAVE_FIEMAP
178 AC_HAVE_PWRITEV2
179 AC_HAVE_PREADV
180 AC_HAVE_COPY_FILE_RANGE
181 AC_HAVE_SYNC_FILE_RANGE
182 AC_HAVE_SYNCFS
183 AC_HAVE_MNTENT
184 AC_HAVE_FLS
185 AC_HAVE_READDIR
186 AC_HAVE_FSETXATTR
187 AC_HAVE_MREMAP
188 AC_NEED_INTERNAL_FSXATTR
189 AC_NEED_INTERNAL_FSCRYPT_ADD_KEY_ARG
190 AC_HAVE_GETFSMAP
191 AC_HAVE_STATFS_FLAGS
192 AC_HAVE_MAP_SYNC
193 AC_HAVE_DEVMAPPER
194 AC_HAVE_MALLINFO
195 AC_HAVE_MALLINFO2
196 AC_PACKAGE_WANT_ATTRIBUTES_H
197 AC_HAVE_LIBATTR
198 if test "$enable_scrub" = "yes"; then
199 if test "$enable_libicu" = "yes" || test "$enable_libicu" = "probe"; then
200 AC_HAVE_LIBICU
201 fi
202 if test "$enable_libicu" = "yes" && test "$have_libicu" != "yes"; then
203 AC_MSG_ERROR([libicu not found.])
204 fi
205 fi
206 AC_HAVE_OPENAT
207 AC_HAVE_FSTATAT
208 AC_HAVE_SG_IO
209 AC_HAVE_HDIO_GETGEO
210 AC_CONFIG_SYSTEMD_SYSTEM_UNIT_DIR
211 AC_CONFIG_CROND_DIR
212
213 if test "$enable_blkid" = yes; then
214 AC_HAVE_BLKID_TOPO
215 fi
216
217 if test "$enable_ubsan" = "yes" || test "$enable_ubsan" = "probe"; then
218 AC_PACKAGE_CHECK_UBSAN
219 fi
220 if test "$enable_ubsan" = "yes" && test "$have_ubsan" != "yes"; then
221 AC_MSG_ERROR([UBSAN not supported by compiler.])
222 fi
223
224 if test "$enable_addrsan" = "yes" || test "$enable_addrsan" = "probe"; then
225 AC_PACKAGE_CHECK_ADDRSAN
226 fi
227 if test "$enable_addrsan" = "yes" && test "$have_addrsan" != "yes"; then
228 AC_MSG_ERROR([ADDRSAN not supported by compiler.])
229 fi
230
231 if test "$enable_threadsan" = "yes" || test "$enable_threadsan" = "probe"; then
232 AC_PACKAGE_CHECK_THREADSAN
233 fi
234 if test "$enable_threadsan" = "yes" && test "$have_threadsan" != "yes"; then
235 AC_MSG_ERROR([THREADSAN not supported by compiler.])
236 fi
237
238 if test "$have_threadsan" = "yes" && test "$have_addrsan" = "yes"; then
239 AC_MSG_WARN([ADDRSAN and THREADSAN are not known to work together.])
240 fi
241
242 if test "$enable_lto" = "yes" || test "$enable_lto" = "probe"; then
243 AC_PACKAGE_CHECK_LTO
244 fi
245 if test "$enable_lto" = "yes" && test "$have_lto" != "yes"; then
246 AC_MSG_ERROR([LTO not supported by compiler.])
247 fi
248
249 AC_CHECK_SIZEOF([long])
250 AC_CHECK_SIZEOF([char *])
251 AC_TYPE_UMODE_T
252 AC_MANUAL_FORMAT
253 AC_HAVE_LIBURCU_ATOMIC64
254
255 AC_CONFIG_FILES([include/builddefs])
256 AC_OUTPUT