~ubuntu-branches/ubuntu/utopic/util-linux/utopic-proposed

« back to all changes in this revision

Viewing changes to configure.ac

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2014-08-18 15:43:56 UTC
  • mfrom: (1.6.5) (4.1.16 experimental)
  • Revision ID: package-import@ubuntu.com-20140818154356-sqn436j3vndc62qb
Tags: 2.25-8ubuntu1
* Merge with Debian experimental.
  - This is now a non-ancient version. (LP: #1012081)
  - No longer uses /etc/blkid.tab by default, but a file in /run/.
    (LP: #1244595)
  - mkswap wipes fs signatures (LP: #1047666)
  - Fix "reatime" manpage typo (LP: #1047666)
  - wipefs properly cleans up fs signatures (LP: #1059872)
  Remaining Ubuntu changes:
  - Regularly trim SSDs automatically (core-1311-ssd-trimming):
    + Add debian/fstrim-all: Script to detect which mounted partitions
      need/support trimming, and call fstrim(8) on all of them.
      Install into /usr/sbin/.
    + Add debian/fstrim-all.8: Manpage for the above.
    + Add debian/fstrim-all.cron: Trivial shell script to call fstrim-all,
      so that admins can easily adjust/disable it. Installed as
      /etc/cron.weekly/fstrim.
  - Upstart support:
    + Add hwclock{-save}.upstart, and install them in debian/rules.
    + Drop initscripts dependency.
    + Drop debian/hwclock.rules and hwclock.default.
  - Add mountall-options.patch, see patch header.
  - uuid-runtime.postinst: Due to the way the uuidd account is created, it
    will get a uid/gid allocation for userns use. This isn't needed and is a
    waste of uid/gid so always clear uuidd from subuid/subgid.
* Drop /lib/init/fstab parsing fallback in mount. Patch does not apply at
  all any more, is specific to mountall (and thus should not be relied
  upon), and not very useful; all init systems, schroot, debootstrap etc.
  mount /sys, /proc/ and friends by themselves already.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
AC_INIT(util-linux,
 
1
AC_INIT([util-linux],
2
2
        m4_esyscmd([tools/git-version-gen .tarball-version]),
3
 
        kzak@redhat.com)
4
 
 
5
 
AC_PREREQ(2.60)
6
 
 
7
 
AC_CONFIG_AUX_DIR(config)
 
3
        [kzak@redhat.com],,
 
4
        [http://www.kernel.org/pub/linux/utils/util-linux/])
 
5
 
 
6
AC_PREREQ([2.60])
 
7
 
 
8
AC_CONFIG_AUX_DIR([config])
8
9
AC_CONFIG_MACRO_DIR([m4])
9
 
 
10
 
AM_INIT_AUTOMAKE([-Wall foreign 1.10 dist-bzip2 -Wno-portability])
 
10
dnl AC_USE_SYSTEM_EXTENSIONS must be called before any macros that run
 
11
dnl the compiler (like AC_PROG_LIBTOOL) to avoid autoconf errors.
 
12
AC_USE_SYSTEM_EXTENSIONS
 
13
AM_INIT_AUTOMAKE([-Wall foreign 1.10 tar-pax dist-bzip2 no-dist-gzip dist-xz -Wno-portability subdir-objects])
11
14
 
12
15
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
13
 
                            [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
14
 
 
15
 
AC_CONFIG_SRCDIR(mount/mount.c)
16
 
 
 
16
                            [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
 
17
 
 
18
AC_CONFIG_SRCDIR([sys-utils/mount.c])
17
19
AC_PREFIX_DEFAULT([/usr])
18
20
 
19
21
dnl version details from <major>.<minor>[-<suffix>]
20
22
PACKAGE_VERSION_MAJOR=$(echo $PACKAGE_VERSION | awk -F. '{print $1}')
21
23
PACKAGE_VERSION_MINOR=$(echo $PACKAGE_VERSION | awk -F. '{print $2}' \
22
 
                                              | awk -F- '{print $1}')
 
24
                                              | awk -F- '{print $1}')
23
25
PACKAGE_VERSION_RELEASE=0
24
26
 
25
27
dnl libblkid version
26
28
LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
27
 
LIBBLKID_DATE="19-Oct-2011"
 
29
LIBBLKID_DATE="22-Jul-2014"
28
30
LIBBLKID_LT_MAJOR=1
29
31
LIBBLKID_LT_MINOR=1
30
32
LIBBLKID_LT_MICRO=0
44
46
LIBMOUNT_LT_MICRO=0
45
47
LIBMOUNT_VERSION_INFO=`expr $LIBMOUNT_LT_MAJOR + $LIBMOUNT_LT_MINOR`:$LIBMOUNT_LT_MICRO:$LIBMOUNT_LT_MINOR
46
48
 
 
49
dnl libsmartcols version
 
50
LIBSMARTCOLS_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
 
51
LIBSMARTCOLS_LT_MAJOR=1
 
52
LIBSMARTCOLS_LT_MINOR=1
 
53
LIBSMARTCOLS_LT_MICRO=0
 
54
LIBSMARTCOLS_VERSION_INFO=`expr $LIBSMARTCOLS_LT_MAJOR + $LIBSMARTCOLS_LT_MINOR`:$LIBSMARTCOLS_LT_MICRO:$LIBSMARTCOLS_LT_MINOR
 
55
 
47
56
# Check whether exec_prefix=/usr:
48
 
case $exec_prefix:$prefix in
49
 
NONE:NONE | NONE:/usr | /usr:*)
50
 
  AC_MSG_NOTICE([Default --exec-prefix detected.])
51
 
  case $bindir in
52
 
  '${exec_prefix}/bin') bindir=/bin
53
 
    AC_MSG_NOTICE([  --bindir defaults to /bin]) ;;
54
 
  esac
55
 
  case $sbindir in
56
 
  '${exec_prefix}/sbin') sbindir=/sbin
57
 
    AC_MSG_NOTICE([  --sbindir defaults to /sbin]) ;;
58
 
  esac
59
 
  case $libdir in
60
 
  '${exec_prefix}/lib') libdir=/lib
61
 
    AC_MSG_NOTICE([  --libdir defaults to /lib]) ;;
62
 
  esac ;;
63
 
esac
 
57
AS_CASE([$exec_prefix:$prefix],
 
58
[NONE:NONE | NONE:/usr | /usr:*],
 
59
  [AC_MSG_NOTICE([Default --exec-prefix detected.])
 
60
   AS_CASE([$bindir],  ['${exec_prefix}/bin'],  [bindir=/bin;   AC_MSG_NOTICE([  --bindir defaults to /bin])  ])
 
61
   AS_CASE([$sbindir], ['${exec_prefix}/sbin'], [sbindir=/sbin; AC_MSG_NOTICE([  --sbindir defaults to /sbin])])
 
62
   AS_CASE([$libdir],  ['${exec_prefix}/lib'],  [libdir=/lib;   AC_MSG_NOTICE([  --libdir defaults to /lib])  ])
 
63
  ]
 
64
)
 
65
 
 
66
AS_CASE([$prefix:$localstatedir],
 
67
  [NONE:'${prefix}/var' | /usr:'${prefix}/var'],
 
68
    [localstatedir=/run
 
69
     AC_MSG_NOTICE([  --localstatedir defaults to /run])
 
70
    ]
 
71
)
 
72
AC_SUBST([localstatedir])
64
73
 
65
74
# The original default values of {bin,sbin,lib}dir
66
75
usrbin_execdir='${exec_prefix}/bin'
69
78
usrsbin_execdir='${exec_prefix}/sbin'
70
79
AC_SUBST([usrsbin_execdir])
71
80
 
72
 
usrlib_execdir='${libexecdir}'
 
81
AS_CASE([$libdir],
 
82
 ['${exec_prefix}/'* | '${prefix}/'* | /usr/*],
 
83
   [usrlib_execdir=$libdir],
 
84
 [usrlib_execdir='${libexecdir}']
 
85
)
73
86
AC_SUBST([usrlib_execdir])
 
87
AC_SUBST([libexecdir])
 
88
 
74
89
 
75
90
AM_PROG_CC_C_O
76
91
AC_PROG_CC_STDC
77
 
AC_GNU_SOURCE
78
92
AC_CANONICAL_HOST
79
93
AC_C_CONST
80
94
AC_C_VOLATILE
81
95
AC_C_BIGENDIAN
82
96
 
 
97
dnl Compiler warnings
 
98
UL_WARN_ADD([-fno-common])
 
99
UL_WARN_ADD([-Wall])
 
100
UL_WARN_ADD([-Werror=sequence-point])
 
101
UL_WARN_ADD([-Wextra])
 
102
UL_WARN_ADD([-Wmissing-declarations])
 
103
UL_WARN_ADD([-Wmissing-parameter-type])
 
104
UL_WARN_ADD([-Wmissing-prototypes])
 
105
UL_WARN_ADD([-Wno-missing-field-initializers])
 
106
UL_WARN_ADD([-Wredundant-decls])
 
107
UL_WARN_ADD([-Wsign-compare])
 
108
UL_WARN_ADD([-Wtype-limits])
 
109
UL_WARN_ADD([-Wuninitialized])
 
110
UL_WARN_ADD([-Wunused-but-set-parameter])
 
111
UL_WARN_ADD([-Wunused-but-set-variable])
 
112
UL_WARN_ADD([-Wunused-parameter])
 
113
UL_WARN_ADD([-Wunused-result])
 
114
UL_WARN_ADD([-Wunused-variable])
 
115
UL_WARN_ADD([-Wnested-externs])
 
116
UL_WARN_ADD([-Wpointer-arith])
 
117
UL_WARN_ADD([-Wstrict-prototypes])
 
118
UL_WARN_ADD([-Wformat-security])
 
119
AC_SUBST([WARN_CFLAGS])
 
120
 
 
121
UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
 
122
AC_SUBST([BSD_WARN_CFLAGS])
 
123
 
83
124
dnl libtool-2
84
125
LT_INIT
85
126
 
95
136
AC_PATH_PROG([XSLTPROC], [xsltproc])
96
137
 
97
138
linux_os=no
98
 
case ${host_os} in
99
 
  *linux*)
100
 
    linux_os=yes
101
 
    ;;
102
 
esac
103
 
AM_CONDITIONAL([LINUX], test "x$linux_os" = xyes)
 
139
AS_CASE([${host_os}], [*linux*], [linux_os=yes])
 
140
AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
104
141
 
105
 
AC_PATH_PROG(PERL, perl)
 
142
dnl define ARCH_<NAME> conditionals
 
143
UL_SET_ARCH([I86], [i?86-*])
 
144
UL_SET_ARCH([86_64], [x86_64*])
 
145
UL_SET_ARCH([IA64], [ia64*])
 
146
UL_SET_ARCH([S390], [s390*])
 
147
UL_SET_ARCH([SPARC], [sparc*])
 
148
UL_SET_ARCH([PPC], [ppc*|powerpc*])
 
149
UL_SET_ARCH([M68K], [m68*])
 
150
UL_SET_ARCH([MIPS], [mips*])
 
151
UL_SET_ARCH([HPPA], [hppa*])
106
152
 
107
153
AC_SYS_LARGEFILE
108
154
 
 
155
dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
 
156
AM_GNU_GETTEXT_VERSION([0.18.3])
 
157
AM_GNU_GETTEXT([external])
 
158
 
 
159
AS_IF([test -d "$srcdir/po"], [
 
160
  ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
 
161
], [
 
162
  ALL_LINGUAS="af am ar as be bg bn_IN bn ca cs cy da de el en_GB es et eu_ES fa fi fr gl gu he hi hr hu hy id is it ja ka kn ko ku lo lt lv mk ml mr ms my nb nl nn no nso or pa pl pt_BR pt ro ru si sk sl sq sr@Latn sr sv ta te th tr uk ur vi zh_CN zh_TW zu"
 
163
])
 
164
 
109
165
AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
110
166
#ifdef HAVE_LINUX_COMPILER_H
111
167
#include <linux/compiler.h>
112
168
#endif
113
169
])
114
 
AC_CHECK_HEADERS(
115
 
        [err.h \
 
170
AC_CHECK_HEADERS([ \
 
171
        asm/io.h \
 
172
        err.h \
116
173
        errno.h \
 
174
        fcntl.h \
117
175
        getopt.h \
 
176
        inttypes.h \
 
177
        linux/cdrom.h \
 
178
        linux/falloc.h \
 
179
        linux/watchdog.h \
118
180
        linux/fd.h \
 
181
        linux/raw.h \
119
182
        linux/tiocl.h \
120
183
        linux/version.h \
121
 
        linux/falloc.h \
122
 
        linux/cdrom.h \
123
 
        fcntl.h \
 
184
        linux/securebits.h \
124
185
        locale.h \
125
 
        stdint.h \
126
 
        inttypes.h \
 
186
        mntent.h \
 
187
        net/if.h \
 
188
        net/if_dl.h \
 
189
        netinet/in.h \
127
190
        paths.h \
128
191
        pty.h \
129
 
        mntent.h \
130
 
        net/if.h \
131
 
        net/if_dl.h \
132
 
        netinet/in.h \
133
 
        rpcsvc/nfs_prot.h \
 
192
        security/pam_misc.h \
 
193
        stdint.h \
 
194
        stdio_ext.h \
134
195
        stdlib.h \
135
 
        asm/io.h \
 
196
        endian.h \
 
197
        byteswap.h \
 
198
        sys/endian.h \
136
199
        sys/disk.h \
137
200
        sys/disklabel.h \
138
 
        sys/ioctl.h \
 
201
        sys/file.h \
 
202
        sys/io.h \
139
203
        sys/ioccom.h \
140
 
        sys/io.h \
141
 
        sys/time.h \
 
204
        sys/ioctl.h \
142
205
        sys/mkdev.h \
143
206
        sys/prctl.h \
144
207
        sys/queue.h \
 
208
        sys/resource.h \
 
209
        sys/socket.h \
145
210
        sys/sockio.h \
146
 
        sys/socket.h \
 
211
        sys/stat.h \
 
212
        sys/swap.h \
147
213
        sys/syscall.h \
148
 
        sys/file.h \
149
 
        sys/ioctl.h \
150
 
        sys/stat.h \
 
214
        sys/time.h \
 
215
        sys/ttydefaults.h \
151
216
        sys/types.h \
152
217
        sys/un.h \
153
 
        sys/user.h \
154
 
        sys/resource.h \
155
 
        unistd.h ])
156
 
 
157
 
AC_CHECK_HEADERS([linux/raw.h],
158
 
                 [AM_CONDITIONAL([HAVE_RAW], [true])],
159
 
                 [AM_CONDITIONAL([HAVE_RAW], [false])])
 
218
        unistd.h \
 
219
])
160
220
 
161
221
AC_CHECK_HEADERS([langinfo.h],
162
222
                [AM_CONDITIONAL([HAVE_LANGINFO], [true])],
163
223
                [AM_CONDITIONAL([HAVE_LANGINFO], [false])])
164
224
 
 
225
dnl Convert some ac_cv_header_* variables to have_*
 
226
dnl
 
227
have_linux_raw_h=$ac_cv_header_linux_raw_h
 
228
have_linux_securebits_h=$ac_cv_header_linux_securebits_h
 
229
have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
 
230
have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
 
231
 
 
232
 
 
233
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 
234
#include <time.h>
 
235
#include <unistd.h>
 
236
]], [[
 
237
    int a = 0;
 
238
    struct tm *tm = localtime(0);
 
239
    if (a == -1)  /* false */
 
240
        sleep(tm->tm_gmtoff);
 
241
]])],
 
242
[AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
 
243
])
 
244
 
 
245
AC_CHECK_MEMBERS([struct termios.c_line],,,
 
246
    [[#include <termios.h>]])
 
247
 
 
248
AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
 
249
        [#include <sys/stat.h>])
 
250
 
 
251
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
 
252
[[
 
253
#ifdef HAVE_SYS_SWAP_H
 
254
# include <sys/swap.h>
 
255
#endif
 
256
#include <unistd.h>
 
257
]],
 
258
[[swapon("/dev/null", 0);]])],
 
259
[AC_DEFINE([SWAPON_HAS_TWO_ARGS], [1], [Is swapon() declared with two parameters?])
 
260
],
 
261
[AC_MSG_NOTICE([Your libc thinks that swapon has 1 arg only.])
 
262
])
 
263
 
165
264
 
166
265
AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
167
266
 
168
267
AC_CHECK_DECL([llseek],
169
 
        [AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
 
268
        [AC_DEFINE([HAVE_LLSEEK_PROTOTYPE], [1],
170
269
                        [Define to 1 if have llseek prototype])],
171
270
        [],
172
271
        [#include <unistd.h>])
173
272
 
174
273
AC_CHECK_DECL([lseek64],
175
 
        [AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
 
274
        [AC_DEFINE([HAVE_LSEEK64_PROTOTYPE], [1],
176
275
                        [Define to 1 if have lseek64 prototype])],
177
276
        [],
178
277
        [#define _LARGEFILE_SOURCE
179
278
         #define _LARGEFILE64_SOURCE
180
279
         #include <unistd.h>])
181
280
 
182
 
AC_CHECK_FUNCS(
183
 
        [inet_aton \
 
281
AC_CHECK_DECL([environ],
 
282
        [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
 
283
                [Define to 1 if have **environ prototype])],
 
284
)
 
285
 
 
286
AC_CHECK_DECL([strsignal],
 
287
        [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
 
288
                [Define to 1 if have strsignal function prototype])],
 
289
)
 
290
 
 
291
AC_CHECK_FUNCS([ \
 
292
        __fpending \
 
293
        secure_getenv \
 
294
        __secure_getenv \
184
295
        err \
185
296
        errx \
 
297
        fsync \
186
298
        futimens \
187
 
        fstat64 \
188
 
        fsync \
189
299
        getdomainname \
190
 
        get_current_dir_name \
191
 
        usleep \
192
 
        nanosleep \
193
 
        personality \
194
 
        updwtmp \
 
300
        getdtablesize \
 
301
        getexecname \
 
302
        getmntinfo \
 
303
        getrlimit \
 
304
        inotify_init \
195
305
        jrand48 \
196
306
        lchown \
197
307
        llseek \
198
308
        lseek64 \
199
 
        strtoull \
200
 
        sysconf \
201
 
        getdtablesize \
202
 
        getexecname \
203
 
        getrlimit \
 
309
        mempcpy \
 
310
        nanosleep \
 
311
        open_memstream \
 
312
        personality \
 
313
        posix_fadvise \
 
314
        prctl \
 
315
        qsort_r \
 
316
        rpmatch \
 
317
        scandirat \
 
318
        setresgid \
 
319
        setresuid \
204
320
        sigqueue \
205
321
        srandom \
206
 
        setresgid \
207
 
        setresuid \
 
322
        strnchr \
208
323
        strndup \
209
324
        strnlen \
210
 
        strnchr \
211
 
        inotify_init \
212
 
        prctl \
213
 
        posix_fadvise \
214
 
        getmntinfo \
215
 
        __secure_getenv \
 
325
        strtoull \
 
326
        sysconf \
 
327
        sysinfo \
 
328
        updwtmp \
 
329
        usleep \
216
330
        warn \
217
331
        warnx \
218
 
        rpmatch])
 
332
])
219
333
AC_FUNC_FSEEKO
220
334
 
221
335
AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
222
 
 
223
336
AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
224
 
AM_CONDITIONAL([BUILD_HWCLOCK], test "x$have_io" = xyes -o "x$linux_os" = xyes)
225
337
 
226
 
AC_CHECK_MEMBER(struct sockaddr.sa_len,
227
 
                AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,[Define if struct sockaddr contains sa_len]),,
 
338
AC_CHECK_MEMBER([struct sockaddr.sa_len],
 
339
                AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
228
340
        [#include <sys/types.h>
229
341
         #include <sys/socket.h>])
230
342
 
231
343
SOCKET_LIBS=
232
 
AC_SEARCH_LIBS([gethostbyname], [nsl],
233
 
        [if test x"$ac_cv_search_gethostbyname" != x"none required"; then
234
 
                SOCKET_LIBS="$SOCKET_LIBS -lnsl";
235
 
         fi])
236
344
AC_SEARCH_LIBS([socket], [socket],
237
 
        [if test x"$ac_cv_search_socket" != x"none required"; then
238
 
                SOCKET_LIBS="$SOCKET_LIBS -lsocket";
239
 
        fi])
 
345
        [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
 
346
                [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
 
347
])
240
348
AC_SUBST([SOCKET_LIBS])
241
349
 
242
350
 
243
351
have_dirfd=no
244
352
AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
245
 
if test x"$have_dirfd" = xno ; then
 
353
AS_IF([test x"$have_dirfd" = xno], [
246
354
        AC_CHECK_DECLS([dirfd],
247
355
                [have_dirfd=yes], [have_dirfd=no],
248
356
                [#include <sys/types.h>
249
357
                 #include <dirent.h>])
250
 
fi
 
358
])
251
359
 
252
360
have_ddfd=no
253
 
if test x"$have_dirfd" = xno ; then
 
361
AS_IF([test x"$have_dirfd" = xno], [
254
362
        AC_CHECK_MEMBERS([DIR.dd_fd],
255
363
                [have_ddfd=yes], [have_ddfd=no],
256
364
                [#include <sys/types.h>
257
365
                 #include <dirent.h>])
258
 
fi
259
 
 
260
 
case "$have_dirfd:$have_ddfd" in
261
 
no:no)
262
 
  AC_MSG_ERROR([cannot find a method to get filedescriptor of directory]) ;;
263
 
esac
264
 
 
265
 
 
266
 
AC_MSG_CHECKING(whether program_invocation_short_name is defined)
267
 
AC_TRY_COMPILE([#include <argp.h>],
268
 
               [program_invocation_short_name = "test";],
269
 
               AC_DEFINE(HAVE_PROGRAM_INVOCATION_SHORT_NAME, 1,
270
 
                         [Define if program_invocation_short_name is defined])
271
 
               AC_MSG_RESULT(yes),
272
 
               AC_MSG_RESULT(no))
 
366
])
 
367
 
 
368
AS_CASE([$have_dirfd:$have_ddfd],
 
369
  [no:no],
 
370
    [AC_MSG_ERROR([cannot find a method to get filedescriptor of directory])]
 
371
)
 
372
 
 
373
 
 
374
AC_MSG_CHECKING([whether program_invocation_short_name is defined])
 
375
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 
376
        #include <argp.h>
 
377
]], [[
 
378
        program_invocation_short_name = "test";
 
379
]])], [
 
380
        AC_MSG_RESULT([yes])
 
381
        AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
 
382
                [Define if program_invocation_short_name is defined])
 
383
], [
 
384
        AC_MSG_RESULT([no])
 
385
])
 
386
 
273
387
 
274
388
AC_MSG_CHECKING([whether __progname is defined])
275
389
AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
276
 
           [if (*__progname == 0) return;])],
277
 
           AC_DEFINE(HAVE___PROGNAME, 1, [Define if __progname is defined])
278
 
           AC_MSG_RESULT(yes),
279
 
           AC_MSG_RESULT(no))
 
390
           [if (*__progname == 0) return;])],
 
391
           AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
 
392
           AC_MSG_RESULT([yes]),
 
393
           AC_MSG_RESULT([no]))
