1
0
mirror of https://github.com/systemd/systemd synced 2024-07-08 20:15:55 +00:00

boot, meson: allow statically linked build

Build option "link-boot-shared" to build a statically linked bootctl and
systemd-bless-boot by using

  -Dlink-boot-shared=false

on systems with full systemd stack except bootctl and systemd-bless-boot,
such as CentOS/RHEL 9.
This commit is contained in:
Robert Scheck 2021-12-12 01:27:03 +01:00 committed by Yu Watanabe
parent ba38a24de3
commit 7964702007
2 changed files with 13 additions and 3 deletions

View File

@ -2281,11 +2281,17 @@ if conf.get('HAVE_PAM') == 1
endif
if conf.get('HAVE_BLKID') == 1 and conf.get('HAVE_GNU_EFI') == 1
if get_option('link-boot-shared')
boot_link_with = [libshared]
else
boot_link_with = [libsystemd_static, libshared_static]
endif
public_programs += executable(
'bootctl',
'src/boot/bootctl.c',
include_directories : includes,
link_with : [libshared],
link_with : [boot_link_with],
dependencies : [libblkid],
install_rpath : rootlibexecdir,
install : true)
@ -2294,7 +2300,7 @@ if conf.get('HAVE_BLKID') == 1 and conf.get('HAVE_GNU_EFI') == 1
'systemd-bless-boot',
'src/boot/bless-boot.c',
include_directories : includes,
link_with : [libshared],
link_with : [boot_link_with],
dependencies : [libblkid],
install_rpath : rootlibexecdir,
install : true,
@ -2304,7 +2310,7 @@ if conf.get('HAVE_BLKID') == 1 and conf.get('HAVE_GNU_EFI') == 1
'systemd-bless-boot-generator',
'src/boot/bless-boot-generator.c',
include_directories : includes,
link_with : [libshared],
link_with : [boot_link_with],
install_rpath : rootlibexecdir,
install : true,
install_dir : systemgeneratordir)
@ -4042,6 +4048,7 @@ foreach tuple : [
['link-systemctl-shared', get_option('link-systemctl-shared')],
['link-networkd-shared', get_option('link-networkd-shared')],
['link-timesyncd-shared', get_option('link-timesyncd-shared')],
['link-boot-shared', get_option('link-boot-shared')],
['fexecve'],
['standalone-binaries', get_option('standalone-binaries')],
]

View File

@ -23,6 +23,9 @@ option('link-networkd-shared', type: 'boolean',
description : 'link systemd-networkd and its helpers to libsystemd-shared.so')
option('link-timesyncd-shared', type: 'boolean',
description : 'link systemd-timesyncd and its helpers to libsystemd-shared.so')
option('link-boot-shared', type: 'boolean',
description : 'link bootctl and systemd-bless-boot against libsystemd-shared.so')
option('static-libsystemd', type : 'combo',
choices : ['false', 'true', 'pic', 'no-pic'],
description : '''install a static library for libsystemd''')