1 AC_INIT([xfsprogs],[6.15.0],[linux-xfs@vger.kernel.org])
4 AC_CONFIG_MACRO_DIR([m4])
5 AC_CONFIG_SRCDIR([include/libxfs.h])
6 AC_PREFIX_DEFAULT(/usr)
7 AC_SUBST(PACKAGE_BUGREPORT)
9 # Default CFLAGS if nobody specifies anything else
10 if test "${CFLAGS+set}" != "set"; then
11 CFLAGS="-g -O2 -std=gnu11"
13 if test "${CXXFLAGS+set}" != "set"; then
14 CXXFLAGS="-g -O2 -std=gnu++11"
21 AC_ARG_VAR(BUILD_CC, [C compiler for build tools])
22 if test "${BUILD_CC+set}" != "set"; then
23 if test $cross_compiling = no; then
26 AC_CHECK_PROGS(BUILD_CC, gcc cc)
29 AC_ARG_VAR(BUILD_CFLAGS, [C compiler flags for build tools])
30 if test "${BUILD_CFLAGS+set}" != "set"; then
31 if test $cross_compiling = no; then
32 BUILD_CFLAGS="$CFLAGS"
34 BUILD_CFLAGS="-g -O2 -std=gnu11"
39 # no C++ build tools yet
42 [ --enable-shared=[yes/no] Enable use of shared libraries [default=yes]],,
44 AC_SUBST(enable_shared)
46 AC_ARG_ENABLE(gettext,
47 [ --enable-gettext=[yes/no] Enable alternate language support [default=yes]],,
49 AC_SUBST(enable_gettext)
51 AC_ARG_ENABLE(editline,
52 [ --enable-editline=[yes/no] Enable editline command editing [default=no]],
53 test $enable_editline = yes && libeditline="-ledit",
56 AC_SUBST(enable_editline)
58 AC_ARG_ENABLE(termcap,
59 [ --enable-termcap=[yes/no] Enable terminal capabilities library [default=no]],
60 test $enable_termcap = yes && libtermcap="-ltermcap",)
65 [ --enable-lib64=[yes/no] Enable lib64 support [default=yes]],,
67 AC_SUBST(enable_lib64)
69 AC_ARG_WITH([multiarch],
70 [ --with-multiarch=ARCH Specify the multiarch triplet],
75 [ --enable-librt=[yes/no] Enable librt support [default=yes]],,
77 AC_SUBST(enable_librt)
79 # Enable UBSAN; set enable_ubsan=probe below to enable autoprobe.
81 [ --enable-ubsan=[yes/no] Enable Undefined Behavior Sanitizer (UBSAN) [default=no]],,
83 AC_SUBST(enable_ubsan)
85 # Enable ADDRSAN; set enable_addrsan=probe below to enable autoprobe.
86 AC_ARG_ENABLE(addrsan,
87 [ --enable-addrsan=[yes/no] Enable Address Sanitizer (ADDRSAN) [default=no]],,
89 AC_SUBST(enable_addrsan)
91 # Enable THREADSAN; set enable_threadsan=probe to enable autoprobe.
92 AC_ARG_ENABLE(threadsan,
93 [ --enable-threadsan=[yes/no] Enable Thread Sanitizer (THREADSAN) [default=no]],,
95 AC_SUBST(enable_threadsan)
98 [ --enable-lto=[yes/no] Enable link time optimization (LTO) [default=no]],,
102 # Enable xfs_scrub build
104 [ --enable-scrub=[yes/no] Enable build of xfs_scrub utility [default=yes]],,
106 AC_SUBST(enable_scrub)
108 # Enable libicu for xfs_scrubbing of malicious unicode sequences in names
109 AC_ARG_ENABLE(libicu,
110 [ --enable-libicu=[yes/no] Enable Unicode name scanning in xfs_scrub (libicu) [default=probe]],,
114 # If the user specified a libdir ending in lib64 do not append another
115 # 64 to the library names.
117 base_libdir=`basename "$libdir"`
124 # If the user specified a multiarch path then disable lib64
126 test -n "$multiarch" && enable_lib64=no
128 # Find localized files. Don't descend into any "dot directories"
129 # (like .git or .pc from quilt). Strangely, the "-print" argument
130 # to "find" is required, to avoid including such directories in the
133 for lfile in `find ${srcdir} -path './.??*' -prune -o -name '*.c' -print -o -name '*.py.in' -print || exit 1`; do
134 LOCALIZED_FILES="$LOCALIZED_FILES \$(TOPDIR)/$lfile"
136 AC_SUBST(LOCALIZED_FILES)
138 AC_PACKAGE_GLOBALS(xfsprogs)
139 AC_PACKAGE_UTILITIES(xfsprogs)
140 AC_MULTILIB($enable_lib64)
141 AC_MULTIARCH($multiarch)
144 AC_PACKAGE_NEED_INI_H
145 AC_PACKAGE_NEED_LIBINIH
147 AC_PACKAGE_NEED_UUID_H
148 AC_PACKAGE_NEED_UUIDCOMPARE
150 AC_PACKAGE_NEED_PTHREAD_H
151 AC_PACKAGE_NEED_PTHREADMUTEXINIT
153 AC_PACKAGE_NEED_URCU_H
154 AC_PACKAGE_NEED_RCU_INIT
157 AC_HAVE_COPY_FILE_RANGE
159 AC_NEED_INTERNAL_FSXATTR
160 AC_NEED_INTERNAL_FSCRYPT_ADD_KEY_ARG
161 AC_NEED_INTERNAL_FSCRYPT_POLICY_V2
162 AC_NEED_INTERNAL_STATX
169 AC_HAVE_GETRANDOM_NONBLOCK
170 if test "$enable_scrub" = "yes"; then
171 if test "$enable_libicu" = "yes" || test "$enable_libicu" = "probe"; then
174 if test "$enable_libicu" = "yes" && test "$have_libicu" != "yes"; then
175 AC_MSG_ERROR([libicu not found.])
178 AC_CONFIG_SYSTEMD_SYSTEM_UNIT_DIR
180 AC_CONFIG_UDEV_RULE_DIR
182 AC_HAVE_TRIVIAL_AUTO_VAR_INIT
184 if test "$enable_ubsan" = "yes" || test "$enable_ubsan" = "probe"; then
185 AC_PACKAGE_CHECK_UBSAN
187 if test "$enable_ubsan" = "yes" && test "$have_ubsan" != "yes"; then
188 AC_MSG_ERROR([UBSAN not supported by compiler.])
191 if test "$enable_addrsan" = "yes" || test "$enable_addrsan" = "probe"; then
192 AC_PACKAGE_CHECK_ADDRSAN
194 if test "$enable_addrsan" = "yes" && test "$have_addrsan" != "yes"; then
195 AC_MSG_ERROR([ADDRSAN not supported by compiler.])
198 if test "$enable_threadsan" = "yes" || test "$enable_threadsan" = "probe"; then
199 AC_PACKAGE_CHECK_THREADSAN
201 if test "$enable_threadsan" = "yes" && test "$have_threadsan" != "yes"; then
202 AC_MSG_ERROR([THREADSAN not supported by compiler.])
205 if test "$have_threadsan" = "yes" && test "$have_addrsan" = "yes"; then
206 AC_MSG_WARN([ADDRSAN and THREADSAN are not known to work together.])
209 if test "$enable_lto" = "yes" || test "$enable_lto" = "probe"; then
212 if test "$enable_lto" = "yes" && test "$have_lto" != "yes"; then
213 AC_MSG_ERROR([LTO not supported by compiler.])
217 AC_HAVE_LIBURCU_ATOMIC64
219 AC_CONFIG_FILES([include/builddefs])