280
394
 
281
395
dnl Static compilation
282
 
m4_define([UTIL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid])
 
396
m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid])
283
397
 
284
398
AC_ARG_ENABLE([static-programs],
285
399
  [AS_HELP_STRING([--enable-static-programs=LIST],
286
400
      [link static the programs in LIST (comma-separated,
287
 
      supported for ]m4_defn([UTIL_STATIC_PROGRAMS])[)])])
 
401
      supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
288
402
 
289
 
case $enable_static_programs in
290
 
yes) enable_static_programs=m4_quote(UTIL_STATIC_PROGRAMS) ;;
291
 
no) enable_static_programs= ;;
292
 
esac
 
403
AS_CASE([$enable_static_programs],
 
404
  [yes],
 
405
    [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
 
406
  [no],
 
407
    [enable_static_programs=]
 
408
)
293
409
 
294
410
dnl Set all the individual AM_CONDITIONALs
295
 
m4_foreach([UTIL_PRG], m4_defn([UTIL_STATIC_PROGRAMS]), [
296
 
  case ,$enable_static_programs, in
297
 
   *,UTIL_PRG,*) static_[]UTIL_PRG=yes ;;
298
 
  esac
299
 
  AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UTIL_PRG),
300
 
    [test "x$static_[]UTIL_PRG" = xyes])
301
 
])
302
 
 
303
 
dnl UTIL_PKG_STATIC(VARIABLE, MODULES)
304
 
dnl ----------------------------------
305
 
AC_DEFUN([UTIL_PKG_STATIC], [
306
 
  if AC_RUN_LOG([pkg-config --exists --print-errors "$2"]); then
307
 
    $1=`pkg-config --libs --static "$2"`
308
 
  else
309
 
    AC_MSG_ERROR([pkg-config description of $2, needed for static build, is not available])
310
 
  fi
311
 
])
312
 
 
313
 
dnl UTIL_CHECK_LIB(LIBRARY, FUNCTION, [VARSUFFIX = $1]))
314
 
dnl The VARSUFFIX is optional and overrides the default behaviour. For example:
315
 
dnl     UTIL_CHECK_LIB(yyy, func, xxx) generates have_xxx and HAVE_LIBXXX
316
 
dnl     UTIL_CHECK_LIB(yyy, func)      generates have_yyy and HAVE_LIBYYY
317
 
dnl ---------------------------------
318
 
AC_DEFUN([UTIL_CHECK_LIB], [
319
 
  m4_define([suffix], m4_default([$3],$1))
320
 
  [have_]suffix=yes
321
 
  m4_ifdef([$3],
322
 
    [AC_CHECK_LIB([$1], [$2], [AC_DEFINE(AS_TR_CPP([HAVE_LIB]suffix), 1)], [[have_]suffix=no])],
323
 
    [AC_CHECK_LIB([$1], [$2], [], [[have_]suffix=no])])
324
 
  AM_CONDITIONAL(AS_TR_CPP([HAVE_]suffix), [test [$have_]suffix = yes])
325
 
])
326
 
 
327
 
dnl UTIL_SET_FLAGS(CFLAGS, CPPFLAGS, LDFLAGS)
328
 
AC_DEFUN([UTIL_SET_FLAGS], [
329
 
  old_CFLAGS="$CFLAGS"
330
 
  old_CPPFLAGS="$CPPFLAGS"
331
 
  old_LDFLAGS="$LDFLAGS"
332
 
  CFLAGS="$CFLAGS $1"
333
 
  CPPFLAGS="$CPPFLAGS $2"
334
 
  LDFLAGS="$LDFLAGS $3"
335
 
])
336
 
 
337
 
dnl UTIL_RESTORE_FLAGS()
338
 
AC_DEFUN([UTIL_RESTORE_FLAGS], [
339
 
  CFLAGS="$old_CFLAGS"
340
 
  CPPFLAGS="$old_CPPFLAGS"
341
 
  LDFLAGS="$old_LDFLAGS"
342
 
])
 
411
m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
 
412
  AS_CASE([,$enable_static_programs,],
 
413
   [*,UL_PRG,*], [static_[]UL_PRG=yes]
 
414
  )
 
415
  AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
 
416
  AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
 
417
    [test "x$static_[]UL_PRG" = xyes])
 
418
])
 
419
 
 
420
 
 
421
AC_ARG_ENABLE([all-programs],
 
422
  AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
 
423
  [], [enable_all_programs=undefined]
 
424
)
 
425
 
 
426
AS_CASE([$enable_all_programs],
 
427
  [yes], [AC_MSG_WARN([force to build all programs by default])
 
428
          ul_default_estate=check],
 
429
  [no],  [AC_MSG_WARN([disable all programs by default])
 
430
          ul_default_estate=no]
 
431
)
343
432
 
344
433
 
345
434
AX_CHECK_TLS
346
435
 
347
 
AC_ARG_ENABLE([mount],
348
 
  AS_HELP_STRING([--disable-mount], [do not build mount utilities]),
349
 
  [], enable_mount=check
350
 
)
351
 
build_mount=yes
352
 
if test "x$enable_mount" = xcheck; then
353
 
  if test "x$linux_os" = xno; then
354
 
    AC_MSG_WARN([non-linux system; do not build mount utilities])
355
 
    build_mount=no
356
 
  fi
357
 
elif test "x$enable_mount" = xno; then
358
 
    build_mount=no
359
 
fi
360
 
AM_CONDITIONAL(BUILD_MOUNT, test "x$build_mount" = xyes)
361
 
 
362
 
 
363
 
AC_ARG_ENABLE([fsck],
364
 
  AS_HELP_STRING([--disable-fsck], [do not build fsck]),
365
 
  [], enable_fsck=yes
366
 
)
367
 
AM_CONDITIONAL(BUILD_FSCK, test "x$enable_fsck" = xyes)
368
 
 
369
 
 
370
 
AC_ARG_ENABLE([partx],
371
 
  AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
372
 
  [], enable_partx=check
373
 
)
374
 
build_partx=yes
375
 
if test "x$enable_partx" = xcheck; then
376
 
  if test "x$linux_os" = xno; then
377
 
    AC_MSG_WARN([non-linux system; do not build partx utilities])
378
 
    build_partx=no
379
 
  fi
380
 
elif test "x$enable_partx" = xno; then
381
 
    build_partx=no
382
 
fi
383
 
AM_CONDITIONAL(BUILD_PARTX, test "x$build_partx" = xyes)
384
 
 
385
 
 
386
 
AC_ARG_ENABLE([libuuid],
387
 
  AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
388
 
  [], enable_libuuid=yes
389
 
)
390
 
AC_SUBST([LIBUUID_VERSION])
391
 
AC_SUBST([LIBUUID_VERSION_INFO])
392
 
AM_CONDITIONAL(BUILD_LIBUUID, test "x$enable_libuuid" = xyes)
393
 
 
394
 
if test "x$enable_libuuid" = xyes; then
395
 
  AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
396
 
else
397
 
  AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
398
 
fi
399
 
 
400
 
 
401
 
AC_ARG_ENABLE([uuidd],
402
 
  AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
403
 
  [], enable_uuidd=auto
404
 
)
405
 
 
406
 
case "$enable_uuidd:$enable_libuuid" in
407
 
