mirror of
https://github.com/ostreedev/ostree.git
synced 2024-12-25 01:34:34 +03:00
875915f6c9
Since we've split off the "prepare root as init" code into a separate file, we can now use glib to parse the config file again, which is a lot less hacky. This is particularly motivated by composefs, where we want to do more in the initramfs. Future patches may also link to parts of libostree.
92 lines
4.0 KiB
Plaintext
92 lines
4.0 KiB
Plaintext
# Copyright (C) 2011 Colin Walters <walters@verbum.org>
|
|
#
|
|
# SPDX-License-Identifier: LGPL-2.0+
|
|
#
|
|
# This library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2 of the License, or (at your option) any later version.
|
|
#
|
|
# This library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with this library. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
ostree_prepare_root_SOURCES = \
|
|
src/switchroot/ostree-mount-util.h
|
|
ostree_prepare_root_CFLAGS =
|
|
ostree_prepare_root_CPPFLAGS = $(AM_CPPFLAGS)
|
|
ostree_prepare_root_LDADD =
|
|
|
|
if BUILDOPT_SYSTEMD
|
|
ostree_boot_PROGRAMS += ostree-remount
|
|
else
|
|
# It is built anyway as a side-effect of having the symlink in tests/,
|
|
# and if we declare it here, it gets cleaned up properly
|
|
check_PROGRAMS += ostree-remount
|
|
endif
|
|
|
|
if BUILDOPT_USE_STATIC_COMPILER
|
|
ostree_prepare_root_SOURCES += src/switchroot/ostree-prepare-root-static.c
|
|
|
|
# ostree-prepare-root can be used as init in a system without a populated /lib.
|
|
# To support this use case we need to link statically as we will be unable to
|
|
# locate libc.so at run time if it's not installed in /lib.
|
|
#
|
|
# We support building ostree-prepare-root with a different compiler to the rest
|
|
# of ostree so we can use musl rather than glibc. This reduces the size of the
|
|
# executable significantly: from ~700K -> ~30K. We have to use _SCRIPTS here
|
|
# to get autotools to install this as an executable but without generating rules
|
|
# to make it itself which we have specified manually. See
|
|
# https://lists.gnu.org/archive/html/help-gnu-utils/2007-01/msg00007.html
|
|
ostree_boot_SCRIPTS += ostree-prepare-root
|
|
|
|
ostree-prepare-root : $(ostree_prepare_root_SOURCES)
|
|
$(STATIC_COMPILER) -o $@ -static $(top_srcdir)/src/switchroot/ostree-prepare-root-static.c $(ostree_prepare_root_CPPFLAGS) $(AM_CFLAGS) $(DEFAULT_INCLUDES) -DOSTREE_PREPARE_ROOT_STATIC=1
|
|
CLEANFILES += ostree-prepare-root
|
|
else
|
|
ostree_boot_PROGRAMS += ostree-prepare-root
|
|
ostree_prepare_root_CFLAGS += $(AM_CFLAGS) -Isrc/switchroot -I$(srcdir)/composefs
|
|
ostree_prepare_root_SOURCES += src/switchroot/ostree-prepare-root.c
|
|
ostree_prepare_root_CPPFLAGS += $(OT_INTERNAL_GIO_UNIX_CFLAGS) -I $(srcdir)/libglnx
|
|
ostree_prepare_root_LDADD += $(AM_LDFLAGS) $(OT_INTERNAL_GIO_UNIX_LIBS) libglnx.la
|
|
endif # BUILDOPT_USE_STATIC_COMPILER
|
|
|
|
|
|
ostree_remount_SOURCES = \
|
|
src/switchroot/ostree-mount-util.h \
|
|
src/switchroot/ostree-remount.c \
|
|
$(NULL)
|
|
ostree_remount_CPPFLAGS = $(AM_CPPFLAGS) $(OT_INTERNAL_GIO_UNIX_CFLAGS) -Isrc/switchroot -I$(srcdir)/libglnx
|
|
ostree_remount_LDADD = $(AM_LDFLAGS) $(OT_INTERNAL_GIO_UNIX_LIBS) libglnx.la
|
|
|
|
if USE_COMPOSEFS
|
|
ostree_prepare_root_LDADD += libcomposefs.la
|
|
endif
|
|
|
|
if BUILDOPT_SYSTEMD
|
|
ostree_prepare_root_CPPFLAGS += -DHAVE_SYSTEMD=1
|
|
ostree_prepare_root_LDADD += $(LIBSYSTEMD_LIBS)
|
|
endif
|
|
|
|
# This is the "new mode" of using a generator for /var; see
|
|
# https://github.com/ostreedev/ostree/issues/855
|
|
if BUILDOPT_SYSTEMD_AND_LIBMOUNT
|
|
ostree_prepare_root_CPPFLAGS += -DHAVE_SYSTEMD_AND_LIBMOUNT=1
|
|
ostree_remount_CPPFLAGS += -DHAVE_SYSTEMD_AND_LIBMOUNT=1
|
|
|
|
systemdsystemgenerator_PROGRAMS = ostree-system-generator
|
|
GITIGNOREFILES += $(systemdsystemgenerator_PROGRAMS)
|
|
ostree_system_generator_SOURCES = src/switchroot/ostree-mount-util.h \
|
|
src/switchroot/ostree-system-generator.c
|
|
ostree_system_generator_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/libglnx -I$(srcdir)/src/libostree
|
|
ostree_system_generator_CFLAGS = $(AM_CFLAGS) $(OT_INTERNAL_GIO_UNIX_CFLAGS)
|
|
ostree_system_generator_LDADD = $(AM_LDFLAGS) libglnx.la libostree-1.la $(OT_INTERNAL_GIO_UNIX_LIBS)
|
|
|
|
# Allow the distcheck install under $prefix test to pass
|
|
AM_DISTCHECK_CONFIGURE_FLAGS += --with-systemdsystemgeneratordir='$${libdir}/systemd/system-generators'
|
|
endif
|