build: allow using a host-installed sysprofd

In case we are building in a flatpak, we might want to rely on a system
installed sysprofd. This means we might want to pretend we have sysprofd
support (to be found on the system), but not actually build sysprofd.
This commit is contained in:
Christian Hergert
2016-09-15 13:45:02 -07:00
parent fa25435388
commit c5ba20caeb
3 changed files with 19 additions and 18 deletions

View File

@ -133,22 +133,23 @@ PKG_CHECK_MODULES(SYSTEMD,
# sysprofd requires libsystemd and polkit, and is required to run # sysprofd requires libsystemd and polkit, and is required to run
# the ui without root permissions # the ui without root permissions
AC_ARG_ENABLE([sysprofd], AC_ARG_WITH([sysprofd],
[AS_HELP_STRING([--enable-sysprofd=@<:@yes/no/auto@:>@], [AS_HELP_STRING([--with-sysprofd=@<:@host/bundled/no/auto@:>@],
[Build Sysprof D-Bus daemon.])], [Build Sysprof D-Bus daemon.])],
[enable_sysprofd=$enableval], [with_sysprofd=$withval],
[enable_sysprofd=auto]) [with_sysprofd=auto])
AS_IF([test "$enable_sysprofd" = "auto"],[ AS_IF([test "$with_sysprofd" = "auto"],[
AS_IF([test "$have_polkit" = "yes" && test "$have_systemd" = "yes"], AS_IF([test "$have_polkit" = "yes" && test "$have_systemd" = "yes"],
[enable_sysprofd=yes], [with_sysprofd=bundled],
[enable_sysprofd=no]) [with_sysprofd=no])
]) ])
AS_IF([test "$enable_sysprofd" = "yes"],[ AS_IF([test "$with_sysprofd" = "bundled"],[
AS_IF([test "$have_systemd" = "yes" && test "$have_polkit" = "yes"],[],[ AS_IF([test "$have_systemd" = "yes" && test "$have_polkit" = "yes"],[],[
AC_MSG_ERROR([--enable-sysprofd requires libsystemd >= systemd_required_version and polkit-gobject-1]) AC_MSG_ERROR([--enable-sysprofd requires libsystemd >= systemd_required_version and polkit-gobject-1])
]) ])
]) ])
AM_CONDITIONAL(ENABLE_SYSPROFD, [test "$enable_sysprofd" = "yes"]) AM_CONDITIONAL(ENABLE_SYSPROFD, [test "$with_sysprofd" = "bundled"])
AM_CONDITIONAL(ENABLE_POLKIT, [test "$with_sysprofd" = "host" || test "$with_sysprofd" = "bundled"])
# we might be building sysprof-cli without the UI # we might be building sysprof-cli without the UI
AC_ARG_ENABLE([gtk], AC_ARG_ENABLE([gtk],
@ -282,7 +283,7 @@ echo " The GTK interface can explore sysprof capture"
echo " files. If you want the user interface, ensure" echo " files. If you want the user interface, ensure"
echo " this is yes." echo " this is yes."
echo "" echo ""
echo " sysprofd ..................................... : ${enable_sysprofd}" echo " sysprofd ..................................... : ${with_sysprofd}"
echo "" echo ""
echo " The sysprofd system daemon provides support" echo " The sysprofd system daemon provides support"
echo " for accessing hardware performance counters" echo " for accessing hardware performance counters"

View File

@ -107,9 +107,9 @@ libsysprof_@API_VERSION@_la_LIBADD = \
$(GIO_LIBS) \ $(GIO_LIBS) \
$(NULL) $(NULL)
if ENABLE_SYSPROFD if ENABLE_POLKIT
libsysprof_@API_VERSION@_la_LIBADD += $(POLKIT_LIBS) libsysprof_@API_VERSION@_la_LIBADD += $(POLKIT_LIBS)
libsysprof_@API_VERSION@_la_CFLAGS += $(POLKIT_CFLAGS) -DENABLE_SYSPROFD libsysprof_@API_VERSION@_la_CFLAGS += $(POLKIT_CFLAGS) -DENABLE_POLKIT
endif endif
libsysprof_@API_VERSION@_la_LDFLAGS = \ libsysprof_@API_VERSION@_la_LDFLAGS = \

View File

@ -49,7 +49,7 @@
#include <sys/syscall.h> #include <sys/syscall.h>
#include <unistd.h> #include <unistd.h>
#ifdef ENABLE_SYSPROFD #ifdef ENABLE_POLKIT
# include <polkit/polkit.h> # include <polkit/polkit.h>
#endif #endif
@ -124,7 +124,7 @@ G_DEFINE_BOXED_TYPE (SpPerfCounter,
(GBoxedCopyFunc)sp_perf_counter_ref, (GBoxedCopyFunc)sp_perf_counter_ref,
(GBoxedFreeFunc)sp_perf_counter_unref) (GBoxedFreeFunc)sp_perf_counter_unref)
#ifdef ENABLE_SYSPROFD #ifdef ENABLE_POLKIT
static GDBusConnection *shared_conn; static GDBusConnection *shared_conn;
#endif #endif
@ -420,7 +420,7 @@ sp_perf_counter_take_fd (SpPerfCounter *self,
sp_perf_counter_add_info (self, fd, -1); sp_perf_counter_add_info (self, fd, -1);
} }
#ifdef ENABLE_SYSPROFD #ifdef ENABLE_POLKIT
static GDBusProxy * static GDBusProxy *
get_proxy (void) get_proxy (void)
{ {
@ -641,7 +641,7 @@ sp_perf_counter_authorize_async (GCancellable *cancellable,
task = g_task_new (NULL, cancellable, callback, user_data); task = g_task_new (NULL, cancellable, callback, user_data);
#ifdef ENABLE_SYSPROFD #ifdef ENABLE_POLKIT
g_bus_get (G_BUS_TYPE_SYSTEM, g_bus_get (G_BUS_TYPE_SYSTEM,
cancellable, cancellable,
sp_perf_counter_get_bus_cb, sp_perf_counter_get_bus_cb,
@ -671,7 +671,7 @@ sp_perf_counter_open (SpPerfCounter *self,
gint group_fd, gint group_fd,
gulong flags) gulong flags)
{ {
#ifdef ENABLE_SYSPROFD #ifdef ENABLE_POLKIT
g_autoptr(GError) error = NULL; g_autoptr(GError) error = NULL;
g_autoptr(GDBusProxy) proxy = NULL; g_autoptr(GDBusProxy) proxy = NULL;
g_autoptr(GUnixFDList) fdlist = NULL; g_autoptr(GUnixFDList) fdlist = NULL;
@ -694,7 +694,7 @@ sp_perf_counter_open (SpPerfCounter *self,
return ret; return ret;
} }
#ifdef ENABLE_SYSPROFD #ifdef ENABLE_POLKIT
params = g_variant_new_parsed ( params = g_variant_new_parsed (
"(" "("
"[" "["