yes:no)
408
 
  AC_MSG_ERROR([cannot enable uuidd when libuuid is disabled]) ;;
409
 
auto:*)
410
 
  enable_uuidd=$enable_libuuid ;;
411
 
esac
412
 
if test "x$enable_uuidd" = xyes; then
413
 
  AC_DEFINE(HAVE_UUIDD, 1, [Define to 1 if you want to use uuid daemon.])
414
 
fi
415
 
AM_CONDITIONAL(BUILD_UUIDD, test "x$enable_uuidd" = xyes)
416
 
 
417
 
 
418
 
AC_ARG_ENABLE([libblkid],
419
 
  AS_HELP_STRING([--disable-libblkid], [do not build libblkid and blkid utilities]),
420
 
  [], enable_libblkid=yes
421
 
)
422
 
AC_SUBST([LIBBLKID_DATE])
423
 
AC_SUBST([LIBBLKID_VERSION])
424
 
AC_SUBST([LIBBLKID_VERSION_INFO])
425
 
AM_CONDITIONAL(BUILD_LIBBLKID, test "x$enable_libblkid" = xyes)
426
 
AC_DEFINE_UNQUOTED(LIBBLKID_VERSION, "$LIBBLKID_VERSION", [libblkid version string])
427
 
AC_DEFINE_UNQUOTED(LIBBLKID_DATE, "$LIBBLKID_DATE", [libblkid date string])
428
 
 
429
 
if test "x$enable_libblkid" = xyes; then
430
 
  AC_DEFINE(HAVE_LIBBLKID, 1, [Define to 1 if you have the -lblkid.])
431
 
else
432
 
  if test "x$build_mount" = xyes; then
433
 
    AC_MSG_ERROR([libblkid is needed to build util-linux mount])
434
 
  fi
435
 
  if test "x$enable_fsck" = xyes; then
436
 
    AC_MSG_ERROR([libblkid is needed to build util-linux fsck])
437
 
  fi
438
 
  if test "x$build_partx" = xyes; then
439
 
    AC_MSG_ERROR([libblkid is needed to build util-linux partx])
440
 
  fi
441
 
fi
442
 
 
443
 
 
444
 
AC_ARG_ENABLE([libmount],
445
 
  AS_HELP_STRING([--disable-libmount], [do not build libmount]),
446
 
  [], enable_libmount=check
447
 
)
448
 
build_libmount=yes
449
 
if test "x$enable_libmount" = xcheck; then
450
 
  if test "x$linux_os" = xno; then
451
 
    AC_MSG_WARN([non-linux system; do not build libmount])
452
 
    build_libmount=no
453
 
  fi
454
 
elif test "x$enable_libmount" = xno; then
455
 
    build_libmount=no
456
 
fi
457
 
 
458
 
AC_DEFUN([UTIL_SCANF_TYPE_MODIFIER], [dnl
 
436
AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
459
437
# include <stdio.h>
460
438
int main()
461
439
{
466
444
                return 0;
467
445
        return 1;
468
446
}])
469
 
AC_MSG_CHECKING([needed scanf type modifiers])
470
 
AC_CACHE_VAL([scanf_cv_type_modifier],
471
 
  AC_RUN_IFELSE([AC_LANG_SOURCE([UTIL_SCANF_TYPE_MODIFIER(["%ms"])])],
472
 
    [scanf_cv_type_modifier=ms],
473
 
    AC_RUN_IFELSE([AC_LANG_SOURCE([UTIL_SCANF_TYPE_MODIFIER(["%as"])])],
474
 
      [scanf_cv_type_modifier=as],
475
 
      [scanf_cv_type_modifier=no]
 
447
 
 
448
AC_CACHE_VAL([scanf_cv_alloc_modifier],
 
449
  AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])],
 
450
    [scanf_cv_alloc_modifier=ms],
 
451
    AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])],
 
452
      [scanf_cv_alloc_modifier=as],
 
453
      [scanf_cv_alloc_modifier=no]
476
454
    )
 
455
    ,
 
456
 
 
457
    [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
 
458
     #include <stdio.h>
 
459
     #include <unistd.h>
 
460
 
 
461
     #ifdef __GLIBC__
 
462
 
 
463
     #if !(__GLIBC_PREREQ(2, 7))
 
464
     #error %m is not available
 
465
     #endif
 
466
 
 
467
     #elif defined(_POSIX_VERSION)
 
468
 
 
469
     #if _POSIX_VERSION < 200809L
 
470
     #error %m is not available
 
471
     #endif
 
472
 
 
473
     #else
 
474
     #error Your C-library is not supported.
 
475
     #endif
 
476
     ])],
 
477
    [scanf_cv_alloc_modifier=ms],
 
478
    [scanf_cv_alloc_modifier=no])]
477
479
  )
478
480
)
479
481
 
480
 
case "$scanf_cv_type_modifier" in
481
 
ms)
482
 
  AC_MSG_RESULT([(%ms) yes])
483
 
  AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier]) ;;
484
 
as)
485
 
  AC_MSG_RESULT([(%as) yes])
486
 
  AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier]) ;;
487
 
*)
488
 
  AC_MSG_RESULT([no])
489
 
  if "x$build_libmount" = xyes; then
490
 
    AC_MSG_WARN([%as or %ms for sscanf() not found; do not build libmount])
491
 
    build_libmount=no
492
 
  fi
493
 
esac
494
 
 
495
 
 
496
 
case "$enable_libblkid:$build_libmount" in
497
 
no:yes)
498
 
  AC_MSG_ERROR([cannot enable libmount when libblkid is disabled]) ;;
499
 
esac
500
 
 
501
 
AC_SUBST([LIBMOUNT_VERSION])
502
 
AC_SUBST([LIBMOUNT_VERSION_INFO])
503
 
AC_DEFINE_UNQUOTED(LIBMOUNT_VERSION, "$LIBMOUNT_VERSION", [libmount version string])
504
 
AM_CONDITIONAL(BUILD_LIBMOUNT, test "x$build_libmount" = xyes)
505
 
 
506
 
 
507
 
AC_ARG_ENABLE([libmount-mount],
508
 
  AS_HELP_STRING([--enable-libmount-mount], [link mount(8) with libmount (EXPERIMENTAL)]),
509
 
  [], enable_libmount_mount=no
510
 
)
511
 
 
512
 
case "$build_libmount:$enable_libmount_mount" in
513
 
no:yes)
514
 
  AC_MSG_ERROR([cannot link mount(8) with libmount when libmount is disabled]) ;;
515
 
yes:yes)
516
 
  AC_DEFINE(HAVE_LIBMOUNT_MOUNT, 1, [use libmount for mount(8)])
517
 
esac
518
 
AM_CONDITIONAL(BUILD_LIBMOUNT_MOUNT, test "x$enable_libmount_mount" = xyes)
519
 
 
520
 
 
521
 
AC_ARG_ENABLE([mountpoint],
522
 
  AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
523
 
  [], enable_mountpoint=check
524
 
)
525
 
 
526
 
build_mountpoint=yes
527
 
if test "x$enable_mountpoint" = xcheck; then
528
 
  if test "x$build_libmount" = xno; then
529
 
    AC_MSG_WARN([libmount disabled; do not build mountpoint])
530
 
    build_mountpoint=no
531
 
  fi
532
 
elif test "x$enable_mountpoint" = xno; then
533
 
    build_mountpoint=no
534
 
fi
535
 
 
536
 
case "$build_libmount:$build_mountpoint" in
537
 
no:yes)
538
 
  AC_MSG_ERROR([cannot enable mountpoint when libmount is disabled]) ;;
539
 
esac
540
 
AM_CONDITIONAL(BUILD_MOUNTPOINT, test "x$build_mountpoint" = xyes)
541
 
 
542
 
 
543
 
UTIL_CHECK_LIB(util, openpty)
544
 
UTIL_CHECK_LIB(termcap, tgetnum)
545
 
 
546
 
AM_GNU_GETTEXT_VERSION([0.14.1])
547
 
AM_GNU_GETTEXT([external])
548
 
if test -d "$srcdir/po"
549
 
then
550
 
    ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
551
 
else
552
 
    ALL_LINGUAS="af am ar as be bg bn_IN bn ca cs cy da de el en_GB es et eu_ES fa fi fr gl gu he hi hr hu hy id is it ja ka kn ko ku lo lt lv mk ml mr ms my nb nl nn no nso or pa pl pt_BR pt ro ru si sk sl sq sr@Latn sr sv ta te th tr uk ur vi zh_CN zh_TW zu"
553
 
fi
554
 
 
555
 
AC_ARG_WITH([ncurses],
556
 
  AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses, default is wide version
557
 
                                    (--without-ncurses disables all ncurses(w) support)]),
558
 
  [], with_ncurses=auto
559
 
)
560
 
AM_CONDITIONAL(HAVE_NCURSES, false)
561
 
 
562
 
if test "x$with_ncurses" != xno; then
563
 
  have_ncurses=no
564
 
  AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h], [
565
 
    if test "x$with_ncurses" = xauto; then
566
 
      UTIL_CHECK_LIB(ncursesw, initscr, ncurses)
567
 
      if test "x$have_ncurses" = xyes; then
568
 
        AC_CHECK_HEADERS([ncursesw/ncurses.h])
569
 
        NCURSES_LIBS="-lncursesw"
570
 
      fi
571
 
    fi
572
 
    if test "x$have_ncurses" = xno; then
573
 
      UTIL_CHECK_LIB(ncurses, initscr)
574
 
      if test "x$have_ncurses" = xyes; then
575
 
        NCURSES_LIBS="-lncurses"
576
 
      fi
577
 
    fi
578
 
  ])
579
 
  if test "x$have_ncurses" = xno; then
580
 
    AC_MSG_ERROR([ncurses or ncursesw selected, but library not found (--without-ncurses to disable)])
581
 
  fi
582
 
fi
583
 
AC_SUBST([NCURSES_LIBS])
584
 
 
585
 
 
586
 
AC_ARG_WITH([slang],
587
 
  AS_HELP_STRING([--with-slang], [compile cfdisk with slang]),
588
 
  [], with_slang=no
589
 
)
590
 
 
591
 
have_tinfo=no
592
 
AC_CHECK_LIB(tinfo, tgetent, [have_tinfo=yes])
593
 
AM_CONDITIONAL(HAVE_TINFO, test "x$have_tinfo" = xyes)
594
 
 
595
 
use_slang=no
596
 
if test "x$with_slang" = xyes; then
597
 
  AC_CHECK_HEADERS([slang.h slang/slang.h])
598
 
  AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
599
 
                   [use_slang=yes], [], [
600
 
#ifdef HAVE_SLANG_H
601
 
#include <slang.h>
602
 
#elif defined(HAVE_SLANG_SLANG_H)
603
 
#include <slang/slang.h>
604
 
#endif
 
482
AC_MSG_CHECKING([scanf string alloc modifiers])
 
483
AS_CASE([$scanf_cv_alloc_modifier],
 
484
  [ms],
 
485
    [AC_MSG_RESULT([(%ms) yes])
 
486
     AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier])
 
487
     have_scanf_alloc_modifier=yes],
 
488
  [as],
 
489
    [AC_MSG_RESULT([(%as) yes])
 
490
     have_scanf_alloc_modifier=yes
 
491
     AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])],
 
492
  [AC_MSG_RESULT([no])
 
493
   have_scanf_alloc_modifier=no]
 
494
)
 
495
 
 
496
UL_CHECK_LIB([util], [openpty])
 
497
UL_CHECK_LIB([termcap], [tgetnum])
 
498
 
 
499
AC_CHECK_TYPES([union semun], [], [], [[
 
500
#include <sys/sem.h>
 
501
]])
 
502
AC_CHECK_TYPES([loff_t])
 
503
 
 
504
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 
505
#include <wchar.h>
 
506
#include <wctype.h>
 
507
#include <stdio.h>
 
508
]], [[
 
509
  wchar_t wc;
 
510
  wint_t w;
 
511
  w = fgetwc(stdin);
 
512
  if (w == WEOF) exit(1);
 
513
  wc = w;
 
514
  fputwc(wc,stdout);
 
515
]])],
 
516
[AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
605
517
])
606
 
  if test "x$use_slang" = xno; then
607
 
    AC_MSG_ERROR([slang selected but slcurses.h not found])
608
 
  fi
609
 
fi
610
 
AM_CONDITIONAL(USE_SLANG, test "x$use_slang" = xyes)
611
 
 
612
 
 
613
 
AC_ARG_WITH([utempter],
614
 
  AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
615
 
  [], with_utempter=no
616
 
)
617
 
 
618
 
if test "x$with_utempter" = xyes; then
619
 
  UTIL_CHECK_LIB(utempter, utempter_add_record)
620
 
  if test "x$have_utempter" = xno; then
621
 
    AC_MSG_ERROR([utempter selected but libutempter not found])
622
 
  fi
623
 
else
624
 
  AM_CONDITIONAL(HAVE_UTEMPTER, false)
625
 
fi
 
518
 
 
519
AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
 
520
#include <sched.h>
 
521
]])
 
522
 
 
523
AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
 
524
 
 
525
AC_CHECK_TYPES([sighandler_t], [], [], [[
 
526
#include <signal.h>
 
527
]])
 
528
 
 
529
AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
 
530
#include <sched.h>
 
531
]])
626
532
 
627
533
# on Solaris, you can't mix and match standards, since we use c99
628
534
# aparently at this stage, XOPEN_SOURCE will conflict.  As workaround,
649
555
  ]], [[
650
556
  char *c = crypt("abc","pw");
651
557
  ]])],[
652
 
  AC_DEFINE(NEED_LIBCRYPT, 1, [Do we need -lcrypt?])
653
 
  need_libcrypt=yes
 
558
  AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?])
 
559
  have_libcrypt=yes
654
560
  ],[
655
561
  AC_MSG_ERROR([crypt() is not available])
656
562
  ])
657
563
])
658
 
 
659
 
AM_CONDITIONAL(NEED_LIBCRYPT, test "x$need_libcrypt" = xyes)
660
 
 
661
 
AC_CHECK_TYPES([union semun], [], [], [[
662
 
#include <sys/sem.h>
663
 
]])
664
 
AC_CHECK_TYPES(loff_t)
665
 
 
666
 
 
667
 
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
668
 
#include <wchar.h>
669
 
#include <wctype.h>
670
 
#include <stdio.h>
671
 
]], [[
672
 
  wchar_t wc;
673
 
  wint_t w;
674
 
  w = fgetwc(stdin);
675
 
  if (w == WEOF) exit(1);
676
 
  wc = w;
677
 
  fputwc(wc,stdout);
678
 
]])],
679
 
[AC_DEFINE(HAVE_WIDECHAR,1,Do we have wide character support?)
680
 
])
681
 
 
682
 
 
683
 
dnl UTIL_CHECK_SYSCALL(SYSCALL, FALLBACK, ...)
684
 
dnl Only specify FALLBACK if the SYSCALL
685
 
dnl you're checking for is a "newish" one
686
 
dnl -------------------------------------
687
 
