summaryrefslogtreecommitdiff
path: root/src/basic
diff options
context:
space:
mode:
Diffstat (limited to 'src/basic')
-rw-r--r--src/basic/build.c216
-rw-r--r--src/basic/build.h159
-rw-r--r--src/basic/meson.build1
-rw-r--r--src/basic/util.c4
4 files changed, 220 insertions, 160 deletions
diff --git a/src/basic/build.c b/src/basic/build.c
new file mode 100644
index 0000000000..45074591a6
--- /dev/null
+++ b/src/basic/build.c
@@ -0,0 +1,216 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "build.h"
+
+const char* const systemd_features =
+
+ /* PAM and MAC frameworks */
+
+#if HAVE_PAM
+ "+PAM"
+#else
+ "-PAM"
+#endif
+
+#if HAVE_AUDIT
+ " +AUDIT"
+#else
+ " -AUDIT"
+#endif
+
+#if HAVE_SELINUX
+ " +SELINUX"
+#else
+ " -SELINUX"
+#endif
+
+#if HAVE_APPARMOR
+ " +APPARMOR"
+#else
+ " -APPARMOR"
+#endif
+
+#if ENABLE_IMA
+ " +IMA"
+#else
+ " -IMA"
+#endif
+
+#if ENABLE_SMACK
+ " +SMACK"
+#else
+ " -SMACK"
+#endif
+
+#if HAVE_SECCOMP
+ " +SECCOMP"
+#else
+ " -SECCOMP"
+#endif
+
+ /* crypto libraries */
+
+#if HAVE_GCRYPT
+ " +GCRYPT"
+#else
+ " -GCRYPT"
+#endif
+
+#if HAVE_GNUTLS
+ " +GNUTLS"
+#else
+ " -GNUTLS"
+#endif
+
+#if HAVE_OPENSSL
+ " +OPENSSL"
+#else
+ " -OPENSSL"
+#endif
+
+ /* all other libraries, sorted alphabetically */
+
+#if HAVE_ACL
+ " +ACL"
+#else
+ " -ACL"
+#endif
+
+#if HAVE_BLKID
+ " +BLKID"
+#else
+ " -BLKID"
+#endif
+
+#if HAVE_LIBCURL
+ " +CURL"
+#else
+ " -CURL"
+#endif
+
+#if HAVE_ELFUTILS
+ " +ELFUTILS"
+#else
+ " -ELFUTILS"
+#endif
+
+#if HAVE_LIBFIDO2
+ " +FIDO2"
+#else
+ " -FIDO2"
+#endif
+
+#if HAVE_LIBIDN2
+ " +IDN2"
+#else
+ " -IDN2"
+#endif
+
+#if HAVE_LIBIDN
+ " +IDN"
+#else
+ " -IDN"
+#endif
+
+#if HAVE_LIBIPTC
+ " +IPTC"
+#else
+ " -IPTC"
+#endif
+
+#if HAVE_KMOD
+ " +KMOD"
+#else
+ " -KMOD"
+#endif
+
+#if HAVE_LIBCRYPTSETUP
+ " +LIBCRYPTSETUP"
+#else
+ " -LIBCRYPTSETUP"
+#endif
+
+#if HAVE_LIBFDISK
+ " +LIBFDISK"
+#else
+ " -LIBFDISK"
+#endif
+
+#if HAVE_PCRE2
+ " +PCRE2"
+#else
+ " -PCRE2"
+#endif
+
+#if HAVE_PWQUALITY
+ " +PWQUALITY"
+#else
+ " -PWQUALITY"
+#endif
+
+#if HAVE_P11KIT
+ " +P11KIT"
+#else
+ " -P11KIT"
+#endif
+
+#if HAVE_QRENCODE
+ " +QRENCODE"
+#else
+ " -QRENCODE"
+#endif
+
+ /* compressors */
+
+#if HAVE_BZIP2
+ " +BZIP2"
+#else
+ " -BZIP2"
+#endif
+
+#if HAVE_LZ4
+ " +LZ4"
+#else
+ " -LZ4"
+#endif
+
+#if HAVE_XZ
+ " +XZ"
+#else
+ " -XZ"
+#endif
+
+#if HAVE_ZLIB
+ " +ZLIB"
+#else
+ " -ZLIB"
+#endif
+
+#if HAVE_ZSTD
+ " +ZSTD"
+#else
+ " -ZSTD"
+#endif
+
+ /* other stuff that doesn't fit above */
+
+#if HAVE_XKBCOMMON
+ " +XKBCOMMON"
+#else
+ " -XKBCOMMON"
+#endif
+
+#if ENABLE_UTMP
+ " +UTMP"
+#else
+ " -UTMP"
+#endif
+
+#if HAVE_SYSV_COMPAT
+ " +SYSVINIT"
+#else
+ " -SYSVINIT"
+#endif
+
+ " default-hierarchy=" DEFAULT_HIERARCHY_NAME
+ ;
diff --git a/src/basic/build.h b/src/basic/build.h
index 4697639efa..3de0d36cc9 100644
--- a/src/basic/build.h
+++ b/src/basic/build.h
@@ -3,164 +3,7 @@
#include "version.h"
-#if HAVE_PAM
-#define _PAM_FEATURE_ "+PAM"
-#else
-#define _PAM_FEATURE_ "-PAM"
-#endif
-
-#if HAVE_AUDIT
-#define _AUDIT_FEATURE_ "+AUDIT"
-#else
-#define _AUDIT_FEATURE_ "-AUDIT"
-#endif
-
-#if HAVE_SELINUX
-#define _SELINUX_FEATURE_ "+SELINUX"
-#else
-#define _SELINUX_FEATURE_ "-SELINUX"
-#endif
-
-#if HAVE_APPARMOR
-#define _APPARMOR_FEATURE_ "+APPARMOR"
-#else
-#define _APPARMOR_FEATURE_ "-APPARMOR"
-#endif
-
-#if ENABLE_IMA
-#define _IMA_FEATURE_ "+IMA"
-#else
-#define _IMA_FEATURE_ "-IMA"
-#endif
-
-#if ENABLE_SMACK
-#define _SMACK_FEATURE_ "+SMACK"
-#else
-#define _SMACK_FEATURE_ "-SMACK"
-#endif
-
-#if HAVE_SYSV_COMPAT
-#define _SYSVINIT_FEATURE_ "+SYSVINIT"
-#else
-#define _SYSVINIT_FEATURE_ "-SYSVINIT"
-#endif
-
-#if ENABLE_UTMP
-#define _UTMP_FEATURE_ "+UTMP"
-#else
-#define _UTMP_FEATURE_ "-UTMP"
-#endif
-
-#if HAVE_LIBCRYPTSETUP
-#define _LIBCRYPTSETUP_FEATURE_ "+LIBCRYPTSETUP"
-#else
-#define _LIBCRYPTSETUP_FEATURE_ "-LIBCRYPTSETUP"
-#endif
-
-#if HAVE_GCRYPT
-#define _GCRYPT_FEATURE_ "+GCRYPT"
-#else
-#define _GCRYPT_FEATURE_ "-GCRYPT"
-#endif
-
-#if HAVE_GNUTLS
-#define _GNUTLS_FEATURE_ "+GNUTLS"
-#else
-#define _GNUTLS_FEATURE_ "-GNUTLS"
-#endif
-
-#if HAVE_ACL
-#define _ACL_FEATURE_ "+ACL"
-#else
-#define _ACL_FEATURE_ "-ACL"
-#endif
-
-#if HAVE_XZ
-#define _XZ_FEATURE_ "+XZ"
-#else
-#define _XZ_FEATURE_ "-XZ"
-#endif
-
-#if HAVE_LZ4
-#define _LZ4_FEATURE_ "+LZ4"
-#else
-#define _LZ4_FEATURE_ "-LZ4"
-#endif
-
-#if HAVE_ZSTD
-#define _ZSTD_FEATURE_ "+ZSTD"
-#else
-#define _ZSTD_FEATURE_ "-ZSTD"
-#endif
-
-#if HAVE_SECCOMP
-#define _SECCOMP_FEATURE_ "+SECCOMP"
-#else
-#define _SECCOMP_FEATURE_ "-SECCOMP"
-#endif
-
-#if HAVE_BLKID
-#define _BLKID_FEATURE_ "+BLKID"
-#else
-#define _BLKID_FEATURE_ "-BLKID"
-#endif
-
-#if HAVE_ELFUTILS
-#define _ELFUTILS_FEATURE_ "+ELFUTILS"
-#else
-#define _ELFUTILS_FEATURE_ "-ELFUTILS"
-#endif
-
-#if HAVE_KMOD
-#define _KMOD_FEATURE_ "+KMOD"
-#else
-#define _KMOD_FEATURE_ "-KMOD"
-#endif
-
-#if HAVE_LIBIDN2
-#define _IDN2_FEATURE_ "+IDN2"
-#else
-#define _IDN2_FEATURE_ "-IDN2"
-#endif
-
-#if HAVE_LIBIDN
-#define _IDN_FEATURE_ "+IDN"
-#else
-#define _IDN_FEATURE_ "-IDN"
-#endif
-
-#if HAVE_PCRE2
-#define _PCRE2_FEATURE_ "+PCRE2"
-#else
-#define _PCRE2_FEATURE_ "-PCRE2"
-#endif
-
-#define _CGROUP_HIERARCHY_ "default-hierarchy=" DEFAULT_HIERARCHY_NAME
-
-#define SYSTEMD_FEATURES \
- _PAM_FEATURE_ " " \
- _AUDIT_FEATURE_ " " \
- _SELINUX_FEATURE_ " " \
- _IMA_FEATURE_ " " \
- _APPARMOR_FEATURE_ " " \
- _SMACK_FEATURE_ " " \
- _SYSVINIT_FEATURE_ " " \
- _UTMP_FEATURE_ " " \
- _LIBCRYPTSETUP_FEATURE_ " " \
- _GCRYPT_FEATURE_ " " \
- _GNUTLS_FEATURE_ " " \
- _ACL_FEATURE_ " " \
- _XZ_FEATURE_ " " \
- _LZ4_FEATURE_ " " \
- _ZSTD_FEATURE_ " " \
- _SECCOMP_FEATURE_ " " \
- _BLKID_FEATURE_ " " \
- _ELFUTILS_FEATURE_ " " \
- _KMOD_FEATURE_ " " \
- _IDN2_FEATURE_ " " \
- _IDN_FEATURE_ " " \
- _PCRE2_FEATURE_ " " \
- _CGROUP_HIERARCHY_
+extern const char* const systemd_features;
enum {
BUILD_MODE_DEVELOPER,
diff --git a/src/basic/meson.build b/src/basic/meson.build
index 1183ea83ad..a4f97c1fb5 100644
--- a/src/basic/meson.build
+++ b/src/basic/meson.build
@@ -19,6 +19,7 @@ basic_sources = files('''
blockdev-util.h
btrfs-util.c
btrfs-util.h
+ build.c
build.h
bus-label.c
bus-label.h
diff --git a/src/basic/util.c b/src/basic/util.c
index f98ecf3858..b080ce4e96 100644
--- a/src/basic/util.c
+++ b/src/basic/util.c
@@ -193,8 +193,8 @@ int container_get_leader(const char *machine, pid_t *pid) {
}
int version(void) {
- puts("systemd " STRINGIFY(PROJECT_VERSION) " (" GIT_VERSION ")\n"
- SYSTEMD_FEATURES);
+ printf("systemd " STRINGIFY(PROJECT_VERSION) " (" GIT_VERSION ")\n%s\n",
+ systemd_features);
return 0;
}