[libvirt] [PATCH v2 3/3] configure: Introduce LIBVIRT_{CHECK, RESULT}_INIT_SCRIPT

Andrea Bolognani abologna at redhat.com
Mon May 2 11:51:27 UTC 2016


Move the code dealing with init scripts to a separate file
so configure.ac itself can be a little bit smaller.
---
First time writing an autoconf macro, so I might very possibly
have gotten something wrong. It seems to be working, though

 configure.ac           | 63 ++-----------------------------------
 m4/virt-init-script.m4 | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 86 insertions(+), 61 deletions(-)
 create mode 100644 m4/virt-init-script.m4

diff --git a/configure.ac b/configure.ac
index f5cb1c3..88e2e20 100644
--- a/configure.ac
+++ b/configure.ac
@@ -616,66 +616,7 @@ if test x"$enable_debug" = x"yes"; then
    AC_DEFINE([ENABLE_DEBUG], [], [whether debugging is enabled])
 fi
 
-
-
-dnl
-dnl init script flavor
-dnl
-AC_MSG_CHECKING([for init script flavor])
-AC_ARG_WITH([init-script],
-  [AS_HELP_STRING([--with-init-script@<:@=STYLE@:>@],
-    [Style of init script to install: redhat, systemd, systemd+redhat,
-     upstart, check, none @<:@default=check@:>@])],
-  [],[with_init_script=check])
-init_redhat=no
-init_systemd=no
-init_upstart=no
-if test "$with_init_script" = check; then
-    if test "$cross_compiling" = yes; then
-        with_init_script=none
-    fi
-    if type systemctl >/dev/null 2>&1; then
-        if test "$with_init_script" = check; then
-            with_init_script=systemd
-        fi
-    fi
-    if test -f /etc/redhat-release; then
-        if test "$with_init_script" = systemd; then
-            with_init_script=systemd+redhat
-        fi
-        if test "$with_init_script" = check; then
-            with_init_script=redhat
-        fi
-    fi
-    if test "$with_init_script" = check; then
-        with_init_script=none
-    fi
-fi
-case "$with_init_script" in
-    systemd+redhat)
-       init_redhat=yes
-       init_systemd=yes
-       ;;
-    systemd)
-       init_systemd=yes
-       ;;
-    upstart)
-       init_upstart=yes
-       ;;
-    redhat)
-       init_redhat=yes
-       ;;
-    none)
-       ;;
-    *)
-       AC_MSG_ERROR([Unknown initscript flavour $with_init_script])
-    ;;
-esac
-AM_CONDITIONAL([LIBVIRT_INIT_SCRIPT_RED_HAT], test "$init_redhat" = "yes")
-AM_CONDITIONAL([LIBVIRT_INIT_SCRIPT_UPSTART], test "$init_upstart" = "yes")
-AM_CONDITIONAL([LIBVIRT_INIT_SCRIPT_SYSTEMD], test "$init_systemd" = "yes")
-AC_MSG_RESULT($with_init_script)
-
+LIBVIRT_CHECK_INIT_SCRIPT
 
 AC_MSG_CHECKING([for whether to install sysctl config])
 AC_ARG_WITH([sysctl],
@@ -2959,7 +2900,7 @@ AC_MSG_NOTICE([     Warning Flags: $WARN_CFLAGS])
 AC_MSG_NOTICE([            DTrace: $with_dtrace])
 AC_MSG_NOTICE([             numad: $with_numad])
 AC_MSG_NOTICE([       XML Catalog: $XML_CATALOG_FILE])
-AC_MSG_NOTICE([       Init script: $with_init_script])
+LIBVIRT_RESULT_INIT_SCRIPT
 AC_MSG_NOTICE([ Char device locks: $with_chrdev_lock_files])
 AC_MSG_NOTICE([    Default Editor: $DEFAULT_EDITOR])
 AC_MSG_NOTICE([      Loader/NVRAM: $with_loader_nvram])
diff --git a/m4/virt-init-script.m4 b/m4/virt-init-script.m4
new file mode 100644
index 0000000..9d0d5c7
--- /dev/null
+++ b/m4/virt-init-script.m4
@@ -0,0 +1,84 @@
+dnl Init script type
+dnl
+dnl Copyright (C) 2005-2016 Red Hat, Inc.
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the terms of the GNU Lesser General Public
+dnl License as published by the Free Software Foundation; either
+dnl version 2.1 of the License, or (at your option) any later version.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl Lesser General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU Lesser General Public
+dnl License along with this library.  If not, see
+dnl <http://www.gnu.org/licenses/>.
+dnl
+
+AC_DEFUN([LIBVIRT_CHECK_INIT_SCRIPT],[
+    AC_ARG_WITH([init-script],
+        [AS_HELP_STRING([--with-init-script@<:@=STYLE@:>@],
+        [Style of init script to install: redhat, systemd, systemd+redhat,
+         upstart, check, none @<:@default=check@:>@])],
+        [],[with_init_script=check])
+
+    AC_MSG_CHECKING([for init script type])
+
+    init_redhat=no
+    init_systemd=no
+    init_upstart=no
+
+    if test "$with_init_script" = check; then
+        if test "$cross_compiling" = yes; then
+            with_init_script=none
+        fi
+    fi
+    if type systemctl >/dev/null 2>&1; then
+        if test "$with_init_script" = check; then
+            with_init_script=systemd
+        fi
+    fi
+    if test -f /etc/redhat-release; then
+        if test "$with_init_script" = systemd; then
+            with_init_script=systemd+redhat
+        fi
+        if test "$with_init_script" = check; then
+            with_init_script=redhat
+        fi
+    fi
+    if test "$with_init_script" = check; then
+        with_init_script=none
+    fi
+
+    AS_CASE([$with_init_script],
+        [systemd+redhat],[
+            init_redhat=yes
+            init_systemd=yes
+        ],
+        [systemd],[
+            init_systemd=yes
+        ],
+        [upstart],[
+            init_upstart=yes
+        ],
+        [redhat],[
+            init_redhat=yes
+        ],
+        [none],[],
+        [*],[
+            AC_MSG_ERROR([Unknown initscript flavour $with_init_script])
+        ]
+    )
+
+    AM_CONDITIONAL([LIBVIRT_INIT_SCRIPT_RED_HAT], test "$init_redhat" = "yes")
+    AM_CONDITIONAL([LIBVIRT_INIT_SCRIPT_UPSTART], test "$init_upstart" = "yes")
+    AM_CONDITIONAL([LIBVIRT_INIT_SCRIPT_SYSTEMD], test "$init_systemd" = "yes")
+
+    AC_MSG_RESULT($with_init_script)
+])
+
+AC_DEFUN([LIBVIRT_RESULT_INIT_SCRIPT],[
+    AC_MSG_NOTICE([       Init script: $with_init_script])
+])
-- 
2.5.5




More information about the libvir-list mailing list