AC_DEFUN([UTIL_CHECK_SYSCALL], [
688
 
  dnl This macro uses host_cpu.
689
 
  AC_REQUIRE([AC_CANONICAL_HOST])
690
 
  AC_CACHE_CHECK([for syscall $1],
691
 
    [util_cv_syscall_$1],
692
 
    [_UTIL_SYSCALL_CHECK_DECL([SYS_$1],
693
 
      [syscall=SYS_$1],
694
 
      [dnl Our libc failed use, so see if we can get the kernel
695
 
      dnl headers to play ball ...
696
 
      _UTIL_SYSCALL_CHECK_DECL([_NR_$1],
697
 
        [syscall=_NR_$1],
698
 
        [
699
 
          syscall=no
700
 
          if test "x$linux_os" = xyes; then
701
 
            case $host_cpu in
702
 
              _UTIL_CHECK_SYSCALL_FALLBACK(m4_shift($@))
703
 
            esac
704
 
          fi
705
 
        ])
706
 
      ])
707
 
    util_cv_syscall_$1=$syscall
 
564
AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
 
565
 
 
566
 
 
567
AC_ARG_WITH([selinux],
 
568
  AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
 
569
  [], [with_selinux=no]
 
570
)
 
571
 
 
572
AS_IF([test "x$with_selinux" = xno], [
 
573
  AM_CONDITIONAL([HAVE_SELINUX], [false])
 
574
], [
 
575
  PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
 
576
        [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
 
577
         UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
 
578
         AM_CONDITIONAL([HAVE_SELINUX], [true])
 
579
         have_selinux=yes],
 
580
        [have_selinux=no])
 
581
 
 
582
  AS_CASE([$with_selinux:$have_selinux],
 
583
    [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
 
584
  )
 
585
 
 
586
  AS_IF([test "x$have_selinux" = xyes], [
 
587
    UL_SET_FLAGS([], [], [$SELINUX_LIBS])
 
588
    # This function is missing in old libselinux 1.xx versions
 
589
    AC_CHECK_FUNCS([security_get_initial_context])
 
590
    UL_RESTORE_FLAGS
 
591
  ])
 
592
])
 
593
AC_SUBST([SELINUX_LIBS])
 
594
AC_SUBST([SELINUX_LIBS_STATIC])
 
595
 
 
596
AC_ARG_WITH([audit],
 
597
  AS_HELP_STRING([--with-audit], [compile with audit support]),
 
598
  [], [with_audit=no]
 
599
)
 
600
 
 
601
AS_IF([test "x$with_audit" = xno], [
 
602
  AM_CONDITIONAL([HAVE_AUDIT], [false])
 
603
], [
 
604
  UL_CHECK_LIB([audit], [audit_log_user_message])
 
605
  AS_CASE([$with_audit:$have_audit],
 
606
    [yes:no],
 
607
      [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
 
608
  )
 
609
])
 
610
 
 
611
AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
 
612
  [], [with_udev=auto]
 
613
)
 
614
 
 
615
AS_IF([test "x$with_udev" = xno], [
 
616
  AM_CONDITIONAL([HAVE_UDEV], [false])
 
617
], [
 
618
  UL_CHECK_LIB([udev], [udev_new])
 
619
  AS_CASE([$with_udev:$have_udev],
 
620
    [yes:no],
 
621
      [AC_MSG_ERROR([udev selected but libudev not found])]
 
622
  )
 
623
])
 
624
 
 
625
AC_ARG_WITH([ncurses],
 
626
  AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses, default is wide version
 
627
                                    (--without-ncurses disables all ncurses(w) support)]),
 
628
  [], [with_ncurses=auto]
 
629
)
 
630
AM_CONDITIONAL([HAVE_NCURSES], [false])
 
631
 
 
632
AS_IF([test "x$with_ncurses" != xno], [
 
633
  have_ncurses=no
 
634
 
 
635
  dnl First try to find the pkg-config module.
 
636
  PKG_CHECK_MODULES(NCURSESW, [ncursesw], [
 
637
    have_ncurses=yes
 
638
    NCURSES_LIBS=${NCURSESW_LIBS}
 
639
    NCURSES_CFLAGS=${NCURSESW_CFLAGS}
 
640
    AC_DEFINE([HAVE_LIBNCURSESW])
 
641
    CURSES_LIB_NAME="ncursesw"
 
642
  ], [
 
643
    PKG_CHECK_MODULES(NCURSES, [ncurses], [
 
644
      have_ncurses=yes
 
645
      AC_DEFINE([HAVE_LIBNCURSES])
 
646
      CURSES_LIB_NAME="ncursesw"
 
647
    ], [:])
 
648
  ])
 
649
 
 
650
  AS_IF([test "x$have_ncurses" = xyes], [
 
651
    dnl If that worked, setup the defines that the code expects.
 
652
    save_CPPFLAGS="$CPPFLAGS"
 
653
    CPPFLAGS="$CPPFLAGS $NCURSES_CFLAGS"
 
654
    AC_CHECK_HEADERS([ncurses.h])
 
655
    CPPFLAGS="$save_CPPFLAGS"
 
656
  ], [
 
657
    dnl If that failed, fall back to classic searching.
 
658
    AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h], [
 
659
      AS_IF([test "x$with_ncurses" = xauto], [
 
660
        UL_CHECK_LIB([ncursesw], [initscr], [ncurses])
 
661
        AS_IF([test "x$have_ncurses" = xyes], [
 
662
          AC_CHECK_HEADERS([ncursesw/ncurses.h])
 
663
          NCURSES_LIBS="-lncursesw"
 
664
          CURSES_LIB_NAME="ncursesw"
 
665
        ])
 
666
      ])
 
667
      AS_IF([test "x$have_ncurses" = xno], [
 
668
        UL_CHECK_LIB(ncurses, initscr)
 
669
        AS_IF([test "x$have_ncurses" = xyes], [
 
670
          NCURSES_LIBS="-lncurses"
 
671
          CURSES_LIB_NAME="ncurses"
 
672
        ])
 
673
      ])
708
674
    ])
709
 
  AM_CONDITIONAL([HAVE_]m4_toupper($1), [test "x$util_cv_syscall_$1" != xno])
710
 
  case $util_cv_syscall_$1 in #(
711
 
  no) AC_MSG_WARN([Unable to detect syscall $1.]) ;;
712
 
  SYS_*) ;;
713
 
  *) AC_DEFINE_UNQUOTED([SYS_$1], [$util_cv_syscall_$1],
714
 
        [Fallback syscall number for $1]) ;;
715
 
  esac
716
 
])
717
 
 
718
 
dnl _UTIL_SYSCALL_CHECK_DECL(SYMBOL, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
719
 
dnl Check if SYMBOL is declared, using the headers needed for syscall checks.
720
 
dnl -------------------------------------
721
 
m4_define([_UTIL_SYSCALL_CHECK_DECL],
722
 
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
723
 
#include <sys/syscall.h>
724
 
#include <unistd.h>
725
 
]], [[int test = $1;]])],
726
 
[$2], [$3])
727
 
])
728
 
 
729
 
dnl _UTIL_CHECK_SYSCALL_FALLBACK(PATTERN, VALUE, ...)
730
 
