Files
flatpak/Makefile.am
Simon McVittie 9b87e4c0d4 build: Accept gpgme >= 1.8.0 as equivalent to gpgme-pthread
Before 1.8.0 (2016), gpgme used to have two different thread-safe builds,
one for use with POSIX-style pthread and one for use with GNU Portable
Threads (libpth), plus a non-thread-safe version. Since 1.8.0, this
complexity has gone away and there is only libgpgme, which is thread-safe.

In practice this meant that on modern distros since 2016, we would always
fail to detect gpgme via pkg-config and fall back to calling gpgme-config.

Library-specific -config scripts are generally considered problematic
for multiarch, multilib and cross-compiling, and the gpgme-config script
recently disappeared from GPGME's Debian packaging
(see https://bugs.debian.org/1022348 and https://bugs.debian.org/1023601),
so it's better if we can prefer to use pkg-config.

If gpgme >= 1.8.0 is not found, fall back to gpgme-pthread >= 1.1.8,
either discovered via pkg-config or via gpgme-config.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2022-11-10 15:23:58 +00:00

251 lines
7.0 KiB
Makefile

NULL =
bin_PROGRAMS = $(NULL)
dist_installed_test_extra_scripts = $(NULL)
noinst_PROGRAMS = $(NULL)
noinst_LTLIBRARIES = $(NULL)
libexec_PROGRAMS = $(NULL)
CLEANFILES = $(NULL)
MAINTAINERCLEANFILES = $(NULL)
DISTCLEANFILES= $(NULL)
BUILT_SOURCES = $(NULL)
EXTRA_DIST =
include $(top_srcdir)/buildutil/glib-tap.mk
SUBDIRS =
if BUILD_DOCUMENTATION
SUBDIRS += . doc
endif
SUBDIRS += po
%.service: %.service.in config.log
$(AM_V_GEN) $(SED) -e "s|\@libexecdir\@|$(libexecdir)|" \
-e "s|\@localstatedir\@|$(localstatedir)|" \
-e "s|\@media_dir\@|$(RUN_MEDIA_DIR)|" \
-e "s|\@extraargs\@||" $< > $@
dbus_servicedir = $(DBUS_SERVICE_DIR)
service_in_files = $(NULL)
dbus_service_DATA = $(NULL)
systemdsystemunit_DATA = $(NULL)
systemduserunit_DATA = $(NULL)
CLEANFILES += $(dbus_service_DATA)
CLEANFILES += $(systemduserunit_DATA)
EXTRA_DIST += $(service_in_files)
FLATPAK_BINDIR=$(bindir)
ACLOCAL_AMFLAGS = -I m4 -I subprojects/libglnx ${ACLOCAL_FLAGS}
AM_CPPFLAGS = \
-DFLATPAK_BINDIR=\"$(FLATPAK_BINDIR)\" \
-DFLATPAK_SYSTEMDIR=\"$(SYSTEM_INSTALL_DIR)\" \
-DFLATPAK_CONFIGDIR=\"$(sysconfdir)/flatpak\" \
-DFLATPAK_BASEDIR=\"$(pkgdatadir)\" \
-DFLATPAK_TRIGGERDIR=\"$(pkgdatadir)/triggers\" \
-DSYSTEM_FONTS_DIR=\"$(SYSTEM_FONTS_DIR)\" \
-DSYSTEM_HELPER_USER=\"$(SYSTEM_HELPER_USER)\" \
-DSYSTEM_FONT_CACHE_DIRS=\"$(SYSTEM_FONT_CACHE_DIRS)\" \
-DG_LOG_DOMAIN=\"flatpak\" \
-I$(srcdir)/subprojects/libglnx \
-I$(srcdir)/common \
-I$(builddir)/common \
-include "config.h" \
$(NULL)
ASAN_FLAGS=
if ENABLE_ASAN
ASAN_FLAGS = -fsanitize=undefined -fsanitize-undefined-trap-on-error -fsanitize=address
endif
AM_CFLAGS = $(WARN_CFLAGS) $(ASAN_FLAGS)
AM_LDFLAGS = $(ASAN_FLAGS)
if WITH_SYSTEM_BWRAP
AM_CPPFLAGS += -DHELPER=\"$(BWRAP)\"
else
AM_CPPFLAGS += -DHELPER=\"$(libexecdir)/flatpak-bwrap\"
endif
if WITH_SYSTEM_DBUS_PROXY
AM_CPPFLAGS += -DDBUSPROXY=\"$(DBUS_PROXY)\"
else
AM_CPPFLAGS += -DDBUSPROXY=\"$(libexecdir)/flatpak-dbus-proxy\"
endif
triggersdir = $(pkgdatadir)/triggers
dist_triggers_SCRIPTS = \
triggers/gtk-icon-cache.trigger \
triggers/mime-database.trigger \
triggers/desktop-database.trigger \
$(NULL)
# This canonicalizes the PKG_CHECK_MODULES or AM_PATH_GPGME results
INTERNAL_GPGME_CFLAGS = $(DEP_GPGME_CFLAGS) $(DEP_GPGME_PTHREAD_CFLAGS) $(GPGME_PTHREAD_CFLAGS)
INTERNAL_GPGME_LIBS = $(DEP_GPGME_LIBS) $(DEP_GPGME_PTHREAD_LIBS) $(GPGME_PTHREAD_LIBS)
lib_LTLIBRARIES =
noinst_LTLIBRARIES += libglnx.la
libglnx_srcpath := $(srcdir)/subprojects/libglnx
# This intentionally does not include AM_CFLAGS, libglnx always uses those
libglnx_cflags := \
$(BASE_CFLAGS) \
"-I$(libglnx_srcpath)" \
-std=gnu99 \
$(HIDDEN_VISIBILITY_CFLAGS) \
$(NULL)
libglnx_libs := $(BASE_LIBS)
include subprojects/Makefile-libglnx.am.inc
include common/Makefile.am.inc
include data/Makefile.am.inc
include app/Makefile.am.inc
include session-helper/Makefile.am.inc
include portal/Makefile.am.inc
include system-helper/Makefile.am.inc
include oci-authenticator/Makefile.am.inc
include icon-validator/Makefile.am.inc
include revokefs/Makefile.am.inc
include selinux/Makefile.am.inc
include sideload-repos-systemd/Makefile.am.inc
include tests/Makefile.am.inc
if !WITH_SYSTEM_DBUS_PROXY
libexec_PROGRAMS+=flatpak-dbus-proxy
flatpak_dbus_proxy_SOURCES = \
subprojects/dbus-proxy/flatpak-proxy.c \
subprojects/dbus-proxy/flatpak-proxy.h \
subprojects/dbus-proxy/dbus-proxy.c \
subprojects/dbus-proxy/backport-autoptr.h \
$(NULL)
flatpak_dbus_proxy_LDADD = $(AM_LDADD) $(BASE_LIBS)
flatpak_dbus_proxy_CFLAGS = $(AM_CFLAGS) $(BASE_CFLAGS)
endif
if !WITH_SYSTEM_BWRAP
bwrap_PROGRAMS = flatpak-bwrap
flatpak_bwrap_SOURCES = $(bwrap_SOURCES)
flatpak_bwrap_CFLAGS = $(AM_CFLAGS) $(bwrap_CFLAGS)
flatpak_bwrap_LDADD = $(AM_LDADD) $(bwrap_LDADD) $(CAP_LIB)
bwrapdir = $(libexecdir)
include subprojects/Makefile-bwrap.am.inc
endif # !WITH_SYSTEM_BWRAP
# NOTE: bwrap is install-bwrapPROGS which is run from install-data, not install-exec, this data-hook is used
install-data-hook:
$(MAKE) $(AM_MAKEFLAGS) install-test-data-hook
if !WITH_SYSTEM_BWRAP
if PRIV_MODE_SETUID
$(SUDO_BIN) chown root $(DESTDIR)$(libexecdir)/flatpak-bwrap
$(SUDO_BIN) chmod u+s $(DESTDIR)$(libexecdir)/flatpak-bwrap
endif # !PRIV_MODE_SETUID
endif # !WITH_SYSTEM_BWRAP
bashcompletiondir = $(datadir)/bash-completion/completions
bashcompletion_DATA = completion/flatpak
EXTRA_DIST += $(bashcompletion_DATA)
zshcompletiondir = $(datadir)/zsh/site-functions
zshcompletion_DATA = completion/_flatpak
EXTRA_DIST += $(zshcompletion_DATA)
fishcompletiondir = $(datadir)/fish/vendor_completions.d
fishcompletion_DATA = completion/flatpak.fish
EXTRA_DIST += $(fishcompletion_DATA)
profiledir = $(PROFILE_DIR)
profile_DATA = profile/flatpak.sh
EXTRA_DIST += $(profile_DATA)
fishconfdir = $(datadir)/fish/vendor_conf.d
fishconf_DATA = profile/flatpak.fish
EXTRA_DIST += $(fishconf_DATA)
envdir = $(datadir)/gdm/env.d
env_DATA =
if INSTALL_GDM_ENV_FILE
env_DATA += flatpak.env
endif
EXTRA_DIST += env.d/flatpak.env.in env.d/60-flatpak env.d/60-flatpak-system-only
DISTCLEANFILES += flatpak.env
flatpak.env: env.d/flatpak.env.in
$(AM_V_GEN) $(SED) -e "s|\@localstatedir\@|$(localstatedir)|" \
-e "s|\@sysconfdir\@|$(sysconfdir)|" $< > $@
systemenvgendir = $(systemdsystemenvgendir)
systemenvgen_SCRIPTS = env.d/60-flatpak-system-only
userenvgendir = $(systemduserenvgendir)
userenvgen_SCRIPTS = env.d/60-flatpak
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = flatpak.pc
EXTRA_DIST += flatpak.pc.in
scriptsdir = $(bindir)
scripts_SCRIPTS = scripts/flatpak-bisect scripts/flatpak-coredumpctl
EXTRA_DIST += scripts/flatpak-bisect scripts/flatpak-coredumpctl
EXTRA_DIST += subprojects/variant-schema-compiler/variant-schema-compiler
EXTRA_DIST += autogen.sh
EXTRA_DIST += README.md
EXTRA_DIST += flatpak.png
EXTRA_DIST += \
completion/meson.build \
env.d/meson.build \
meson.build \
meson_options.txt \
po/meson.build \
profile/meson.build \
scripts/meson.build \
subprojects/bubblewrap/meson.build \
subprojects/bubblewrap/meson_options.txt \
subprojects/dbus-proxy/meson.build \
subprojects/dbus-proxy/meson_options.txt \
subprojects/libglnx/meson.build \
subprojects/libglnx/meson_options.txt \
subprojects/libglnx/tests/meson.build \
triggers/meson.build \
$(NULL)
AM_DISTCHECK_CONFIGURE_FLAGS = \
--enable-documentation \
--disable-maintainer-mode \
--enable-introspection
.PHONY: coverage lcov-clean genlcov
coverage:
$(AM_V_GEN) $(MAKE) $(AM_MAKEFLAGS) lcov-clean
$(AM_V_GEN) FLATPAK_TEST_COVERAGE=1 $(MAKE) check
$(AM_V_GEN) $(MAKE) $(AM_MAKEFLAGS) genlcov
lcov-clean:
$(AM_V_GEN) $(LCOV) --directory $(top_builddir) --zerocounters
genlcov:
$(AM_V_GEN) $(LCOV) --directory $(top_builddir) --capture --output-file coverage.info
$(AM_V_GEN) $(GENHTML) --prefix $(top_builddir) --output-directory coverage coverage.info
distcheck-hook: distcheck-hook-meson
distcheck-hook-meson:
set -e; if command -v meson > /dev/null; then \
cd $(distdir); \
pwd; \
meson _build/meson; \
meson compile -C _build/meson -v; \
meson test -C _build/meson -v; \
rm -fr _build/meson; \
fi