libelogind_version = '0.22.0'
#endif // 0
-# We need the same data in two different formats, ugh!
+# We need the same data in three different formats, ugh!
# Also, for hysterical reasons, we use different variable
# names, sometimes. Not all variables are included in every
# set. Ugh, ugh, ugh!
#endif // 0
substs.set('PACKAGE_VERSION', meson.project_version())
+m4_defines = []
+
#####################################################################
#if 0 /// elogind does not need this
#
#if 0 /// UNNEEDED by elogind
# sysvinit_path = get_option('sysvinit-path')
# sysvrcnd_path = get_option('sysvrcnd-path')
-# conf.set10('HAVE_SYSV_COMPAT', sysvinit_path != '' and sysvrcnd_path != '',
+# have = sysvinit_path != '' and sysvrcnd_path != ''
+# conf.set10('HAVE_SYSV_COMPAT', have,
# description : 'SysV init scripts and rcN.d links are supported')
#endif // 0
+m4_defines += have ? ['-DHAVE_SYSV_COMPAT'] : []
# join_paths ignore the preceding arguments if an absolute component is
# encountered, so this should canonicalize various paths when they are
foreach arg : ['-Wno-typedef-redefinition',
'-Wno-gnu-variable-sized-type-not-at-end',
]
- if cc.has_argument(arg)
+ if cc.has_argument(arg,
+ name : '@0@ is supported'.format(arg))
add_project_arguments(arg, language : 'c')
endif
endforeach
if get_option('buildtype') != 'debug'
foreach arg : ['-ffunction-sections',
'-fdata-sections']
- if cc.has_argument(arg)
+ if cc.has_argument(arg,
+ name : '@0@ is supported'.format(arg))
add_project_arguments(arg, language : 'c')
endif
endforeach
# endif
# substs.set('USERS_GID', users_gid)
#
-# conf.set10('ENABLE_ADM_GROUP', get_option('adm-group'))
-# conf.set10('ENABLE_WHEEL_GROUP', get_option('wheel-group'))
+# if get_option('adm-group')
+# m4_defines += ['-DENABLE_ADM_GROUP']
+# endif
+#
+# if get_option('wheel-group')
+# m4_defines += ['-DENABLE_WHEEL_GROUP']
+# endif
#
# substs.set('DEV_KVM_MODE', get_option('dev-kvm-mode'))
# substs.set('GROUP_RENDER_MODE', get_option('group-render-mode'))
# have = false
# libseccomp = []
# endif
+# m4_defines += have ? ['-DHAVE_SECCOMP'] : []
#else
libseccomp = []
#endif // 0
libselinux = []
endif
conf.set10('HAVE_SELINUX', have)
+m4_defines += have ? ['-DHAVE_SELINUX'] : []
#if 0 /// UNNEEDED by elogind
# want_apparmor = get_option('apparmor')
# have = false
# libapparmor = []
# endif
+# m4_defines += have ? ['-DHAVE_APPARMOR'] : []
#else
libapparmor = []
#endif // 0
smack_run_label = get_option('smack-run-label')
if smack_run_label != ''
conf.set_quoted('SMACK_RUN_LABEL', smack_run_label)
+ m4_defines += ['-DHAVE_SMACK_RUN_LABEL']
endif
want_polkit = get_option('polkit')
libacl = []
endif
conf.set10('HAVE_ACL', have)
+m4_defines += have ? ['-DHAVE_ACL'] : []
want_audit = get_option('audit')
if want_audit != 'false' and not fuzzer_build
libpam_misc = []
endif
conf.set10('HAVE_PAM', have)
+m4_defines += have ? ['-DHAVE_PAM'] : []
#if 0 /// UNNEEDED by elogind
# want_microhttpd = get_option('microhttpd')
# libmicrohttpd = []
# endif
# conf.set10('HAVE_MICROHTTPD', have)
+# m4_defines += have ? ['-DHAVE_MICROHTTPD'] : []
#
# want_libcryptsetup = get_option('libcryptsetup')
# if want_libcryptsetup != 'false' and not fuzzer_build
# libcurl = []
# endif
# conf.set10('HAVE_LIBCURL', have)
+# m4_defines += have ? ['-DHAVE_LIBCURL'] : []
#
# want_libidn = get_option('libidn')
# want_libidn2 = get_option('libidn2')
# libidn = []
# endif
# conf.set10('HAVE_LIBIDN', have)
+# m4_defines += have ? ['-DHAVE_LIBIDN'] : []
# if not have and want_libidn2 != 'false' and not fuzzer_build
# # libidn is used for both libidn and libidn2 objects
# libidn = dependency('libidn2',
# have = false
# endif
# conf.set10('HAVE_LIBIDN2', have)
+# m4_defines += have ? ['-DHAVE_LIBIDN2'] : []
#
# want_libiptc = get_option('libiptc')
# if want_libiptc != 'false' and not fuzzer_build
# libiptc = []
# endif
# conf.set10('HAVE_LIBIPTC', have)
+# m4_defines += have ? ['-DHAVE_LIBIPTC'] : []
#
# want_qrencode = get_option('qrencode')
# if want_qrencode != 'false' and not fuzzer_build
# 'gshadow',
# 'idn',
# 'nss-systemd']
+# m4_defines += have ? ['-D' + name] : []
#else
'smack']
#endif // 0
conf.set10(name, have)
endforeach
-conf.set10('ENABLE_TIMEDATECTL', get_option('timedated') or get_option('timesyncd'))
-
want_tests = get_option('tests')
install_tests = get_option('install-tests')
slow_tests = get_option('slow-tests')
output : 'config.h',
configuration : conf)
-meson_apply_m4 = find_program('tools/meson-apply-m4.sh')
-
includes = include_directories('src/basic',
'src/shared',
'src/systemd',
install : true,
install_dir : rootlibdir)
+static_libelogind = get_option('static-libelogind')
+static_libelogind_pic = static_libelogind == 'true' or static_libelogind == 'pic'
+
+install_libelogind_static = static_library(
+ 'elogind',
+ libelogind_sources,
+ journal_client_sources,
+ include_directories : includes,
+ link_with : [libbasic,
+ libbasic_gcrypt],
+ build_by_default : static_libelogind != 'false',
+ install : static_libelogind != 'false',
+ install_dir : rootlibdir,
+ pic : static_libelogind == 'true' or static_libelogind == 'pic',
+ dependencies : [threads,
+ librt,
+ libxz,
+ liblz4,
+ libgcrypt],
+ c_args : libelogind_c_args + (static_libelogind_pic ? [] : ['-fno-PIC']))
+
############################################################
# binaries that have --help and are intended for use by humans,
# endif
# endif
#
-# executable('systemd-user-runtime-dir',
-# user_runtime_dir_sources,
-# include_directories : includes,
-# link_with : [libshared, liblogind_core],
-# install_rpath : rootlibexecdir,
-# install : true,
-# install_dir : rootlibexecdir)
#else
executable('elogind',
# install_rpath : rootlibexecdir,
# install : true,
# install_dir : rootlibexecdir)
-# endif
#
-# if conf.get('ENABLE_TIMEDATECTL') == 1
# exe = executable('timedatectl',
# 'src/timedate/timedatectl.c',
# include_directories : includes,
# install_rpath : rootlibexecdir,
# link_with : [libshared],
-# dependencies : [libm],
# install : true)
# public_programs += [exe]
# endif