dnl Helper macro to create the body for the above `case'.
731
 
dnl -------------------------------------
732
 
m4_define([_UTIL_CHECK_SYSCALL_FALLBACK],
733
 
[m4_ifval([$2],
734
 
  [#(
735
 
  $1) syscall="$2" ;;dnl
736
 
  _UTIL_CHECK_SYSCALL_FALLBACK(m4_shiftn(2, $@))])dnl
737
 
])
738
 
 
739
 
 
740
 
UTIL_CHECK_SYSCALL([pivot_root])
741
 
UTIL_CHECK_SYSCALL([sched_getaffinity])
742
 
UTIL_CHECK_SYSCALL([ioprio_set],
743
 
  [alpha],    [442],
744
 
  [i*86],     [289],
745
 
  [ia64*],    [1274],
746
 
  [powerpc*], [273],
747
 
  [s390*],    [282],
748
 
  [sparc*],   [196],
749
 
  [sh*],      [288],
750
 
  [x86_64*],  [251])
751
 
UTIL_CHECK_SYSCALL([ioprio_get],
752
 
  [alpha],    [443],
753
 
  [i*86],     [290],
754
 
  [ia64*],    [1275],
755
 
  [powerpc*], [274],
756
 
  [s390*],    [283],
757
 
  [sparc*],   [218],
758
 
  [sh*],      [289],
759
 
  [x86_64*],  [252])
760
 
 
761
 
dnl fallocate could be available as libc function or as syscall only
762
 
UTIL_CHECK_SYSCALL([fallocate])
763
 
 
764
 
dnl check for valid fallocate() function
765
 
dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
766
 
dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
767
 
dnl and program can't be linked.
768
 
dnl AC_CHECK_FUNC can't catch such errors since it's redefining
769
 
dnl function prototype.
770
 
AC_MSG_CHECKING([for valid fallocate() function])
771
 
AC_LINK_IFELSE([
772
 
AC_LANG_PROGRAM([[
 
675
  ])
 
676
 
 
677
  AS_IF([test "x$have_ncurses" = xno], [
 
678
    AC_MSG_ERROR([ncurses or ncursesw selected, but library not found (--without-ncurses to disable)])
 
679
  ])
 
680
])
 
681
AC_SUBST([NCURSES_CFLAGS])
 
682
AC_SUBST([NCURSES_LIBS])
 
683
 
 
684
 
 
685
AC_ARG_WITH([slang],
 
686
  AS_HELP_STRING([--with-slang], [compile cfdisk with slang]),
 
687
  [], [with_slang=no]
 
688
)
 
689
have_slang=no
 
690
AS_IF([test "x$with_slang" = xyes], [
 
691
  AC_CHECK_HEADERS([slang.h slang/slang.h])
 
692
  AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
 
693
                   [have_slang=yes], [], [
 
694
#ifdef HAVE_SLANG_H
 
695
#include <slang.h>
 
696
#elif defined(HAVE_SLANG_SLANG_H)
 
697
#include <slang/slang.h>
 
698
#endif
 
699
])
 
700
  AS_IF([test "x$have_slang" = xno], [
 
701
    AC_MSG_ERROR([slang selected but slcurses.h not found])],
 
702
    [CURSES_LIB_NAME=slang
 
703
  ])
 
704
])
 
705
AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
 
706
 
 
707
 
 
708
AS_IF([test "x$have_slang" = xyes -o "x$have_ncurses" = xyes], [
 
709
        AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
 
710
                     AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
 
711
                               [Define if curses library has the use_default_colors().])
 
712
        ])
 
713
        AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
 
714
                     AC_DEFINE(HAVE_RESIZETERM, 1,
 
715
                               [Define if curses library has the resizeterm().])
 
716
        ])
 
717
])
 
718
 
 
719
 
 
720
dnl Try pkg-config for libtinfo
 
721
PKG_CHECK_MODULES(TINFO, [tinfo], [have_tinfo=yes], [
 
722
    dnl If that failed, fall back to classic searching.
 
723
    AC_CHECK_LIB([tinfo], [tgetent], [
 
724
       have_tinfo=yes
 
725
       TINFO_LIBS="-ltinfo"
 
726
       TINFO_CFLAGS=""])
 
727
])
 
728
AC_SUBST([TINFO_LIBS])
 
729
AC_SUBST([TINFO_CFLAGS])
 
730
AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes])
 
731
 
 
732
 
 
733
AC_ARG_WITH([utempter],
 
734
  AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
 
735
  [], [with_utempter=no]
 
736
)
 
737
 
 
738
AS_IF([test "x$with_utempter" = xyes], [
 
739
  UL_CHECK_LIB([utempter], [utempter_add_record])
 
740
  AS_IF([test "x$have_utempter" = xno], [
 
741
    AC_MSG_ERROR([utempter selected but libutempter not found])
 
742
  ])
 
743
], [
 
744
  AM_CONDITIONAL([HAVE_UTEMPTER], [false])
 
745
])
 
746
 
 
747
 
 
748
 
 
749
dnl
 
750
dnl libuuid
 
751
dnl
 
752
AC_ARG_ENABLE([libuuid],
 
753
  AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
 
754
  [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
 
755
)
 
756
UL_BUILD_INIT([libuuid])
 
757
AC_SUBST([LIBUUID_VERSION])
 
758
AC_SUBST([LIBUUID_VERSION_INFO])
 
759
AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
 
760
 
 
761
AS_IF([test "x$build_libuuid" = xyes], [
 
762
  AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
 
763
])
 
764
 
 
765
dnl
 
766
dnl libblkid
 
767
dnl
 
768
AC_ARG_ENABLE([libblkid],
 
769
  AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
 
770
  [], [UL_DEFAULT_ENABLE([libblkid], [yes])]
 
771
)
 
772
UL_BUILD_INIT([libblkid])
 
773
AC_SUBST([LIBBLKID_DATE])
 
774
AC_SUBST([LIBBLKID_VERSION])
 
775
AC_SUBST([LIBBLKID_VERSION_INFO])
 
776
AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
 
777
AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
 
778
AS_IF([test "x$build_libblkid" = xyes], [
 
779
  AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
 
780
])
 
781
AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
 
782
AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes])
 
783
 
 
784
dnl
 
785
dnl libmount
 
786
dnl
 
787
AC_ARG_ENABLE([libmount],
 
788
  AS_HELP_STRING([--disable-libmount], [do not build libmount]),
 
789
  [], [UL_DEFAULT_ENABLE([libmount], [check])]
 
790
)
 
791
UL_BUILD_INIT([libmount])
 
792
UL_REQUIRES_LINUX([libmount])
 
793
UL_REQUIRES_BUILD([libmount], [libblkid])
 
794
UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
 
795
AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
 
796
AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
 
797
 
 
798
AC_SUBST([LIBMOUNT_VERSION])
 
799
AC_SUBST([LIBMOUNT_VERSION_INFO])
 
800
AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
 
801
 
 
802
 
 
803
dnl
 
804
dnl libsmartcols
 
805
dnl
 
806
AC_ARG_ENABLE([libsmartcols],
 
807
  AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
 
808
  [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
 
809
)
 
810
UL_BUILD_INIT([libsmartcols])
 
811
AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
 
812
AM_CONDITIONAL([BUILD_LIBSMARTCOLS_TESTS], [test "x$build_libsmartcols" = xyes -a "x$enable_static" = xyes])
 
813
 
 
814
AC_SUBST([LIBSMARTCOLS_VERSION])
 
815
AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
 
816
AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
 
817
 
 
818
 
 
819
dnl
 
820
dnl libfdisk is enabled at all times if possible
 
821
dnl
 
822
UL_BUILD_INIT([libfdisk], [check])
 
823
UL_REQUIRES_BUILD([libfdisk], [libuuid])
 
824
UL_REQUIRES_BUILD([libfdisk], [libsmartcols])
 
825
AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
 
826
 
 
827
UL_BUILD_INIT([fdisk], [check])
 
828
UL_REQUIRES_BUILD([fdisk], [libfdisk])
 
829
AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
 
830
 
 
831
 
 
832
UL_BUILD_INIT([sfdisk], [check])
 
833
UL_EXCLUDE_ARCH([sfdisk], [sparc*])
 
834
AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
 
835
 
 
836
 
 
837
UL_BUILD_INIT([cfdisk], [check])
 
838
UL_REQUIRES_BUILD([cfdisk], [libfdisk])
 
839
UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
 
840
UL_REQUIRES_HAVE([cfdisk], [ncurses,slang], [ncurses or slang library])
 
841
AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
 
842
 
 
843
 
 
844
AC_ARG_ENABLE([mount],
 
845
  AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
 
846
  [], [UL_DEFAULT_ENABLE([mount], [check])]
 
847
)
 
848
UL_BUILD_INIT([mount])
 
849
UL_REQUIRES_BUILD([mount], [libmount])
 
850
AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
 
851
 
 
852
 
 
853
AC_ARG_ENABLE([losetup],
 
854
  AS_HELP_STRING([--disable-losetup], [do not build losetup]),
 
855
  [], [UL_DEFAULT_ENABLE([losetup], [check])]
 
856
)
 
857
UL_BUILD_INIT([losetup])
 
858
UL_REQUIRES_LINUX([losetup])
 
859
UL_REQUIRES_BUILD([losetup], [libsmartcols])
 
860
AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
 
861
 
 
862
 
 
863
AC_ARG_ENABLE([fsck],
 
864
  AS_HELP_STRING([--disable-fsck], [do not build fsck]),
 
865
  [], [UL_DEFAULT_ENABLE([fsck], [check])]
 
866
)
 
867
UL_BUILD_INIT([fsck])
 
868
UL_REQUIRES_BUILD([fsck], [libmount])
 
869
AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
 
870
 
 
871
 
 
872
AC_ARG_ENABLE([partx],
 
873
  AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
 
874
  [], [UL_DEFAULT_ENABLE([partx], [check])]
 
875
)
 
876
UL_BUILD_INIT([partx])
 
877
UL_REQUIRES_LINUX([partx])
 
878
UL_REQUIRES_BUILD([partx], [libblkid])
 
879
UL_REQUIRES_BUILD([partx], [libsmartcols])
 
880
AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
 
881
 
 
882
 
 
883
AC_ARG_ENABLE([uuidd],
 
884
  AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
 
885
  [], [UL_DEFAULT_ENABLE([uuidd], [check])]
 
886
)
 
887
UL_BUILD_INIT([uuidd])
 
888
UL_REQUIRES_BUILD([uuidd], [libuuid])
 
889
AS_IF([test "x$build_uuidd" = xyes], [
 
890
  AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
 
891
])
 
892
AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
 
893
 
 
894
 
 
895
UL_BUILD_INIT([uuidgen], [check])
 
896
UL_REQUIRES_BUILD([uuidgen], [libuuid])
 
897
AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
 
898
 
 
899
UL_BUILD_INIT([blkid], [check])
 
900
UL_REQUIRES_BUILD([blkid], [libblkid])
 
901
AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
 
902
 
 
903
UL_BUILD_INIT([findfs], [check])
 
904
UL_REQUIRES_BUILD([findfs], [libblkid])
 
905
AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
 
906
 
 
907
UL_BUILD_INIT([wipefs], [check])
 
908
UL_REQUIRES_BUILD([wipefs], [libblkid])
 
909
AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
 
910
 
 
911
UL_BUILD_INIT([findmnt], [check])
 
912
UL_REQUIRES_BUILD([findmnt], [libmount])
 
913
UL_REQUIRES_BUILD([findmnt], [libsmartcols])
 
914
AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
 
915
 
 
916
 
 
917
AC_ARG_ENABLE([mountpoint],
 
918
  AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
 
919
  [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
 
920
)
 
921
UL_BUILD_INIT([mountpoint])
 
922
UL_REQUIRES_BUILD([mountpoint], [libmount])
 
923
AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
 
924
 
 
925
 
 
926
AC_ARG_ENABLE([fallocate],
 
927
  AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
 
928
  [], [UL_DEFAULT_ENABLE([fallocate], [check])]
 
929
)
 
930
UL_BUILD_INIT([fallocate])
 
931
UL_REQUIRES_LINUX([fallocate])
 
932
UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
 
933
AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
 
934
 
 
935
AS_IF([test "x$build_fallocate" = xyes], [
 
936
  dnl check for valid fallocate() function
 
937
  dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
 
938
  dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
 
939
  dnl and program can't be linked.
 
940
  dnl AC_CHECK_FUNC can't catch such errors since it's redefining
 
941
  dnl function prototype.
 
942
  AC_MSG_CHECKING([for valid fallocate() function])
 
943
  AC_LINK_IFELSE([AC_LANG_PROGRAM([[
773
944
#ifdef HAVE_UNISTD_H
774
945
# include <unistd.h>
775
946
#endif
784
955
#endif
785
956
]],[[
786
957
   long ret;
787
 
 
788
958
   ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
789
 
 
790
959
   if (ret != 0) {
791
960
      return 1;
792
961
   }
793
962
   ]])],[
794
 
AC_MSG_RESULT([yes])
795
 
AC_DEFINE(HAVE_FALLOCATE,1,[Have valid fallocate() function])],[
796
 
AC_MSG_RESULT([no])])
797
 
 
798
 
dnl unshare could be available as libc function or as syscall only
799
 
UTIL_CHECK_SYSCALL([unshare])
 
963
  AC_MSG_RESULT([yes])
 
964
  AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
 
965
  AC_MSG_RESULT([no])])
 
966
])
 
967
 
 
968
 
 
969
AC_ARG_ENABLE([unshare],
 
970
  AS_HELP_STRING([--disable-unshare], [do not build unshare]),
 
971
  [], [UL_DEFAULT_ENABLE([unshare], [check])]
 
972
)
 
973
UL_BUILD_INIT([unshare])
 
974
UL_REQUIRES_LINUX([unshare])
 
975
UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
 
976
AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
800
977
AC_CHECK_FUNCS([unshare])
801
978
 
802
 
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
803
 
#include <time.h>
804
 
#include <unistd.h>
805
 
]], [[
806
 
    int a = 0;
807
 
    struct tm *tm = localtime(0);
808
 
    if (a == -1)  /* false */
809
 
        sleep(tm->tm_gmtoff);
810
 
]])],
811
 
[AC_DEFINE(HAVE_TM_GMTOFF,1,[Does struct tm have a field tm_gmtoff?])
812
 
])
813
 
 
814
 
AC_CHECK_MEMBERS([struct termios.c_line],,,
815
 
    [[#include <termios.h>]])
816
 
 
817
 
AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
818
 
        [#include <sys/stat.h>])
819
 
 
820
 
AC_CHECK_DECLS([
821
 
 UNAME26,
822
 
 ADDR_NO_RANDOMIZE,
823
 
 FDPIC_FUNCPTRS,
824
 
 MMAP_PAGE_ZERO,
825
 
 ADDR_COMPAT_LAYOUT,
826
 
 READ_IMPLIES_EXEC,
827
 
 ADDR_LIMIT_32BIT,
828
 
 WHOLE_SECONDS,
829
 
 STICKY_TIMEOUTS,
830
 
 ADDR_LIMIT_3GB], [], [], [#include <linux/personality.h>])
831
 
 
832
 
AC_CHECK_HEADERS([sys/swap.h])
833
 
 
834
 
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
835
 
[[
836
 
#ifdef HAVE_SYS_SWAP_H
837
 
# include <sys/swap.h>
838
 
#endif
839
 
#include <unistd.h>
840
 
]],
841
 
[[swapon("/dev/null", 0);]])],
842
 
[AC_DEFINE(SWAPON_HAS_TWO_ARGS, 1, [Is swapon() declared with two parameters?])
843
 
],
844
 
[AC_MSG_NOTICE([Your libc thinks that swapon has 1 arg only.])
845
 
])
846
 
 
847
 
 
848
 
AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
849
 
#include <sched.h>
850
 
]])
851
 
 
852
 
AM_CONDITIONAL(HAVE_CPU_SET_T, [test "x$have_cpu_set_t" = xyes])
853
 
 
854
 
AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
855
 
#include <sched.h>
856
 
]])
857
 
 
858
 
 
859
 
dnl UTIL_SET_ARCH(ARCHNAME, PATTERN)
860
 
dnl ---------------------------------
861
 
AC_DEFUN([UTIL_SET_ARCH], [
862
 
  cpu_$1=false
863
 
  case "$host" in
864
 
   $2) cpu_$1=true ;;
865
 
  esac
866
 
  AM_CONDITIONAL(AS_TR_CPP(ARCH_$1), [test "x$cpu_$1" = xtrue])
867
 
])
868
 
 
869
 
UTIL_SET_ARCH(I86, i?86-*)
870
 
UTIL_SET_ARCH(86_64, x86_64*)
871
 
UTIL_SET_ARCH(IA64, ia64*)
872
 
UTIL_SET_ARCH(S390, s390*)
873
 
UTIL_SET_ARCH(SPARC, sparc*)
874
 
UTIL_SET_ARCH(PPC, ppc*|powerpc*)
875
 
UTIL_SET_ARCH(M68K, m68*)
876
 
UTIL_SET_ARCH(MIPS, mips*)
877
 
UTIL_SET_ARCH(HPPA, hppa*)
878
 
 
879
 
AC_ARG_ENABLE([arch],
880
 
  AS_HELP_STRING([--enable-arch], [do build arch]),
881
 
  [], enable_arch=no
882
 
)
883
 
AM_CONDITIONAL(BUILD_ARCH, test "x$enable_arch" = xyes)
884
 
 
885
 
AC_ARG_ENABLE([ddate],
886
 
  AS_HELP_STRING([--enable-ddate], [do build ddate]),
887
 
  [], enable_ddate=no
888
 
)
889
 
AM_CONDITIONAL(BUILD_DDATE, test "x$enable_ddate" = xyes)
 
979
AC_ARG_ENABLE([nsenter],
 
980
  AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
 
981
  [], [UL_DEFAULT_ENABLE([nsenter], [check])]
 
982
)
 
983
UL_BUILD_INIT([nsenter])
 
984
UL_REQUIRES_LINUX([nsenter])
 
985
UL_REQUIRES_SYSCALL_CHECK([nsenter], [UL_CHECK_SYSCALL([setns])], [setns])
 
986
AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
 
987
AC_CHECK_FUNCS([setns])
 
988
 
 
989
dnl setpriv depends on libcap-ng.  It would be possible to build
 
990
dnl a version of setpriv with limited functionality without libcap-ng,
 
991
dnl but this isn't currently supported.
 
992
UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
 
993
AC_ARG_ENABLE([setpriv],
 
994
  AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
 
995
  [], [UL_DEFAULT_ENABLE([setpriv], [check])]
 
996
)
 
997
UL_BUILD_INIT([setpriv])
 
998
UL_REQUIRES_LINUX([setpriv])
 
999
UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [securebits.h header file])
 
1000
UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
 
1001
AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
 
1002
 
 
1003
 
 
1004
AC_ARG_ENABLE([eject],
 
1005
  AS_HELP_STRING([--disable-eject], [do not build eject]),
 
1006
  [], [UL_DEFAULT_ENABLE([eject], [check])]
 
1007
)
 
1008
UL_BUILD_INIT([eject])
 
1009
UL_REQUIRES_LINUX([eject])
 
1010
UL_REQUIRES_BUILD([eject], [libmount])
 
1011
AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
 
1012
 
890
1013
 
891
1014
AC_ARG_ENABLE([agetty],
892
1015
  AS_HELP_STRING([--disable-agetty], [do not build agetty]),
893
 
  [], enable_agetty=yes
 
1016
  [], [UL_DEFAULT_ENABLE([agetty], [yes])]
894
1017
)
895
 
AM_CONDITIONAL(BUILD_AGETTY, test "x$enable_agetty" = xyes)
 
1018
UL_BUILD_INIT([agetty])
 
1019
AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
 
1020
 
896
1021
 
897
1022
AC_ARG_ENABLE([cramfs],
898
1023
  AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
899
 
  [], enable_cramfs=check
900
 
)
901
 
 
902
 
if test "x$enable_cramfs" = xno; then
903
 
  build_cramfs=no
904
 
else
905
 
  build_cramfs=yes
906
 
  dnl Trick: leave the third parameter empty to get the default action.
907
 
  AC_CHECK_LIB(z, crc32, [], build_cramfs=no)
908
 
  case $enable_cramfs:$build_cramfs in
909
 
  yes:no) AC_MSG_ERROR([cramfs selected but libz not found]);;
910
 
  esac
911
 
fi
912
 
AM_CONDITIONAL(BUILD_CRAMFS, test "x$build_cramfs" = xyes)
913
 
 
914
 
build_lsblk=yes
915
 
if test "x$have_openat" = xno; then
916
 
  AC_MSG_WARN([openat() function not found; do not build lsblk])
917
 
  build_lsblk=no
918
 
elif test "x$linux_os" = xno; then
919
 
  AC_MSG_WARN([non-linux system; do not build lsblk])
920
 
  build_lsblk=no
921
 
fi
922
 
AM_CONDITIONAL(BUILD_LSBLK, test "x$build_lsblk" = xyes)
 
1024
  [], [UL_DEFAULT_ENABLE([cramfs], [check])]
 
1025
)
 
1026
UL_BUILD_INIT([cramfs])
 
1027
AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
 
1028
UL_REQUIRES_HAVE([cramfs], [z], [z library])
 
1029
AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
 
1030
 
 
1031
 
 
1032
AC_ARG_ENABLE([bfs],
 
1033
  AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
 
1034
  [], [UL_DEFAULT_ENABLE([bfs], [yes])]
 
1035
)
 
1036
UL_BUILD_INIT([bfs])
 
1037
AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
 
1038
 
 
1039
 
 
1040
AC_ARG_ENABLE([minix],
 
1041
  AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
 
1042
  [], [UL_DEFAULT_ENABLE([minix], [yes])]
 
1043
)
 
1044
UL_BUILD_INIT([minix])
 
1045
AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
 
1046
 
 
1047
 
 
1048
AC_ARG_ENABLE([fdformat],
 
1049
  AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
 
1050
  [], [UL_DEFAULT_ENABLE([fdformat], [check])]
 
1051
)
 
1052
UL_BUILD_INIT([fdformat])
 
1053
UL_REQUIRES_LINUX([fdformat])
 
1054
AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
 
1055
 
 
1056
 
 
1057
AC_ARG_ENABLE([hwclock],
 
1058
  AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
 
1059
  [], [UL_DEFAULT_ENABLE([hwclock], [check])]
 
1060
)
 
1061
have_linuxdummy=$linux_os
 
1062
 
 
1063
UL_BUILD_INIT([hwclock])
 
1064
UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
 
1065
AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
 
1066
 
 
1067
 
 
1068
UL_BUILD_INIT([mkfs], [yes])
 
1069
AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
 
1070
 
 
1071
UL_BUILD_INIT([isosize], [yes])
 
1072
AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
 
1073
 
 
1074
 
 
1075
UL_BUILD_INIT([fstrim], [check])
 
1076
UL_REQUIRES_LINUX([fstrim])
 
1077
UL_REQUIRES_BUILD([fstrim], [libmount])
 
1078
AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
 
1079
 
 
1080
 
 
1081
UL_BUILD_INIT([swapon], [check])
 
1082
UL_REQUIRES_LINUX([swapon])
 
1083
UL_REQUIRES_BUILD([swapon], [libblkid])
 
1084
UL_REQUIRES_BUILD([swapon], [libmount])
 
1085
UL_REQUIRES_BUILD([swapon], [libsmartcols])
 
1086
AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
 
1087
 
 
1088
 
 
1089
UL_BUILD_INIT([lsblk], [check])
 
1090
UL_REQUIRES_LINUX([lsblk])
 
1091
UL_REQUIRES_BUILD([lsblk], [libblkid])
 
1092
UL_REQUIRES_BUILD([lsblk], [libmount])
 
1093
UL_REQUIRES_BUILD([lsblk], [libsmartcols])
 
1094
AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
 
1095
 
 
1096
 
 
1097
UL_BUILD_INIT([lscpu], [check])
 
1098
UL_REQUIRES_LINUX([lscpu])
 
1099
UL_REQUIRES_BUILD([lscpu], [libsmartcols])
 
1100
UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
 
1101
AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
 
1102
 
 
1103
 
 
1104
UL_BUILD_INIT([lslogins], [check])
 
1105
UL_REQUIRES_BUILD([lslogins], [libsmartcols])
 
1106
AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
 
1107
 
 
1108
 
 
1109
UL_BUILD_INIT([chcpu], [check])
 
1110
UL_REQUIRES_LINUX([chcpu])
 
1111
UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
 
1112
AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
 
1113
 
 
1114
 
 
1115
AC_ARG_ENABLE([wdctl],
 
1116
  AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
 
1117
  [], [UL_DEFAULT_ENABLE([wdctl], [check])]
 
1118
)
 
1119
UL_BUILD_INIT([wdctl])
 
1120
UL_REQUIRES_LINUX([wdctl])
 
1121
UL_REQUIRES_BUILD([wdctl], [libsmartcols])
 
1122
UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
 
1123
AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
 
1124
 
 
1125
 
 
1126
UL_BUILD_INIT([swaplabel], [check])
 
1127
UL_REQUIRES_BUILD([swaplabel], [libblkid])
 
1128
AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
 
1129
 
 
1130
 
 
1131
UL_BUILD_INIT([mkswap], [yes])
 
1132
AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
 
1133
AS_IF([test "x$build_mkswap" = xyes -a "x$build_libuuid" != xyes], [
 
1134
  AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
 
1135
])
 
1136
 
 
1137
UL_BUILD_INIT([cal], [yes])
 
1138
AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
 
1139
 
 
1140
UL_BUILD_INIT([logger], [yes])
 
1141
AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
 
1142
 
 
1143
UL_BUILD_INIT([look], [yes])
 
1144
AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
 
1145
 
 
1146
UL_BUILD_INIT([mcookie], [yes])
 
1147
AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
 
1148
 
 
1149
UL_BUILD_INIT([namei], [yes])
 
1150
AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
 
1151
 
 
1152
UL_BUILD_INIT([whereis], [yes])
 
1153
AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
 
1154
 
 
1155
UL_BUILD_INIT([getopt], [yes])
 
1156
AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
 
1157
 
 
1158
 
 
1159
UL_BUILD_INIT([blockdev], [check])
 
1160
UL_REQUIRES_LINUX([blockdev])
 
1161
AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
 
1162
 
 
1163
 
 
1164
UL_BUILD_INIT([prlimit], [check])
 
1165
UL_REQUIRES_LINUX([prlimit])
 
1166
UL_REQUIRES_BUILD([prlimit], [libsmartcols])
 
1167
UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
 
1168
AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
 
1169
AS_IF([test "x$build_prlimit" = xyes], [
 
1170
  AC_CHECK_FUNCS([prlimit])
 
1171
])
 
1172
 
 
1173
 
 
1174
UL_BUILD_INIT([lslocks], [check])
 
1175
UL_REQUIRES_LINUX([lslocks])
 
1176
UL_REQUIRES_BUILD([lslocks], [libmount])
 
1177
UL_REQUIRES_BUILD([lslocks], [libsmartcols])
 
1178
AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
 
1179
 
923
1180
 
924
1181
AC_ARG_ENABLE([switch_root],
925
1182
  AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
926
 
  [], enable_switch_root=check
 
1183
  [], [UL_DEFAULT_ENABLE([switch_root], [check])]
927
1184
)
928
 
if test "x$enable_switch_root" = xno; then
929
 
  build_switch_root=no
930
 
else
931
 
  build_switch_root=yes
932
 
  case $enable_switch_root:$linux_os in
933
 
  yes:no) AC_MSG_ERROR([switch_root selected for non-linux system]);;
934
 
  check:no) AC_MSG_WARN([non-linux system; do not build switch_root])
935
 
            build_switch_root=no;;
936
 
  esac
937
 
  if test "x$build_switch_root" = xyes; then
938
 
    case $enable_switch_root:$have_openat in
939
 
    yes:no) AC_MSG_ERROR([switch_root selected but openat() function not found]);;
940
 
    check:no) AC_MSG_WARN([openat() function not found; do not build switch_root])
941
 
              build_switch_root=no;;
942
 
    esac
943
 
  fi
944
 
fi
945
 
AM_CONDITIONAL(BUILD_SWITCH_ROOT, test "x$build_switch_root" = xyes)
 
1185
UL_BUILD_INIT([switch_root])
 
1186
UL_REQUIRES_LINUX([switch_root])
 
1187
UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
 
1188
AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
946
1189
 
947
1190
 
948
1191
AC_ARG_ENABLE([pivot_root],
949
1192
  AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
950
 
  [], enable_pivot_root=check
951
 
)
952
 
if test "x$enable_pivot_root" = xno; then
953
 
  build_pivot_root=no
954
 
else
955
 
  build_pivot_root=yes
956
 
  case $enable_pivot_root:$linux_os in
957
 
  yes:no) AC_MSG_ERROR([pivot_root selected for non-linux system]);;
958
 
  check:no) AC_MSG_WARN([non-linux system; do not build pivot_root])
959
 
            build_pivot_root=no;;
960
 
  esac
961
 
  if test "x$build_pivot_root" = xyes; then
962
 
    case $enable_pivot_root:$util_cv_syscall_pivot_root in
963
 
    yes:no) AC_MSG_ERROR([pivot_root selected but pivot_root syscall not found]);;
964
 
    check:no) AC_MSG_WARN([pivot_root syscall not found; do not build pivot_root])
965
 
              build_pivot_root=no;;
966
 
    esac
967
 
  fi
968
 
fi
969
 
AM_CONDITIONAL(BUILD_PIVOT_ROOT, test "x$build_pivot_root" = xyes)
970
 
 
971
 
 
972
 
AC_ARG_ENABLE([fallocate],
973
 
  AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
974
 
  [], enable_fallocate=check
975
 
)
976
 
if test "x$enable_fallocate" = xno; then
977
 
  build_fallocate=no
978
 
else
979
 
  build_fallocate=yes
980
 
  case $enable_fallocate:$linux_os in
981
 
  yes:no) AC_MSG_ERROR([fallocate selected for non-linux system]);;
982
 
  check:no) AC_MSG_WARN([non-linux system; do not build fallocate])
983
 
            build_fallocate=no;;
984
 
  esac
985
 
  if test "x$build_fallocate" = xyes; then
986
 
    case $enable_fallocate:$util_cv_syscall_fallocate in
987
 
    yes:no) AC_MSG_ERROR([fallocate selected but fallocate syscall not found]);;
988
 
    check:no) AC_MSG_WARN([fallocate syscall not found; do not build fallocate])
989
 
              build_fallocate=no;;
990
 
    esac
991
 
  fi
992
 
fi
993
 
AM_CONDITIONAL(BUILD_FALLOCATE, test "x$build_fallocate" = xyes)
994
 
 
995
 
 
996
 
AC_ARG_ENABLE([unshare],
997
 
  AS_HELP_STRING([--disable-unshare], [do not build unshare]),
998
 
  [], enable_unshare=check
999
 
)
1000
 
if test "x$enable_unshare" = xno; then
1001
 
  build_unshare=no
1002
 
else
1003
 
  build_unshare=yes
1004
 
  case $enable_unshare:$linux_os in
1005
 
  yes:no) AC_MSG_ERROR([unshare selected for non-linux system]);;
1006
 
  check:no) AC_MSG_WARN([non-linux system; do not build unshare])
1007
 
            build_unshare=no;;
1008
 
  esac
1009
 
  if test "x$build_unshare" = xyes; then
1010
 
    case $enable_unshare:$util_cv_syscall_unshare in
1011
 
    yes:no) AC_MSG_ERROR([unshare selected but unshare syscall not found]);;
1012
 
    check:no) AC_MSG_WARN([unshare syscall not found; do not build unshare])
1013
 
              build_unshare=no;;
1014
 
    esac
1015
 
  fi
1016
 
fi
1017
 
AM_CONDITIONAL(BUILD_UNSHARE, test "x$build_unshare" = xyes)
1018
 
 
1019
 
 
1020
 
 
1021
 
AC_ARG_ENABLE([elvtune],
1022
 
  AS_HELP_STRING([--enable-elvtune], [build elvtune (only works with 2.2 and 2.4 kernels)]),
1023
 
  [], enable_elvtune=no
1024
 
)
1025
 
AM_CONDITIONAL(BUILD_ELVTUNE, test "x$enable_elvtune" = xyes)
 
1193
  [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
 
1194
)
 
1195
UL_BUILD_INIT([pivot_root])
 
1196
UL_REQUIRES_LINUX([switch_root])
 
1197
UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
 
1198
AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
 
1199
 
 
1200
 
 
1201
UL_BUILD_INIT([flock], [yes])
 
1202
AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
 
1203
 
 
1204
UL_BUILD_INIT([ipcmk], [yes])
 
1205
AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
 
1206
 
 
1207
UL_BUILD_INIT([ipcrm], [yes])
 
1208
AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
 
1209
 
 
1210
UL_BUILD_INIT([ipcs], [yes])
 
1211
AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
 
1212
 
 
1213
UL_BUILD_INIT([renice], [yes])
 
1214
AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
 
1215
 
 
1216
UL_BUILD_INIT([setsid], [yes])
 
1217
AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
 
1218
 
 
1219
UL_BUILD_INIT([readprofile], [check])
 
1220
UL_REQUIRES_LINUX([readprofile])
 
1221
AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
 
1222
 
 
1223
UL_BUILD_INIT([dmesg], [check])
 
1224
UL_REQUIRES_LINUX([dmesg])
 
1225
AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
 
1226
 
 
1227
UL_BUILD_INIT([ctrlaltdel], [check])
 
1228
UL_REQUIRES_LINUX([ctrlaltdel])
 
1229
AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
 
1230
 
 
1231
UL_BUILD_INIT([fsfreeze], [check])
 
1232
UL_REQUIRES_LINUX([fsfreeze])
 
1233
AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
 
1234
 
 
1235
UL_BUILD_INIT([blkdiscard], [check])
 
1236
UL_REQUIRES_LINUX([blkdiscard])
 
1237
AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
 
1238
 
 
1239
UL_BUILD_INIT([ldattach], [check])
 
1240
UL_REQUIRES_LINUX([ldattach])
 
1241
AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
 
1242
 
 
1243
UL_BUILD_INIT([rtcwake], [check])
 
1244
UL_REQUIRES_LINUX([rtcwake])
 
1245
AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
 
1246
 
 
1247
UL_BUILD_INIT([setarch], [check])
 
1248
UL_REQUIRES_LINUX([setarch])
 
1249
AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
 
1250
 
 
1251
UL_BUILD_INIT([script], [yes])
 
1252
AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
 
1253
 
 
1254
UL_BUILD_INIT([scriptreplay], [yes])
 
1255
AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
 
1256
 
 
1257
UL_BUILD_INIT([col], [yes])
 
1258
AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
 
1259
 
 
1260
UL_BUILD_INIT([colcrt], [yes])
 
1261
AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
 
1262
 
 
1263
UL_BUILD_INIT([colrm], [yes])
 
1264
AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
 
1265
 
 
1266
UL_BUILD_INIT([column], [yes])
 
1267
AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
 
1268
 
 
1269
UL_BUILD_INIT([hexdump], [yes])
 
1270
AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
 
1271
 
 
1272
UL_BUILD_INIT([rev], [yes])
 
1273
AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
 
1274
 
 
1275
UL_BUILD_INIT([tailf], [yes])
 
1276
AM_CONDITIONAL([BUILD_TAILF], [test "x$build_tailf" = xyes])
 
1277
 
 
1278
 
 
1279
AC_ARG_ENABLE([tunelp],
 
1280
  AS_HELP_STRING([--enable-tunelp], [build tunelp]),
 
1281
  [], [UL_DEFAULT_ENABLE([tunelp], [no])]
 
1282
)
 
1283
UL_BUILD_INIT([tunelp])
 
1284
UL_REQUIRES_LINUX([tunelp])
 
1285
AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
 
1286
 
1026
1287
 
1027
1288
AC_ARG_ENABLE([kill],
1028
 
  AS_HELP_STRING([--enable-kill], [build kill]),
1029
 
  [], enable_kill=no
1030
 
)
1031
 
AM_CONDITIONAL(BUILD_KILL, test "x$enable_kill" = xyes)
 
1289
  AS_HELP_STRING([--disable-kill], [do not build kill]),
 
1290
  [], [UL_DEFAULT_ENABLE([kill], [check])]
 
1291
)
 
1292
UL_BUILD_INIT([kill])
 
1293
UL_REQUIRES_LINUX([kill])
 
1294
AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
 
1295
 
 
1296
dnl Don't use UL_DEFAULT_ENABLE() here, deprecated stuff has to be insensitive
 
1297
dnl to --enable-all-programs.
 
1298
AC_ARG_ENABLE([deprecated-last],
 
1299
  AS_HELP_STRING([--enable-deprecated-last], [build old deprecated last]),
 
1300
  [], [enable_deprecated_last=no]
 
1301
)
 
1302
UL_BUILD_INIT([deprecated_last])
 
1303
AM_CONDITIONAL([BUILD_DEPRECATED_LAST], [test "x$build_deprecated_last" = xyes])
1032
1304
 
1033
1305
 
1034
1306
AC_ARG_ENABLE([last],
1035
 
  AS_HELP_STRING([--enable-last], [build last]),
1036
 
  [], enable_last=no
1037
 
)
1038
 
AM_CONDITIONAL(BUILD_LAST, test "x$enable_last" = xyes)
 
1307
  AS_HELP_STRING([--disable-last], [do not build last]),
 
1308
  [], [UL_DEFAULT_ENABLE([last], [check])]
 
1309
)
 
1310
UL_BUILD_INIT([last])
 
1311
UL_CONFLICTS_BUILD([last], [deprecated_last], [old deprecated last version])
 
1312
AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
 
1313
 
 
1314
 
 
1315
AC_ARG_ENABLE([utmpdump],
 
1316
  AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
 
1317
  [], [UL_DEFAULT_ENABLE([utmpdump], [yes])]
 
1318
)
 
1319
UL_BUILD_INIT([utmpdump])
 
1320
AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
 
1321
 
1039
1322
 
1040
1323
AC_ARG_ENABLE([line],
1041
1324
  AS_HELP_STRING([--enable-line], [build line]),
1042
 
  [], enable_line=no
 
1325
  [], [UL_DEFAULT_ENABLE([line], [no])]
1043
1326
)
1044
 
AM_CONDITIONAL(BUILD_LINE, test "x$enable_line" = xyes)
 
1327
UL_BUILD_INIT([line])
 
1328
AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
 
1329
 
1045
1330
 
1046
1331
AC_ARG_ENABLE([mesg],
1047
 
  AS_HELP_STRING([--enable-mesg], [build mesg]),
1048
 
  [], enable_mesg=no
 
1332
  AS_HELP_STRING([--disable-mesg], [do not build mesg]),
 
1333
  [], [UL_DEFAULT_ENABLE([mesg], [yes])]
1049
1334
)
1050
 
AM_CONDITIONAL(BUILD_MESG, test "x$enable_mesg" = xyes)
 
1335
UL_BUILD_INIT([mesg])
 
1336
AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
1051
1337
 
1052
1338
 
1053
1339
AC_ARG_ENABLE([raw],
1054
 
  AS_HELP_STRING([--enable-raw], [build raw]),
1055
 
  [], enable_raw=no
 
1340
  AS_HELP_STRING([--disable-raw], [do not build raw]),
 
1341
  [], [UL_DEFAULT_ENABLE([raw], [check])]
1056
1342
)
1057
 
AM_CONDITIONAL(BUILD_RAW, test "x$enable_raw" = xyes)
 
1343
UL_BUILD_INIT([raw])
 
1344
UL_REQUIRES_LINUX([raw])
 
1345
UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
 
1346
AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
1058
1347
 
1059
1348
 
1060
1349
AC_ARG_ENABLE([rename],
1061
1350
  AS_HELP_STRING([--disable-rename], [do not build rename]),
1062
 
  [], enable_rename=yes
 
1351
  [], [UL_DEFAULT_ENABLE([rename], [yes])]
1063
1352
)
1064
 
AM_CONDITIONAL(BUILD_RENAME, test "x$enable_rename" = xyes)
 
1353
UL_BUILD_INIT([rename])
 
1354
AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
1065
1355
 
1066
1356
 
1067
1357
AC_ARG_ENABLE([reset],
1068
1358
  AS_HELP_STRING([--enable-reset], [build reset]),
1069
 
  [], enable_reset=no
1070
 
)
1071
 
AM_CONDITIONAL(BUILD_RESET, test "x$enable_reset" = xyes)
1072
 
 
1073
 
 
1074
 
AC_ARG_ENABLE([login-utils],
1075
 
  AS_HELP_STRING([--enable-login-utils], [build chfn, chsh, login, newgrp, vipw]),
1076
 
  [], enable_login_utils=no
1077
 
)
1078
 
AM_CONDITIONAL(BUILD_LOGIN_UTILS, test "x$enable_login_utils" = xyes)
1079
 
 
1080
 
AC_ARG_WITH([pam],
1081
 
  [AS_HELP_STRING([--without-pam], [compile login-utils without PAM support])])
1082
 
 
1083
 
AM_CONDITIONAL(HAVE_PAM, false)
1084
 
if test "x$enable_login_utils" = xyes && test "x$with_pam" != xno; then
1085
 
  AC_CHECK_HEADERS([security/pam_misc.h],
1086
 
    [AM_CONDITIONAL(HAVE_PAM, true)],
1087
 
    [if test "x$with_pam" = xyes; then
1088
 
        AC_MSG_ERROR([PAM selected but security/pam_misc.h not found])
1089
 
     fi
1090
 
    ])
1091
 
fi
1092
 
 
1093
 
AC_ARG_WITH([selinux],
1094
 
  AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
1095
 
  [], with_selinux=no
1096
 
)
1097
 
 
1098
 
if test "x$with_selinux" = xno; then
1099
 
  AM_CONDITIONAL(HAVE_SELINUX, false)
1100
 
else
1101
 
  UTIL_CHECK_LIB(selinux, getprevcon)
1102
 
  case "$with_selinux:$have_selinux" in
1103
 
  yes:no) AC_MSG_ERROR([SELinux selected but libselinux not found]);;
1104
 
  esac
1105
 
fi
1106
 
 
1107
 
if test "x$have_selinux" = xyes; then
1108
 
  SELINUX_LIBS="-lselinux -lsepol"
1109
 
  SELINUX_LIBS_STATIC="-lselinux -lsepol"
1110
 
  old_LDFLAGS="$LDFLAGS"
1111
 
  LDFLAGS="$LDFLAGS $SELINUX_LIBS"
1112
 
  # This function is missing in old libselinux 1.xx versions
1113
 
  AC_CHECK_FUNCS([security_get_initial_context])
1114
 
  LDFLAGS="$old_LDFLAGS"
1115
 
fi
1116
 
AC_SUBST([SELINUX_LIBS])
1117
 
AC_SUBST([SELINUX_LIBS_STATIC])
1118
 
 
1119
 
AC_ARG_WITH([audit],
1120
 
  AS_HELP_STRING([--with-audit], [compile with audit support]),
1121
 
  [], with_audit=no
1122
 
)
1123
 
 
1124
 
if test "x$with_audit" = xno; then
1125
 
  AM_CONDITIONAL(HAVE_AUDIT, false)
1126
 
else
1127
 
  UTIL_CHECK_LIB(audit, audit_log_user_message)
1128
 
  case "$with_audit:$have_audit" in
1129
 
  yes:no)
1130
 
   AC_MSG_ERROR([Audit selected but libaudit not found (or doesn't support audit_log_user_message())])
1131
 
   ;;
1132
 
  esac
1133
 
fi
1134
 
 
1135
 
AC_ARG_ENABLE([schedutils],
1136
 
  AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, teskset]),
1137
 
  [], enable_schedutils=yes
1138
 
)
1139
 
AM_CONDITIONAL(BUILD_SCHEDUTILS, test "x$enable_schedutils" = xyes)
1140
 
 
1141
 
 
1142
 
AC_ARG_ENABLE([wall],
1143
 
  AS_HELP_STRING([--disable-wall], [do not build wall]),
1144
 
  [], enable_wall=yes
1145
 
)
1146
 
AM_CONDITIONAL(BUILD_WALL, test "x$enable_wall" = xyes)
1147
 
 
1148
 
 
1149
 
AC_ARG_ENABLE([write],
1150
 
  AS_HELP_STRING([--enable-write], [build write]),
1151
 
  [], enable_write=no
1152
 
)
1153
 
AM_CONDITIONAL(BUILD_WRITE, test "x$enable_write" = xyes)
1154
 
 
 
1359
  [], [UL_DEFAULT_ENABLE([reset], [no])]
 
1360
)
 
1361
UL_BUILD_INIT([reset])
 
1362
AM_CONDITIONAL([BUILD_RESET], [test "x$build_reset" = xyes])
 
1363
 
 
1364
 
 
1365
AC_ARG_ENABLE([vipw],
 
1366
  AS_HELP_STRING([--enable-vipw], [build vipw]),
 
1367
  [], [UL_DEFAULT_ENABLE([vipw], [no])]
 
1368
)
 
1369
UL_BUILD_INIT([vipw])
 
1370
AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
 
1371
 
 
1372
 
 
1373
AC_ARG_ENABLE([newgrp],
 
1374
  AS_HELP_STRING([--enable-newgrp], [build newgrp]),
 
1375
  [], [UL_DEFAULT_ENABLE([newgrp], [no])]
 
1376
)
 
1377
UL_BUILD_INIT([newgrp])
 
1378
AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
 
1379
 
 
1380
 
 
1381
AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
 
1382
  [], [with_user=check]
 
1383
)
 
1384
have_user=no
 
1385
AS_IF([test "x$with_user" != xno], [
 
1386
  PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
 
1387
  AS_CASE([$with_user:$have_user],
 
1388
    [yes:no],
 
1389
      [AC_MSG_ERROR([user selected but libuser not found])],
 
1390
    [*:yes],
 
1391
      [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
 
1392
  )
 
1393
  # temporary solution, libuser has stupid .pc where are exported all
 
1394
  # private dependencies to Requires: instead of Requires.private:
 
1395
  AS_IF([test "x$have_user" = xyes], [
 
1396
    LIBUSER_LIBS=-luser
 
1397
  ])
 
1398
])
 
1399
AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
 
1400
 
 
1401
AC_ARG_ENABLE([chfn-chsh-password],
 
1402
  AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
 
1403
  [], [enable_chfn_chsh_password=yes]
 
1404
)
 
1405
 
 
1406
AC_ARG_ENABLE([chfn-chsh],
 
1407
  AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
 
1408
  [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
 
1409
)
 
1410
UL_BUILD_INIT([chfn_chsh])
 
1411
 
 
1412
AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
 
1413
  UL_REQUIRES_HAVE([chfn_chsh], [security_pam_misc_h], [PAM header file])
 
1414
  AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
 
1415
])
 
1416
AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
 
1417
AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
1155
1418
 
1156
1419
AC_ARG_ENABLE([chsh-only-listed],
1157
1420
  AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1158
1421
  [], enable_chsh_only_listed=yes
1159
1422
)
1160
1423
 
1161
 
if test "x$enable_chsh_only_listed" = xyes; then
1162
 
  AC_DEFINE(ONLY_LISTED_SHELLS, 1, [Should chsh allow only shells in /etc/shells?])
1163
 
fi
1164
 
 
 
1424
AS_IF([test "x$enable_chsh_only_listed" = xyes], [
 
1425
  AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
 
1426
])
 
1427
 
 
1428
 
 
1429
AC_ARG_ENABLE([login],
 
1430
  AS_HELP_STRING([--disable-login], [do not build login]),
 
1431
  [], [UL_DEFAULT_ENABLE([login], [check])]
 
1432
)
 
1433
UL_BUILD_INIT([login])
 
1434
UL_REQUIRES_HAVE([login], [security_pam_misc_h], [PAM header file])
 
1435
AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
1165
1436
 
1166
1437
AC_ARG_ENABLE([login-chown-vcs],
1167
1438
  AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
1168
 
  [], enable_login_chown_vcs=no
 
1439
  [], [enable_login_chown_vcs=no]
1169
1440
)
1170
1441
 
1171
 
if test "x$enable_login_chown_vcs" = xyes; then
1172
 
  AC_DEFINE(LOGIN_CHOWN_VCS, 1, [Should login chown /dev/vcsN?])
1173
 
fi
1174
 
 
 
1442
AS_IF([test "x$enable_login_chown_vcs" = xyes], [
 
1443
  AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
 
1444
])
1175
1445
 
1176
1446
AC_ARG_ENABLE([login-stat-mail],
1177
1447
  AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
1178
 
  [], enable_login_stat_mail=no
1179
 
)
1180
 
 
1181
 
if test "x$enable_login_stat_mail" = xyes; then
1182
 
  AC_DEFINE(LOGIN_STAT_MAIL, 1, [Should login stat() the mailbox?])
1183
 
fi
 
1448
  [], [enable_login_stat_mail=no]
 
1449
)
 
1450
 
 
1451
AS_IF([test "x$enable_login_stat_mail" = xyes], [
 
1452
  AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
 
1453
])
 
1454
 
 
1455
 
 
1456
AC_ARG_ENABLE([nologin],
 
1457
  AS_HELP_STRING([--disable-nologin], [do not build nologin]),
 
1458
  [], [UL_DEFAULT_ENABLE([nologin], [yes])]
 
1459
)
 
1460
UL_BUILD_INIT([nologin])
 
1461
AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
 
1462
 
 
1463
 
 
1464
AC_ARG_ENABLE([sulogin],
 
1465
  AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
 
1466
  [], [UL_DEFAULT_ENABLE([sulogin], [yes])]
 
1467
)
 
1468
UL_BUILD_INIT([sulogin])
 
1469
AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
 
1470
 
 
1471
 
 
1472
AC_ARG_ENABLE([su],
 
1473
  AS_HELP_STRING([--disable-su], [do not build su]),
 
1474
  [], [UL_DEFAULT_ENABLE([su], [check])]
 
1475
)
 
1476
UL_BUILD_INIT([su])
 
1477
UL_REQUIRES_HAVE([su], [security_pam_misc_h], [PAM header file])
 
1478
AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
 
1479
 
 
1480
 
 
1481
AC_ARG_ENABLE([runuser],
 
1482
  AS_HELP_STRING([--disable-runuser], [do not build runuser]),
 
1483
  [], [UL_DEFAULT_ENABLE([runuser], [check])]
 
1484
)
 
1485
UL_BUILD_INIT([runuser])
 
1486
UL_REQUIRES_HAVE([runuser], [security_pam_misc_h], [PAM header file])
 
1487
AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
 
1488
 
 
1489
 
 
1490
AC_ARG_ENABLE([ul],
 
1491
  AS_HELP_STRING([--disable-ul], [do not build ul]),
 
1492
  [], [UL_DEFAULT_ENABLE([ul], [check])]
 
1493
)
 
1494
UL_BUILD_INIT([ul])
 
1495
UL_REQUIRES_HAVE([ul], [ncurses, tinfo], [ncurses or tinfo libraries])
 
1496
AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
 
1497
 
 
1498
 
 
1499
AC_ARG_ENABLE([more],
 
1500
  AS_HELP_STRING([--disable-more], [do not build more]),
 
1501
  [], [UL_DEFAULT_ENABLE([more], [check])]
 
1502
)
 
1503
UL_BUILD_INIT([more])
 
1504
UL_REQUIRES_HAVE([more], [ncurses, tinfo, termcap], [ncurses, tinfo or termcap libraries])
 
1505
AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
 
1506
 
 
1507
 
 
1508
AC_ARG_ENABLE([pg],
 
1509
  AS_HELP_STRING([--disable-pg], [do not build pg]),
 
1510
  [], [UL_DEFAULT_ENABLE([pg], [check])]
 
1511
)
 
1512
UL_BUILD_INIT([pg])
 
1513
UL_REQUIRES_HAVE([pg], [ncurses], [ncurses or ncursesw library])
 
1514
AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
 
1515
 
 
1516
 
 
1517
AC_ARG_ENABLE([setterm],
 
1518
  AS_HELP_STRING([--disable-setterm], [do not build setterm]),
 
1519
  [], [UL_DEFAULT_ENABLE([setterm], [check])]
 
1520
)
 
1521
UL_BUILD_INIT([setterm])
 
1522
UL_REQUIRES_LINUX([setterm])
 
1523
UL_REQUIRES_HAVE([setterm], [ncurses], [ncurses library])
 
1524
AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
 
1525
 
 
1526
# build_schedutils= is just configure-only variable to control
 
1527
# ionice, taskset and chrt
 
1528
AC_ARG_ENABLE([schedutils],
 
1529
  AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
 
1530
  [], [UL_DEFAULT_ENABLE([schedutils], [yes])]
 
1531
)
 
1532
UL_BUILD_INIT([schedutils])
 
1533
 
 
1534
UL_BUILD_INIT([ionice], [check])
 
1535
UL_REQUIRES_BUILD([ionice], [schedutils])
 
1536
UL_REQUIRES_SYSCALL_CHECK([ionice],
 
1537
        [UL_CHECK_SYSCALL([ioprio_set],
 
1538
          [alpha],      [442],
 
1539
          [i*86],       [289],
 
1540
          [ia64*],      [1274],
 
1541
          [powerpc*],   [273],
 
1542
          [s390*],      [282],
 
1543
          [sparc*],     [196],
 
1544
          [sh*],        [288],
 
1545
          [x86_64*],    [251])],
 
1546
        [ioprio_set])
 
1547
 
 
1548
UL_REQUIRES_SYSCALL_CHECK([ionice],
 
1549
        [UL_CHECK_SYSCALL([ioprio_get],
 
1550
          [alpha],      [443],
 
1551
          [i*86],       [290],
 
1552
          [ia64*],      [1275],
 
1553
          [powerpc*],   [274],
 
1554
          [s390*],      [283],
 
1555
          [sparc*],     [218],
 
1556
          [sh*],        [289],
 
1557
          [x86_64*],    [252])],
 
1558
        [ioprio_get])
 
1559
 
 
1560
AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
 
1561
 
 
1562
UL_BUILD_INIT([taskset], [check])
 
1563
UL_REQUIRES_BUILD([taskset], [schedutils])
 
1564
UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
 
1565
UL_REQUIRES_SYSCALL_CHECK([taskset],
 
1566
        [UL_CHECK_SYSCALL([sched_getaffinity])],
 
1567
        [sched_getaffinity])
 
1568
AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
 
1569
 
 
1570
UL_BUILD_INIT([chrt], [check])
 
1571
UL_REQUIRES_BUILD([chrt], [schedutils])
 
1572
AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
 
1573
 
 
1574
 
 
1575
AC_ARG_ENABLE([wall],
 
1576
  AS_HELP_STRING([--disable-wall], [do not build wall]),
 
1577
  [], [UL_DEFAULT_ENABLE([wall], [yes])]
 
1578
)
 
1579
UL_BUILD_INIT([wall])
 
1580
AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
 
1581
 
 
1582
 
 
1583
AC_ARG_ENABLE([write],
 
1584
  AS_HELP_STRING([--enable-write], [build write]),
 
1585
  [], [UL_DEFAULT_ENABLE([write], [no])]
 
1586
)
 
1587
UL_BUILD_INIT([write])
 
1588
AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
 
1589
 
 
1590
 
 
1591
AC_ARG_WITH([systemd],
 
1592
  AS_HELP_STRING([--with-systemd], [build with support for systemd]),
 
1593
  [], [with_systemd=check]
 
1594
)
 
1595
 
 
1596
have_systemd=no
 
1597
AS_IF([test "x$with_systemd" != xno], [
 
1598
  # new version -- all libsystemd-* libs merged into libsystemd
 
1599
  PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
 
1600
  # old versions
 
1601
  AS_IF([test "x$have_systemd" != "xyes"], [
 
1602
    PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
 
1603
                      [have_systemd_daemon=yes], [have_systemd_daemon=no])
 
1604
    PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
 
1605
                      [have_systemd_journal=yes], [have_systemd_journal=no])
 
1606
    AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
 
1607
           have_systemd=yes])
 
1608
  ])
 
1609
  AS_CASE([$with_systemd:$have_systemd],
 
1610
    [yes:no],
 
1611
      [AC_MSG_ERROR([systemd expected but libsystemd not found])],
 
1612
    [*:yes],
 
1613
       AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
 
1614
  )
 
1615
])
 
1616
AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
 
1617
 
 
1618
 
 
1619
AC_ARG_WITH([systemdsystemunitdir],
 
1620
  AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd service files]),
 
1621
  [], [with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`])
 
