build: be a bit more flexible with configuration options

It would be nice if we can be a bit more flexible with where the
sysprof-cli tool can run. Lets try to break out the system checks a
bit more.
This commit is contained in:
Christian Hergert
2016-04-14 00:59:28 -07:00
parent f4df6616c6
commit 5d25b8a242
5 changed files with 92 additions and 42 deletions

View File

@ -87,20 +87,29 @@ m4_define([glib_required_version], [2.44.0])
m4_define([gtk_required_version], [3.16.0])
m4_define([systemd_required_version], [222])
PKG_CHECK_MODULES(SYSPROF, [gio-2.0 >= glib_required_version
gio-unix-2.0 >= glib_required_version
polkit-gobject-1])
PKG_CHECK_MODULES(SYSPROF_UI, [gio-2.0 >= glib_required_version
gtk+-3.0 >= gtk_required_version
polkit-gobject-1],
[have_uilibs=yes],
[have_uilibs=no])
PKG_CHECK_MODULES(SYSTEMD, [libsystemd >= systemd_required_version],
[have_systemd=yes],
[have_systemd=no])
PKG_CHECK_MODULES(GIO,
[gio-2.0 >= glib_required_version
gio-unix-2.0 >= glib_required_version])
PKG_CHECK_MODULES(GTK,
[gtk+-3.0 >= gtk_required_version],
[have_gtk=yes],
[have_gtk=no])
PKG_CHECK_MODULES(POLKIT,
[polkit-gobject-1],
[have_polkit=yes],
[have_polkit=no])
PKG_CHECK_MODULES(SYSTEMD,
[libsystemd >= systemd_required_version],
[have_systemd=yes],
[have_systemd=no])
enable_sysprofd=no
AS_IF([test "$have_polkit" = "yes" && test "$have_systemd" = "yes"],[
enable_sysprofd=yes
])
# we require systemd for sysprofd
AM_CONDITIONAL(ENABLE_SYSPROFD, [test x$have_systemd = xyes])
AM_CONDITIONAL(ENABLE_SYSPROFD, [test "$enable_sysprofd" = "yes"])
# we might be building sysprof-cli without the UI
AC_ARG_ENABLE([gtk],
@ -108,11 +117,13 @@ AC_ARG_ENABLE([gtk],
[Build GTK user interface.])],
[enable_gtk=$enableval],
[enable_gtk=auto])
AS_IF([test "$enable_gtk" != no],[
AS_IF([test "$enable_gtk" = "yes" && test "$have_uilibs" = "no"],[
AC_MSG_ERROR([--enable-gtk requires gtk+-3.0 >= gtk_required_version])
AS_IF([test "$enable_gtk" = auto],[
AS_IF([test "$have_gtk" = "yes" && test "$have_polkit" = "yes"],[enable_gtk=yes],[enable_gtk=no])
])
AS_IF([test "$enable_gtk" = "yes"],[
AS_IF([test "$have_gtk" = "yes" && test "$have_polkit" = "yes"],[],[
AC_MSG_ERROR([--enable-gtk requires gtk+-3.0 >= gtk_required_version and polkit-gobject-1])
])
enable_gtk=$have_uilibs
])
AM_CONDITIONAL(ENABLE_GTK, test "$enable_gtk" = "yes")
@ -209,13 +220,37 @@ echo " ${PACKAGE} - ${VERSION}"
echo ""
echo " Options"
echo ""
echo " Prefix ............................... : ${prefix}"
echo " Libdir ............................... : ${libdir}"
echo " Libexecdir ........................... : ${libexecdir}"
echo " Prefix ....................................... : ${prefix}"
echo " Libdir ....................................... : ${libdir}"
echo " Libexecdir ................................... : ${libexecdir}"
echo ""
echo " Debug Directory ...................... : ${debugdir}"
echo " Debug Symbols Directory ...................... : ${debugdir}"
echo ""
echo " Sysprofd ............................. : ${have_systemd}"
echo " Sysprof GTK Interface ............... : ${enable_gtk}"
echo " Systemd System Units ................. : ${with_systemdsystemunitdir}"
echo " The sysprof interface will look in this"
echo " directory to load symbols for libraries that"
echo " have symbols stripped."
echo ""
echo " sysprof-cli .................................. : yes"
echo ""
echo " The sysprof-cli command line tool can be used"
echo " to profile systems where there is no access"
echo " to GTK. It also has less overhead than the"
echo " full GTK interface."
echo ""
echo " sysprof GTK Interface ....................... : ${enable_gtk}"
echo ""
echo " The GTK interface can explore sysprof capture"
echo " files. If you want the user interface, ensure"
echo " this is yes."
echo ""
echo " sysprofd ..................................... : ${enable_sysprofd}"
echo ""
echo " The sysprofd system daemon provides support"
echo " for accessing hardware performance counters"
echo " as a normal user."
echo ""
echo " Systemd System Units ......................... : ${with_systemdsystemunitdir}"
echo ""
echo " sysprofd uses systemd to manage the service"
echo " and sd-bus for D-Bus communication."
echo ""

View File

@ -24,12 +24,12 @@ libutil_la_SOURCES = \
$(NULL)
libutil_la_CFLAGS = \
-I$(srcdir)/util \
$(SYSPROF_CFLAGS) \
$(GIO_CFLAGS) \
$(WARN_CFLAGS) \
$(NULL)
libutil_la_CXXFLAGS = \
-I$(srcdir)/util \
$(SYSPROF_CFLAGS) \
$(GIO_CFLAGS) \
$(WARN_CXXFLAGS) \
$(NULL)
@ -94,20 +94,21 @@ libsysprof_@API_VERSION@_la_SOURCES = \
libsysprof_@API_VERSION@_la_CFLAGS = \
-I$(srcdir)/util \
$(SYSPROF_CFLAGS) \
$(GIO_CFLAGS) \
$(WARN_CFLAGS) \
$(NULL)
if ENABLE_SYSPROFD
libsysprof_@API_VERSION@_la_CFLAGS += \
-DENABLE_SYSPROFD
endif
libsysprof_@API_VERSION@_la_LIBADD = \
libutil.la \
-lstdc++ \
$(SYSPROF_LIBS) \
$(GIO_LIBS) \
$(NULL)
if ENABLE_SYSPROFD
libsysprof_@API_VERSION@_la_LIBADD += $(POLKIT_LIBS)
libsysprof_@API_VERSION@_la_CFLAGS += $(POLKIT_CFLAGS) -DENABLE_SYSPROFD
endif
libsysprof_@API_VERSION@_la_LDFLAGS = \
-avoid-version \
-no-undefined \
@ -156,14 +157,18 @@ libsysprof_ui_@API_VERSION@_la_SOURCES = \
libsysprof_ui_@API_VERSION@_la_CFLAGS = \
-I$(srcdir)/util \
$(SYSPROF_UI_CFLAGS) \
$(GIO_CFLAGS) \
$(GTK_CFLAGS) \
$(POLKIT_CFLAGS) \
$(WARN_CFLAGS) \
$(NULL)
libsysprof_ui_@API_VERSION@_la_LIBADD = \
libutil.la \
libsysprof-@API_VERSION@.la \
$(SYSPROF_UI_LIBS) \
$(GIO_LIBS) \
$(GTK_LIBS) \
$(POLKIT_LIBS) \
$(NULL)
libsysprof_ui_@API_VERSION@_la_LDFLAGS = \

View File

@ -3,7 +3,9 @@ if ENABLE_GTK
bin_PROGRAMS = sysprof
sysprof_CFLAGS = \
$(SYSPROF_UI_CFLAGS) \
$(GIO_CFLAGS) \
$(GTK_CFLAGS) \
$(POLKIT_CFLAGS) \
-I$(top_srcdir)/lib \
-I$(top_builddir)/lib
@ -23,7 +25,9 @@ nodist_sysprof_SOURCES = \
sp-resources.h
sysprof_LDADD = \
$(SYSPROF_UI_LIBS) \
$(GIO_LIBS) \
$(GTK_LIBS) \
$(POLKIT_LIBS) \
$(top_builddir)/lib/libsysprof-@API_VERSION@.la \
$(top_builddir)/lib/libsysprof-ui-@API_VERSION@.la \
$(NULL)

View File

@ -2,12 +2,14 @@ TESTS =
TEST_PROGS =
test_cflags = \
$(SYSPROF_CFLAGS) \
$(GIO_CFLAGS) \
$(POLKIT_CFLAGS) \
-I$(top_srcdir)/lib \
-I$(top_builddir)/lib
test_libs = \
$(SYSPROF_LIBS) \
$(GIO_LIBS) \
$(POLKIT_LIBS) \
$(top_builddir)/lib/libsysprof-@API_VERSION@.la
TESTS += test-capture
@ -19,11 +21,15 @@ test_capture_LDADD = $(test_libs)
if ENABLE_GTK
test_ui_cflags = \
$(SYSPROF_UI_CFLAGS) \
$(GIO_CFLAGS) \
$(GTK_CFLAGS) \
$(POLKIT_CFLAGS) \
-I$(top_srcdir)/lib \
-I$(top_builddir)/lib
test_ui_libs = \
$(SYSPROF_UI_LIBS) \
$(GIO_LIBS) \
$(GTK_LIBS) \
$(POLKIT_LIBS) \
$(top_builddir)/lib/libsysprof-@API_VERSION@.la \
$(top_builddir)/lib/libsysprof-ui-@API_VERSION@.la

View File

@ -2,18 +2,18 @@ bin_PROGRAMS = sysprof-cli
noinst_PROGRAMS = sysprof-dump
AM_CPPFLAGS = \
$(SYSPROF_CFLAGS) \
$(GIO_CFLAGS) \
-I$(top_srcdir)/lib \
-I$(top_builddir)/lib
sysprof_cli_SOURCES = sysprof-cli.c
sysprof_cli_LDADD = \
$(SYSPROF_LIBS) \
$(GIO_LIBS) \
$(top_builddir)/lib/libsysprof-@API_VERSION@.la
sysprof_dump_SOURCES = sysprof-dump.c
sysprof_dump_LDADD = \
$(SYSPROF_LIBS) \
$(GIO_LIBS) \
$(top_builddir)/lib/libsysprof-@API_VERSION@.la
-include $(top_srcdir)/git.mk