* [PATCH] configure.ac : remove enable_foo checks for non-linux OSs
@ 2011-02-01 11:12 Marek Otahal
2011-02-01 13:05 ` Karel Zak
0 siblings, 1 reply; 2+ messages in thread
From: Marek Otahal @ 2011-02-01 11:12 UTC (permalink / raw)
To: util-linux; +Cc: Karel Zak
[-- Attachment #1: Type: Text/Plain, Size: 7248 bytes --]
Hello,
I implemented this idea from the TODO list, basically it sets some enable_foo
constants for non-linux systems to "no" at start and then we can skip if-tests
on different places.
From the todo:
build-sys
--------
- we use something like
AC_ARG_ENABLE(...., enable_foo=check)
build_foo=yes
if test "x$enable_foo" = xcheck; then
if test "x$linux_os" = xno; then
build_foo=no
fi
fi
AM_CONDITIONAL(BUILD_LIBMOUNT, test "x$build_foo" = xyes)
for Linux-only utils in configure.ac. It would be nice to set all defaults
for all $enable_ variables at begin of the configure script according to
$linux_os. Something like:
if test "x$linux_os" = xno
enable_mount=no
enable_libmount=no
enable_lsblk=no
fi
then we can remove all "if test "x$enable_foo" = xcheck;" stuff from the
rest
of the configure script.
Thanks, Marek
PS: The TODO list is a good thing, if you write the task more detailed (like
this one), more people can easily implement it.
Signed-off-by: Marek Otahal <markotahal@gmail.com>
---
diff -Nruw util-linux/configure.ac util-linux-mmm/configure.ac
--- util-linux/configure.ac 2011-02-01 00:26:23.603333351 +0100
+++ util-linux-mmm/configure.ac 2011-02-01 11:20:08.860000019 +0100
@@ -334,13 +334,52 @@
AS_HELP_STRING([--disable-mount], [do not build mount utilities]),
[], enable_mount=check
)
-build_mount=yes
-if test "x$enable_mount" = xcheck; then
- if test "x$linux_os" = xno; then
+
+AC_ARG_ENABLE([libmount],
+ AS_HELP_STRING([--disable-libmount], [do not build libmount]),
+ [], enable_libmount=check
+)
+
+C_ARG_ENABLE([switch_root],
+ AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
+ [], enable_switch_root=check
+)
+
+AC_ARG_ENABLE([pivot_root],
+ AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
+ [], enable_pivot_root=check
+)
+
+AC_ARG_ENABLE([fallocate],
+ AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
+ [], enable_fallocate=check
+)
+
+AC_ARG_ENABLE([unshare],
+ AS_HELP_STRING([--disable-unshare], [do not build unshare]),
+ [], enable_unshare=check
+)
+
+
+# we do not build these for non-linux os
+if test "x$linux_os" = xno
AC_MSG_WARN([non-linux system; do not build mount utilities])
build_mount=no
+ AC_MSG_WARN([non-linux system; do not build libmount])
+ build_libmount=no
+ AC_MSG_WARN([non-linux system; do not build switch_root])
+ build_switch_root=no
+ AC_MSG_WARN([non-linux system; do not build pivot_root])
+ build_pivot_root=no
+ AC_MSG_WARN([non-linux system; do not build fallocate])
+ build_fallocate=no
+ AC_MSG_WARN([non-linux system; do not build unshare])
+ build_unshare=no
fi
-elif test "x$enable_mount" = xno; then
+
+
+build_mount=yes
+if test "x$enable_mount" = xno; then
build_mount=no
fi
AM_CONDITIONAL(BUILD_MOUNT, test "x$build_mount" = xyes)
@@ -459,17 +498,8 @@
AC_ARG_VAR([BLKID_LIBS_STATIC], [-l options for linking statically with
blkid])
-AC_ARG_ENABLE([libmount],
- AS_HELP_STRING([--disable-libmount], [do not build libmount]),
- [], enable_libmount=check
-)
build_libmount=yes
-if test "x$enable_libmount" = xcheck; then
- if test "x$linux_os" = xno; then
- AC_MSG_WARN([non-linux system; do not build libmount])
- build_libmount=no
- fi
-elif test "x$enable_libmount" = xno; then
+if test "x$enable_libmount" = xno; then
build_libmount=no
fi
@@ -872,19 +902,10 @@
AM_CONDITIONAL(BUILD_CRAMFS, test "x$build_cramfs" = xyes)
-AC_ARG_ENABLE([switch_root],
- AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
- [], enable_switch_root=check
-)
+build_switch_root=yes
if test "x$enable_switch_root" = xno; then
build_switch_root=no
-else
- build_switch_root=yes
- case $enable_switch_root:$linux_os in
- yes:no) AC_MSG_ERROR([switch_root selected for non-linux system]);;
- check:no) AC_MSG_WARN([non-linux system; do not build switch_root])
- build_switch_root=no;;
- esac
+fi
if test "x$build_switch_root" = xyes; then
case $enable_switch_root:$have_openat in
yes:no) AC_MSG_ERROR([switch_root selected but openat() function not
found]);;
@@ -892,23 +913,13 @@
build_switch_root=no;;
esac
fi
-fi
AM_CONDITIONAL(BUILD_SWITCH_ROOT, test "x$build_switch_root" = xyes)
-AC_ARG_ENABLE([pivot_root],
- AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
- [], enable_pivot_root=check
-)
+build_pivot_root=yes
if test "x$enable_pivot_root" = xno; then
build_pivot_root=no
-else
- build_pivot_root=yes
- case $enable_pivot_root:$linux_os in
- yes:no) AC_MSG_ERROR([pivot_root selected for non-linux system]);;
- check:no) AC_MSG_WARN([non-linux system; do not build pivot_root])
- build_pivot_root=no;;
- esac
+fi
if test "x$build_pivot_root" = xyes; then
case $enable_pivot_root:$util_cv_syscall_pivot_root in
yes:no) AC_MSG_ERROR([pivot_root selected but pivot_root syscall not
found]);;
@@ -916,23 +927,13 @@
build_pivot_root=no;;
esac
fi
-fi
AM_CONDITIONAL(BUILD_PIVOT_ROOT, test "x$build_pivot_root" = xyes)
-AC_ARG_ENABLE([fallocate],
- AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
- [], enable_fallocate=check
-)
+build_fallocate=yes
if test "x$enable_fallocate" = xno; then
build_fallocate=no
-else
- build_fallocate=yes
- case $enable_fallocate:$linux_os in
- yes:no) AC_MSG_ERROR([fallocate selected for non-linux system]);;
- check:no) AC_MSG_WARN([non-linux system; do not build fallocate])
- build_fallocate=no;;
- esac
+fi
if test "x$build_fallocate" = xyes; then
case $enable_fallocate:$util_cv_syscall_fallocate in
yes:no) AC_MSG_ERROR([fallocate selected but fallocate syscall not
found]);;
@@ -940,23 +941,13 @@
build_fallocate=no;;
esac
fi
-fi
AM_CONDITIONAL(BUILD_FALLOCATE, test "x$build_fallocate" = xyes)
-AC_ARG_ENABLE([unshare],
- AS_HELP_STRING([--disable-unshare], [do not build unshare]),
- [], enable_unshare=check
-)
+build_unshare=yes
if test "x$enable_unshare" = xno; then
build_unshare=no
-else
- build_unshare=yes
- case $enable_unshare:$linux_os in
- yes:no) AC_MSG_ERROR([unshare selected for non-linux system]);;
- check:no) AC_MSG_WARN([non-linux system; do not build unshare])
- build_unshare=no;;
- esac
+fi
if test "x$build_unshare" = xyes; then
case $enable_unshare:$util_cv_syscall_unshare in
yes:no) AC_MSG_ERROR([unshare selected but unshare syscall not found]);;
@@ -964,11 +955,9 @@
build_unshare=no;;
esac
fi
-fi
AM_CONDITIONAL(BUILD_UNSHARE, test "x$build_unshare" = xyes)
-
AC_ARG_ENABLE([elvtune],
AS_HELP_STRING([--enable-elvtune], [build elvtune (only works with 2.2 and
2.4 kernels)]),
[], enable_elvtune=no
--
Marek Otahal :o)
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] configure.ac : remove enable_foo checks for non-linux OSs
2011-02-01 11:12 [PATCH] configure.ac : remove enable_foo checks for non-linux OSs Marek Otahal
@ 2011-02-01 13:05 ` Karel Zak
0 siblings, 0 replies; 2+ messages in thread
From: Karel Zak @ 2011-02-01 13:05 UTC (permalink / raw)
To: Marek Otahal; +Cc: util-linux
On Tue, Feb 01, 2011 at 12:12:45PM +0100, Marek Otahal wrote:
> PS: The TODO list is a good thing, if you write the task more detailed (like
> this one), more people can easily implement it.
OK :-)
> +# we do not build these for non-linux os
> +if test "x$linux_os" = xno
> AC_MSG_WARN([non-linux system; do not build mount utilities])
> build_mount=no
> + AC_MSG_WARN([non-linux system; do not build libmount])
> + build_libmount=no
> + AC_MSG_WARN([non-linux system; do not build switch_root])
> + build_switch_root=no
> + AC_MSG_WARN([non-linux system; do not build pivot_root])
> + build_pivot_root=no
> + AC_MSG_WARN([non-linux system; do not build fallocate])
> + build_fallocate=no
> + AC_MSG_WARN([non-linux system; do not build unshare])
> + build_unshare=no
> fi
This is not exactly what I mean. In your implementation are
Linux-only things disable at all, so if you explicitly
./configure --enable-unshare
then the configure script will ignore this request and unshare(1)
will be disabled. That's wrong (and for some utils is the current
implementation wrong too).
The configure script should not be more smart than user. We need to
care about default settings (if --disable/enable is not specified)
only. Currently the default is "check", I'd like to modify the
default according to $linux_os.
Something like:
linuxonly_default=check
if test "x$linux_os" = xno
AC_MSG_WARN([non-linux system; unshare(1), libmount, ...
are disabled by default. Use --enable-<name>
to enable required util(s)])
linuxonly_default=no
fi
AC_ARG_ENABLE([unshare],
AS_HELP_STRING([--disable-unshare], [do not build unshare]),
[], enable_unshare=$linuxonly_default)
AM_CONDITIONAL(BUILD_UNSHARE, test "x$enable_unshare" != xno)
maybe that for some utils it will be necessary to do some extra
checks before AM_CONDITIONAL() -- for example to detect that systems
has proper syscall (e.g. switch_root depends on openat()).
Note that this is nothing urgent, it's too late for v2.19 release.
Karel
--
Karel Zak <kzak@redhat.com>
http://karelzak.blogspot.com
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-02-01 13:05 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-01 11:12 [PATCH] configure.ac : remove enable_foo checks for non-linux OSs Marek Otahal
2011-02-01 13:05 ` Karel Zak
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.