1622
 
 
1623
AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
 
1624
  AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
 
1625
])
 
1626
 
 
1627
 
 
1628
AC_ARG_WITH([smack],
 
1629
  AS_HELP_STRING([--with-smack], [build with SMACK support]),
 
1630
  [], [with_smack=no]
 
1631
)
 
1632
AS_IF([test "x$with_smack" = xyes], [
 
1633
  AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
 
1634
])
 
1635
 
 
1636
 
 
1637
AC_ARG_WITH([bashcompletiondir],
 
1638
  AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
 
1639
  [],
 
1640
  [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
 
1641
    with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
 
1642
  ], [
 
1643
    with_bashcompletiondir=${datadir}/bash-completion/completions
 
1644
  ])
 
1645
])
 
1646
AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
 
1647
 
 
1648
AC_ARG_ENABLE([bash-completion],
 
1649
  AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
 
1650
  [], [enable_bash_completion=yes]
 
1651
)
 
1652
 
 
1653
AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
 
1654
 
 
1655
 
 
1656
AC_ARG_WITH([python],
 
1657
  AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
 
1658
  [], [with_python=check withval=check]
 
1659
)
 
1660
 
 
1661
have_python=no
 
1662
AS_IF([test "x$with_python" != xno], [
 
1663
  # We follow distributions default and look for PKG module name "python"
 
1664
  # (minimal version is 2) but if major version is explicitly specified by
 
1665
  # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
 
1666
  # "python3".
 
1667
  AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck],
 
1668
        [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
 
1669
  AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
 
1670
  AS_CASE([$with_python:$have_python],
 
1671
    [yes:no],
 
1672
      [AC_MSG_ERROR([python selected but libpython not found])],
 
1673
    [check:no],
 
1674
       [AC_MSG_WARN([libpython not found, do not build python bindings])],
 
1675
    [*:yes],
 
1676
       [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION])]
 
1677
  )
 
