rpm-ostree/Makefile-daemon.am
Colin Walters ec5bdca9e5 buildsys: Compile daemon code directly with binary
A long time ago we de-duplicated the daemon and binary
into a single executable, but left the daemon code
building as an internal static library.

Let's take the next step and compile the sources directly as part
of the executable build.  For example, we can then de-duplicate
the `CFLAGS/CXXFLAGS`.  And in the future this will help us
turn on LTO.
2020-12-20 15:23:53 +00:00

116 lines
4.1 KiB
Plaintext

# This file used to declare a separate libtool static library.
# Now that the daemon and binary are the same thing, we have
# Makefile-rpm-ostree.am reuse these variables.
dbus_built_sources = rpm-ostreed-generated.h rpm-ostreed-generated.c
# TODO: Add --c-generate-autocleanup=all once we depend on GLib 2.50+
# https://github.com/projectatomic/rpm-ostree/pull/705
rpm-ostreed-generated.h: rpm-ostreed-generated.c
rpm-ostreed-generated.c: Makefile $(top_srcdir)/src/daemon/org.projectatomic.rpmostree1.xml
$(AM_V_GEN) gdbus-codegen \
--interface-prefix org.projectatomic.rpmostree1 \
--c-namespace RPMOSTree \
--c-generate-object-manager \
--generate-c-code rpm-ostreed-generated \
--generate-docbook rpm-ostreed-generated \
$(top_srcdir)/src/daemon/org.projectatomic.rpmostree1.xml \
$(NULL)
BUILT_SOURCES += $(dbus_built_sources)
CLEANFILES += rpm-ostreed-generated-org.projectatomic.rpmostree1.OS.xml \
rpm-ostreed-generated-org.projectatomic.rpmostree1.OSExperimental.xml \
rpm-ostreed-generated-org.projectatomic.rpmostree1.Sysroot.xml \
rpm-ostreed-generated-org.projectatomic.rpmostree1.Transaction.xml \
$(NULL)
librpmostreed_sources = \
src/daemon/rpmostreed-types.h \
src/daemon/rpmostreed-daemon.h \
src/daemon/rpmostreed-daemon.c \
src/daemon/rpmostreed-utils.h \
src/daemon/rpmostreed-utils.c \
src/daemon/rpmostreed-sysroot.h \
src/daemon/rpmostreed-sysroot.c \
src/daemon/rpmostree-sysroot-core.h \
src/daemon/rpmostree-sysroot-core.cxx \
src/daemon/rpmostree-sysroot-upgrader.h \
src/daemon/rpmostree-sysroot-upgrader.cxx \
src/daemon/rpmostreed-errors.h \
src/daemon/rpmostreed-errors.c \
src/daemon/rpmostreed-deployment-utils.h \
src/daemon/rpmostreed-deployment-utils.cxx \
src/daemon/rpmostreed-transaction.h \
src/daemon/rpmostreed-transaction.cxx \
src/daemon/rpmostreed-transaction-types.h \
src/daemon/rpmostreed-transaction-types.cxx \
src/daemon/rpmostreed-transaction-livefs.c \
src/daemon/rpmostree-package-variants.h \
src/daemon/rpmostree-package-variants.c \
src/daemon/rpmostreed-os.h \
src/daemon/rpmostreed-os.cxx \
src/daemon/rpmostreed-os-experimental.h \
src/daemon/rpmostreed-os-experimental.c \
$(NULL)
dbusconf_DATA = $(srcdir)/src/daemon/org.projectatomic.rpmostree1.conf
dbusconfdir = $(datadir)/dbus-1/system.d
systemdunit_service_in_files = \
$(srcdir)/src/daemon/rpm-ostreed.service.in \
$(srcdir)/src/daemon/rpm-ostreed-automatic.service.in \
$(srcdir)/src/daemon/rpm-ostree-bootstatus.service.in \
$(NULL)
systemdunit_service_files = $(systemdunit_service_in_files:.service.in=.service)
systemdunit_timer_files = $(srcdir)/src/daemon/rpm-ostreed-automatic.timer
systemdunit_DATA = \
$(systemdunit_service_files) \
$(systemdunit_timer_files) \
$(NULL)
systemdunitdir = $(prefix)/lib/systemd/system/
if BUILDOPT_ASAN
daemon_asan_options = -e s,@SYSTEMD_ENVIRON\@,Environment=ASAN_OPTIONS=detect_leaks=false,
else
daemon_asan_options = -e /@SYSTEMD_ENVIRON\@/d
endif
$(systemdunit_service_files): Makefile
$(SED_SUBST) $(daemon_asan_options) $@.in > $@
# We keep this stub script around to have SELinux labeling work,
# plus some backwards compatibility.
libexec_SCRIPTS = rpm-ostreed
rpm-ostreed: $(srcdir)/src/daemon/rpm-ostreed-stub.sh.in Makefile
$(SED_SUBST) $< > $@.tmp && mv $@.tmp $@
# We don't yet rename the DBus related items
service_in_files = $(srcdir)/src/daemon/org.projectatomic.rpmostree1.service.in
service_DATA = $(service_in_files:.service.in=.service)
servicedir = $(dbusservicedir)
%.service: %.service.in Makefile
$(SED_SUBST) $@.in > $@.tmp && mv $@.tmp $@
polkit_policy_DATA = $(srcdir)/src/daemon/org.projectatomic.rpmostree1.policy
polkit_policydir = $(datadir)/polkit-1/actions
dbus_introspection_DATA = src/daemon/org.projectatomic.rpmostree1.xml
dbus_introspectiondir = $(datadir)/dbus-1/interfaces
sysconf_DATA += $(srcdir)/src/daemon/rpm-ostreed.conf
EXTRA_DIST += \
$(dbus_introspection_DATA) \
$(dbusservice_DATA) \
$(polkit_policy_DATA) \
$(sysconf_DATA) \
$(service_in_files) \
$(systemdunit_service_in_files) \
$(systemdunit_timer_files) \
$(NULL)
CLEANFILES += \
$(service_DATA) \
$(systemdunit_service_files) \
$(NULL)