aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2019-06-24 12:56:24 +0300
committerSergey Poznyakoff <gray@gnu.org>2019-06-24 12:56:24 +0300
commit006bfbc5235c181783445d321ce7a7e3c6d8bd8a (patch)
treef483e0d30c3e801add01b372b24a342281b70b86 /configure.ac
parentcb90ca582a46ef9f0779837dc4c6fb00656e70c9 (diff)
downloadpies-006bfbc5235c181783445d321ce7a7e3c6d8bd8a.tar.gz
pies-006bfbc5235c181783445d321ce7a7e3c6d8bd8a.tar.bz2
Enable/disable SystemV init code at compile time
* configure.ac: New option --enable-sysvinit. Disable the init code if RUN_LVL is not available. (PIES_SYSVINIT_ENABLED): New configuration define. (PIES_COND_SYSVINIT): New condition Print configuration settings summary. * src/pies.h (is_sysvinit): Check for PIES_SYSVINIT_ENABLED. (SYSVINIT_ACTIVE): New macro. * grecs: Upgrade. * src/Makefile.am: Conditionally link sysvinit-related code. * src/cmdline.opt: Disable the --telinit option if sysvinit support is not available. (parse_options): Use SYSVINIT_ACTIVE in the conditional. * src/comp.c (component_verify): Check if component definition is allowed by the current state of the sysvinit support. * src/ctl.c: Disable the /runlevel entry point if sysvinit support is not compiled. * src/diag.c (stderr_open): Make sure sysvinit-related code is not compiled if the sysvinit support is not available. * src/pies.c (config_syntax_tab): Add entry for CONF_INITTAB only if sysvinit support is available. (_cb_initdefault,_cb_runlevels): Remove. Use cb_initdefault and cb_runlevels instead. (component_keywords): Disable runlevels without sysvinit support. (pies_keywords): Same for initdefault. Use SYSVINIT_ACTIVE to suppress compilation of sysvinit code without sysvinit support. * src/progman.c: Use SYSVINIT_ACTIVE to suppress compilation of sysvinit code without sysvinit support. * src/sysvinit.c (cb_initdefault,cb_runlevels): New functions.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac46
1 files changed, 46 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index ae3a9c7..3a23a1a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -125,6 +125,30 @@ AC_ARG_ENABLE([inetd],
no) ;;
esac])
+sysvinit_status=maybe
+AC_ARG_ENABLE([sysvinit],
+ AC_HELP_STRING([--enable-sysvinit],
+ [compile the SystemV init support]),
+ [sysvinit_status=$enableval])
+
+if test $sysvinit_status = "maybe"; then
+ AC_TRY_COMPILE([#ifdef HAVE_UTMPX_H
+# include <utmpx.h>
+#else
+# include <utmp.h>
+#endif
+],
+[int x = RUN_LVL;],
+[sysvinit_status=yes],
+[sysvinit_status=no])
+fi
+
+test $sysvinit_status = "no"
+PIES_SYSVINIT_ENABLED=$?
+AC_DEFINE_UNQUOTED([PIES_SYSVINIT_ENABLED],[$PIES_SYSVINIT_ENABLED],
+ [whether SystemV init support is compiled])
+AM_CONDITIONAL([PIES_COND_SYSVINIT],[test $sysvinit_status = "yes"])
+
AH_BOTTOM([
# ifndef ATTRIBUTE_NORETURN
# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
@@ -147,6 +171,28 @@ AC_CONFIG_TESTDIR(tests)
AC_CONFIG_FILES([tests/Makefile tests/atlocal])
AM_MISSING_PROG([AUTOM4TE], [autom4te])
+AC_CONFIG_COMMANDS([status],[
+cat <<EOF
+Configuration summary:
+
+URL of the control API ............................. $control_url
+PAM support ........................................ $status_pam
+SystemV initialization support ..................... $sysvinit_status
+EOF
+if test $sysvinit_status = "yes"; then
+ cat <<EOF
+URL of the SystemV init ............................ $sysvinit_control_url
+Emergency shell .................................... $emergency_shell
+EOF
+fi
+],
+[sysvinit_status=$sysvinit_status
+control_url=`echo "$DEFAULT_PIES_CONTROL_URL" | sed 's/\\\$/\\\\\$/g'`
+sysvinit_control_url=$DEFAULT_INIT_CONTROL_URL
+emergency_shell=$EMERGENCY_SHELL
+status_pam=$status_pam
+])
+
AC_CONFIG_FILES([Makefile
gnu/Makefile
lib/Makefile

Return to:

Send suggestions and report system problems to the System administrator.