1678
])
 
1679
 
 
1680
 
 
1681
AC_ARG_ENABLE([pylibmount],
 
1682
  AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
 
1683
  [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
 
1684
)
 
1685
UL_BUILD_INIT([pylibmount])
 
1686
UL_REQUIRES_HAVE([pylibmount], [python], [libpython])
 
1687
UL_REQUIRES_BUILD([pylibmount], [libmount])
 
1688
AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
1184
1689
 
1185
1690
 
1186
1691
AC_ARG_ENABLE([pg-bell],
1187
1692
  AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
1188
 
  [], enable_pg_bell=yes
1189
 
)
1190
 
 
1191
 
if test "x$enable_pg_bell" = xyes; then
1192
 
  AC_DEFINE(PG_BELL, 1, [Should pg ring the bell on invalid keys?])
1193
 
fi
1194
 
 
1195
 
 
1196
 
AC_ARG_ENABLE([require-password],
1197
 
  AS_HELP_STRING([--disable-require-password], [do not require the user to enter the password in chfn and chsh]),
1198
 
  [], enable_require_password=yes
1199
 
)
1200
 
 
1201
 
if test "x$enable_require_password" = xyes; then
1202
 
  AC_DEFINE(REQUIRE_PASSWORD, 1, [Should chfn and chsh require the user to enter the password?])
1203
 
fi
 
1693
  [], [enable_pg_bell=yes]
 
1694
)
 
1695
 
 
1696
AS_IF([test "x$enable_pg_bell" = xyes], [
 
1697
  AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
 
1698
])
1204
1699
 
1205
1700
 
1206
1701
AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
1207
1702
AC_ARG_ENABLE([fs-paths-default],
1208
1703
  AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
1209
 
  [case "$enableval" in
1210
 
     yes) fs_paths_defaults="FS_PATHS_DEFAULT" ;;
1211
 
      no) fs_paths_defaults="" ;;
1212
 
       *) fs_paths_defaults="$enableval" ;;
1213
 
   esac],
 
1704
  [AS_CASE([$enableval],
 
1705
    [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
 
1706
    [no],  [fs_paths_defaults=""],
 
1707
    [fs_paths_defaults="$enableval"]
 
1708
  )],
1214
1709
  [fs_paths_defaults="FS_PATHS_DEFAULT"]
1215
1710
)
1216
1711
AC_ARG_ENABLE([fs-paths-extra],
1217
1712
  AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
1218
 
  [case "$enableval" in
1219
 
     yes|no) fs_paths_extra="" ;;
1220
 
          *) fs_paths_extra="$enableval" ;;
1221
 
    esac],
 
1713
  [AS_CASE([$enableval],
 
1714
     [yes|no], [fs_paths_extra=""],
 
1715
     [fs_paths_extra="$enableval"]
 
1716
  )],
1222
1717
  [fs_paths_extra=""]
1223
1718
)
1224
1719
fs_paths="$fs_paths_defaults"
1225
 
if test "x$fs_paths_extra" != "x"; then
1226
 
  if test "x$fs_paths" != "x"; then
 
1720
AS_IF([test "x$fs_paths_extra" != "x"], [
 
1721
  AS_IF([test "x$fs_paths" != "x"], [
1227
1722
    fs_paths="${fs_paths}:"
1228
 
  fi
 
1723
  ])
1229
1724
  fs_paths="${fs_paths}${fs_paths_extra}"
1230
 
fi
 
1725
])
1231
1726
AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
1232
1727
 
1233
1728
 
1234
1729
AC_ARG_ENABLE([use-tty-group],
1235
1730
  AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
1236
 
  [], enable_use_tty_group=yes
1237
 
)
1238
 
AM_CONDITIONAL(USE_TTY_GROUP, test "x$enable_use_tty_group" = xyes)
1239
 
 
1240
 
if test "x$enable_use_tty_group" = xyes; then
1241
 
  AC_DEFINE(USE_TTY_GROUP, 1, [Should wall and write be installed setgid tty?])
1242
 
fi
 
1731
  [], [enable_use_tty_group=yes]
 
1732
)
 
1733
AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
 
1734
 
 
1735
AS_IF([test "x$enable_use_tty_group" = xyes], [
 
1736
  AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
 
1737
])
 
1738
 
 
1739
 
 
1740
AC_ARG_ENABLE([sulogin-emergency-mount],
 
1741
  AS_HELP_STRING([--enable-sulogin-emergency-mount],
 
1742
                 [use emergency mount of /dev and /proc for sulogin]),
 
1743
  [], [enable_sulogin_emergency_mount=no]
 
1744
)
 
1745
 
 
1746
AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
 
1747
  AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
 
1748
            [Should sulogin use a emergency mount of /dev and /proc?])
 
1749
])
 
1750
 
1243
1751
 
1244
1752
AC_ARG_ENABLE([makeinstall-chown],
1245
1753
  AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
1246
 
  [], enable_makeinstall_chown=yes
 
1754
  [], [enable_makeinstall_chown=yes]
1247
1755
)
1248
 
AM_CONDITIONAL(MAKEINSTALL_DO_CHOWN, test "x$enable_makeinstall_chown" = xyes)
 
1756
AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
1249
1757
 
1250
1758
AC_ARG_ENABLE([makeinstall-setuid],
1251
1759
  AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
1252
 
  [], enable_makeinstall_setuid=yes
 
1760
  [], [enable_makeinstall_setuid=yes]
1253
1761
)
1254
 
AM_CONDITIONAL(MAKEINSTALL_DO_SETUID, test "x$enable_makeinstall_setuid" = xyes)
 
1762
AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
1255
1763
 
1256
1764
 
1257
1765
AC_ARG_VAR([SUID_CFLAGS],
1259
1767
AC_ARG_VAR([SUID_LDFLAGS],
1260
1768
           [LDFLAGS used for binaries which are usually with the suid bit])
1261
1769
 
 
1770
AC_ARG_VAR([DAEMON_CFLAGS],
 
1771
           [CFLAGS used for binaries which are usually executed as daemons])
 
1772
AC_ARG_VAR([DAEMON_LDFLAGS],
 
1773
           [LDFLAGS used for binaries which are usually executed as daemons])
 
1774
 
 
1775
AC_ARG_VAR([SOLIB_CFLAGS],
 
1776
           [CFLAGS used for shared libraries])
 
1777
AC_ARG_VAR([SOLIB_LDFLAGS],
 
1778
           [LDFLAGS used for shared libraries])
 
1779
 
 
1780
AC_ARG_VAR([ADJTIME_PATH],
 
1781
           [Path to hwclock adjtime file, default /etc/adjtime])
 
1782
AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
 
1783
AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
 
1784
 
 
1785
 
1262
1786
LIBS=""
1263
1787
 
1264
1788
 
1265
 
AC_CONFIG_HEADERS(config.h)
 
1789
AC_CONFIG_HEADERS([config.h])
1266
1790
 
 
1791
#
 
1792
# Don't use configure.ac to replace install paths! See Makefile PATHFILES for
 
1793
# more details.
 
1794
#
1267
1795
AC_CONFIG_FILES([
1268
 
disk-utils/Makefile
1269
 
fdisk/Makefile
1270
 
fsck/Makefile
1271
 
getopt/Makefile
1272
 
hwclock/Makefile
1273
 
include/Makefile
1274
 
lib/Makefile
1275
 
login-utils/Makefile
1276
1796
Makefile
1277
 
man/ru/Makefile
1278
 
misc-utils/chkdupexe:misc-utils/chkdupexe.pl
1279
 
misc-utils/Makefile
1280
 
mount/Makefile
1281
 
partx/Makefile
1282
 
po/Makefile.in
1283
 
schedutils/Makefile
1284
 
libblkid/blkid.pc
1285
 
libblkid/Makefile
1286
1797
libblkid/docs/Makefile
1287
1798
libblkid/docs/version.xml
1288
 
libblkid/src/Makefile
1289
1799
libblkid/src/blkid.h
1290
 
libblkid/src/superblocks/Makefile
1291
 
libblkid/src/topology/Makefile
1292
 
libblkid/src/partitions/Makefile
1293
 
libblkid/samples/Makefile
1294
 
libmount/mount.pc
1295
 
libmount/Makefile
1296
 
libmount/src/Makefile
1297
 
libmount/src/libmount.h
1298
1800
libmount/docs/Makefile
1299
1801
libmount/docs/version.xml
1300
 
libmount/samples/Makefile
1301
 
libuuid/uuid.pc
1302
 
libuuid/Makefile
1303
 
libuuid/man/Makefile
1304
 
libuuid/src/Makefile
1305
 
sys-utils/Makefile
1306
 
term-utils/Makefile
1307
 
tests/commands.sh
1308
 
tests/helpers/Makefile
1309
 
tests/Makefile
1310
 
text-utils/Makefile
 
1802
libmount/src/libmount.h
 
1803
libsmartcols/docs/Makefile
 
1804
libsmartcols/docs/version.xml
 
1805
libsmartcols/src/libsmartcols.h
 
1806
po/Makefile.in
1311
1807
])
1312
1808
 
1313
 
 
1314
1809
AC_OUTPUT
 
1810
 
 
1811
AC_MSG_RESULT([
 
1812
        ${PACKAGE}  ${VERSION}
 
1813
 
 
1814
        prefix:            ${prefix}
 
1815
        exec prefix:       ${exec_prefix}
 
1816
 
 
1817
        localstatedir:     ${localstatedir}
 
1818
        bindir:            ${bindir}
 
1819
        sbindir:           ${sbindir}
 
1820
        libdir:            ${libdir}
 
1821
        includedir:        ${includedir}
 
1822
        usrbin_execdir:    ${usrbin_execdir}
 
1823
        usrsbin_execdir:   ${usrsbin_execdir}
 
1824
        usrlib_execdir:    ${usrlib_execdir}
 
1825
 
 
1826
        compiler:          ${CC}
 
1827
        cflags:            ${CFLAGS}
 
1828
        suid cflags:       ${SUID_CFLAGS}
 
1829
        ldflags:           ${LDFLAGS}
 
1830
        suid ldflags:      ${SUID_LDFLAGS}
 
1831
 
 
1832
        Python:            ${PYTHON}
 
1833
        Python version:    ${PYTHON_VERSION}
 
1834
        Python libs:       ${pyexecdir}
 
1835
 
 
1836
        Bash completions:  ${with_bashcompletiondir}
 
1837
        Systemd support:   ${have_systemd}
 
1838
 
 
1839
        warnings:
 
1840
 
 
1841
${WARN_CFLAGS}
 
1842
])