AC_PREREQ(2.52) AC_INIT(PackageKit, 0.3.5) AC_CONFIG_SRCDIR(src) AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) AM_CONFIG_HEADER(config.h) # Should we enable extra stuff automatically? # set no for release builds, yes for development builds DEVELOPMENT_RELEASE=no # libtool versioning - this applies to libpackagekit # # See http://sources.redhat.com/autobook/autobook/autobook_91.html#SEC91 for details # # increment; # CURRENT If the API or ABI interface has changed (reset REVISION to 0) # REVISION If the API and ABI remains the same, but bugs are fixed. # AGE If libpackagekit can be linked into executables which can be # built with previous versions of this library. Don't use. LT_CURRENT=7 LT_REVISION=0 LT_AGE=0 AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) AC_SUBST(LT_AGE) AC_PROG_CC AC_PROG_CXX AC_PROG_INSTALL AC_ISC_POSIX AC_HEADER_STDC AC_PROG_LIBTOOL AM_PROG_CC_C_O # Internationalisation IT_PROG_INTLTOOL([0.35.0]) GETTEXT_PACKAGE=PackageKit AC_SUBST([GETTEXT_PACKAGE]) AM_GLIB_GNU_GETTEXT AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[gettext domain]) # set up gtk-doc GTK_DOC_CHECK(1.9) AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) AM_PATH_PYTHON PYTHON_PACKAGE_DIR=${pythondir}/packagekit AC_SUBST(PYTHON_PACKAGE_DIR) dnl --------------------------------------------------------------------------- dnl - Extra verbose warning switches dnl --------------------------------------------------------------------------- if test "$GCC" = "yes"; then CPPFLAGS="$CPPFLAGS -Wcast-align -Wno-uninitialized" CPPFLAGS="$CPPFLAGS -Wall -Wreturn-type" # CPPFLAGS="$CPPFLAGS -Wformat-security" CPPFLAGS="$CPPFLAGS -Werror" fi dnl --------------------------------------------------------------------------- dnl - gettext stuff dnl --------------------------------------------------------------------------- GETTEXT_PACKAGE=PackageKit AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Name of default gettext domain]) AM_GLIB_GNU_GETTEXT dnl --------------------------------------------------------------------------- dnl - Library dependencies dnl --------------------------------------------------------------------------- GLIB_REQUIRED=2.14.0 GIO_REQUIRED=2.16.1 DBUS_REQUIRED=1.1.1 DBUS_GLIB_REQUIRED=0.74 LIBNM_GLIB_REQUIRED=0.6.4 POLKIT_DBUS_REQUIRED=0.8 POLKIT_GRANT_REQUIRED=0.8 dnl --------------------------------------------------------------------------- dnl - Make above strings available for packaging files (e.g. rpm spec files) dnl --------------------------------------------------------------------------- AC_SUBST(GLIB_REQUIRED) AC_SUBST(DBUS_REQUIRED) AC_SUBST(DBUS_GLIB_REQUIRED) dnl --------------------------------------------------------------------------- dnl - Check library dependencies dnl --------------------------------------------------------------------------- PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0) AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) PKG_CHECK_MODULES(GMODULE, gmodule-2.0) AC_SUBST(GMODULE_CFLAGS) AC_SUBST(GMODULE_LIBS) PKG_CHECK_MODULES(SQLITE, sqlite3) AC_SUBST(SQLITE_CFLAGS) AC_SUBST(SQLITE_LIBS) PKG_CHECK_MODULES(DBUS, \ dbus-glib-1 >= $DBUS_GLIB_REQUIRED \ dbus-1 >= $DBUS_REQUIRED \ gthread-2.0) AC_SUBST(DBUS_CFLAGS) AC_SUBST(DBUS_LIBS) dnl --------------------------------------------------------------------------- dnl - libarchive dnl --------------------------------------------------------------------------- AC_CHECK_HEADERS(archive.h, HAVE_ARCHIVE_H="yes", HAVE_ARCHIVE_H="no") if test "x$HAVE_ARCHIVE_H" = "xyes"; then AC_DEFINE(HAVE_ARCHIVE_H) ARCHIVE_LIBS=-larchive AC_SUBST(ARCHIVE_LIBS) else AC_MSG_WARN([Cannot find archive.h. Service packs cannot be created or checked.]) fi AM_CONDITIONAL(HAVE_ARCHIVE_H, test x$HAVE_ARCHIVE_H = xyes) dnl --------------------------------------------------------------------------- dnl - xsltproc dnl --------------------------------------------------------------------------- AC_PATH_PROG([XSLTPROC], [xsltproc]) dnl --------------------------------------------------------------------------- dnl - Is GIO available? dnl --------------------------------------------------------------------------- PKG_CHECK_MODULES(GIO, gio-2.0 >= $GIO_REQUIRED, PK_BUILD_GIO="yes", PK_BUILD_GIO="no") if test "x$PK_BUILD_GIO" = "xyes"; then with_gio="yes" AC_DEFINE(PK_BUILD_GIO, 1, [define if GIO is installed]) else with_gio="no" PK_BUILD_GIO=no fi AM_CONDITIONAL(PK_BUILD_GIO, test x$PK_BUILD_GIO = xyes) AC_SUBST(GIO_CFLAGS) AC_SUBST(GIO_LIBS) dnl --------------------------------------------------------------------------- dnl - Is NetworkManager available? dnl --------------------------------------------------------------------------- PKG_CHECK_MODULES(LIBNM, libnm_glib >= $LIBNM_GLIB_REQUIRED, PK_BUILD_NETWORKMANAGER="yes", PK_BUILD_NETWORKMANAGER="no") if test "x$PK_BUILD_NETWORKMANAGER" = "xyes"; then with_networking_stack="NetworkManager" AC_DEFINE(PK_BUILD_NETWORKMANAGER, 1, [define if NetworkManager is installed]) else with_networking_stack="dummy" PK_BUILD_NETWORKMANAGER=no fi AM_CONDITIONAL(PK_BUILD_NETWORKMANAGER, test x$PK_BUILD_NETWORKMANAGER = xyes) AC_SUBST(LIBNM_CFLAGS) AC_SUBST(LIBNM_LIBS) dnl --------------------------------------------------------------------------- dnl - Is docbook2man available? dnl --------------------------------------------------------------------------- AC_PATH_PROG(DOCBOOK2MAN, docbook2man, no) if test "$DOCBOOK2MAN" = "no" ; then AC_MSG_WARN([docbook2man not found, will not be able to build man documentation]) fi AM_CONDITIONAL(HAVE_DOCBOOK2MAN, [test "$DOCBOOK2MAN" != "no"]) dnl --------------------------------------------------------------------------- dnl - Make paths available for source files dnl --------------------------------------------------------------------------- AC_SUBST(SYSCONFDIR, $sysconfdir) AC_SUBST(LIBDIR, $libdir) AC_SUBST(LIBEXECDIR, $libexecdir) AC_SUBST(DATADIR, $datadir) AC_SUBST(BINDIR, $bindir) AC_SUBST(SBINDIR, $sbindir) AC_SUBST(LOCALSTATEDIR, $localstatedir) AC_ARG_WITH([packagekit_user], AS_HELP_STRING([--with-packagekit-user=], [User for running the PackageKit daemon (root)])) if test -z "$with_packagekit_user" ; then PACKAGEKIT_USER=root else PACKAGEKIT_USER=$with_packagekit_user fi AC_SUBST(PACKAGEKIT_USER) AC_DEFINE_UNQUOTED(PACKAGEKIT_USER,"$PACKAGEKIT_USER", [User for running the PackageKit daemon]) AC_ARG_WITH([backend_user], AS_HELP_STRING([--with-backend-user=], [Alternative user for running the PackageKit backend])) if test -z "$with_backend_user" ; then PK_BACKEND_USER=$PACKAGEKIT_USER else PK_BACKEND_USER=$with_backend_user fi AC_SUBST(PK_BACKEND_USER) AC_DEFINE_UNQUOTED(PK_BACKEND_USER,"$PK_BACKEND_USER", [Alternative user for running the PackageKit backend]) dnl --------------------------------------------------------------------------- dnl - Build self tests dnl --------------------------------------------------------------------------- AC_ARG_ENABLE(tests, AS_HELP_STRING([--enable-tests],[enable unit test code]), enable_tests=$enableval,enable_tests=$DEVELOPMENT_RELEASE) AM_CONDITIONAL(EGG_BUILD_TESTS, test x$enable_tests = xyes) if test x$enable_tests = xyes; then AC_DEFINE(EGG_BUILD_TESTS,1,[Build test code]) fi dnl --------------------------------------------------------------------------- dnl - Display DAEMON messages? dnl --------------------------------------------------------------------------- AC_ARG_ENABLE(developer, AS_HELP_STRING([--enable-developer],[enable daemon debug messages]), enable_developer=$enableval,enable_developer=$DEVELOPMENT_RELEASE) AM_CONDITIONAL(PK_IS_DEVELOPER, test x$enable_developer = xyes) if test x$enable_developer = xyes; then AC_DEFINE(PK_IS_DEVELOPER,1,[Build developer code]) fi dnl --------------------------------------------------------------------------- dnl - Able to run from a checkout? dnl --------------------------------------------------------------------------- AC_ARG_ENABLE(local, AS_HELP_STRING([--enable-local],[enable running in local checkout]), enable_local=$enableval,enable_local=$DEVELOPMENT_RELEASE) AM_CONDITIONAL(PK_BUILD_LOCAL, test x$enable_local = xyes) if test x$enable_local = xyes; then AC_DEFINE(PK_BUILD_LOCAL,1,[Build local code]) fi dnl --------------------------------------------------------------------------- dnl - Checks for contrib/packagekit-plugin dnl --------------------------------------------------------------------------- PKG_CHECK_MODULES(PK_BROWSER_PLUGIN, mozilla-plugin gio-unix-2.0 cairo pango gtk+-2.0 dbus-glib-1, build_browser_plugin=yes, build_browser_plugin=no) AM_CONDITIONAL(PK_BUILD_BROWSER_PLUGIN, test $build_browser_plugin = "yes") AC_SUBST(PK_BROWSER_PLUGIN_CFLAGS) AC_SUBST(PK_BROWSER_PLUGIN_LIBS) if test $build_browser_plugin = "yes"; then # Check if we have GdkAppLaunchContext (new in GTK+-2.14) packagekit_save_CPPFLAGS="$CPPFLAGS" packagekit_save_LDFLAGS="$LDFLAGS" CPPFLAGS="$CPPFLAGS $PK_BROWSER_PLUGIN_CFLAGS" LDFLAGS="$CPPFLAGS $PK_BROWSER_PLUGIN_LIBS" AC_CHECK_FUNCS(gdk_app_launch_context_new) CPPFLAGS="$packagekit_save_CPPFLAGS" LDFLAGS="$packagekit_save_LDFLAGS" fi dnl --------------------------------------------------------------------------- dnl - Other tests dnl --------------------------------------------------------------------------- AC_ARG_ENABLE(gcov, AS_HELP_STRING([--enable-gcov],[compile with coverage profiling instrumentation (gcc only)]), enable_gcov=$enableval,enable_gcov=no) AC_ARG_ENABLE(gprof, AS_HELP_STRING([--enable-gprof],[compile with gprof support (gcc only)]), enable_gprof=$enableval,enable_gprof=no) # backends AC_ARG_ENABLE(alpm, AS_HELP_STRING([--enable-alpm],[use the ALPM backend]),enable_alpm=$enableval,enable_alpm=no) AC_ARG_ENABLE(apt, AS_HELP_STRING([--enable-apt],[use the APT backend]),enable_apt=$enableval,enable_apt=no) AC_ARG_ENABLE(box, AS_HELP_STRING([--enable-box],[use the BOX backend]),enable_box=$enableval,enable_box=no) AC_ARG_ENABLE(conary, AS_HELP_STRING([--enable-conary],[use the CONARY backend]),enable_conary=$enableval,enable_conary=no) AC_ARG_ENABLE(dummy, AS_HELP_STRING([--enable-dummy],[use the dummy backend]),enable_dummy=$enableval,enable_dummy=yes) AC_ARG_ENABLE(opkg, AS_HELP_STRING([--enable-opkg],[use the OPKG backend]),enable_opkg=$enableval,enable_opkg=no) AC_ARG_ENABLE(pisi, AS_HELP_STRING([--enable-pisi],[use the PiSi backend]),enable_pisi=$enableval,enable_pisi=no) AC_ARG_ENABLE(poldek, AS_HELP_STRING([--enable-poldek],[use the poldek backend]),enable_poldek=$enableval,enable_poldek=no) AC_ARG_ENABLE(razor, AS_HELP_STRING([--enable-razor],[use the razor backend]),enable_razor=$enableval,enable_razor=no) AC_ARG_ENABLE(smart, AS_HELP_STRING([--enable-smart],[use the SMART backend]),enable_smart=$enableval,enable_smart=no) AC_ARG_ENABLE(urpmi, AS_HELP_STRING([--enable-urpmi],[use the URPMI backend]),enable_urpmi=$enableval,enable_urpmi=no) AC_ARG_ENABLE(yum, AS_HELP_STRING([--enable-yum],[use the YUM backend]),enable_yum=$enableval,enable_yum=no) AC_ARG_ENABLE(zypp, AS_HELP_STRING([--enable-zypp],[use the Zypp backend]),enable_zypp=$enableval,enable_zypp=no) # export to Makefile.am's AM_CONDITIONAL(BACKEND_TYPE_ALPM, [test x$enable_alpm = xyes], [using ALPM backend]) AM_CONDITIONAL(BACKEND_TYPE_APT, [test x$enable_apt = xyes], [using APT backend]) AM_CONDITIONAL(BACKEND_TYPE_BOX, [test x$enable_box = xyes], [using BOX backend]) AM_CONDITIONAL(BACKEND_TYPE_CONARY, [test x$enable_conary = xyes], [using CONARY backend]) AM_CONDITIONAL(BACKEND_TYPE_DUMMY, [test x$enable_dummy = xyes], [using dummy backend]) AM_CONDITIONAL(BACKEND_TYPE_OPKG, [test x$enable_opkg = xyes], [using OPKG backend]) AM_CONDITIONAL(BACKEND_TYPE_PISI, [test x$enable_pisi = xyes], [using PiSi backend]) AM_CONDITIONAL(BACKEND_TYPE_POLDEK, [test x$enable_poldek = xyes], [using poldek backend]) AM_CONDITIONAL(BACKEND_TYPE_RAZOR, [test x$enable_razor = xyes], [using Razor backend]) AM_CONDITIONAL(BACKEND_TYPE_SMART, [test x$enable_smart = xyes], [using SMART backend]) AM_CONDITIONAL(BACKEND_TYPE_URPMI, [test x$enable_urpmi = xyes], [using URPMI backend]) AM_CONDITIONAL(BACKEND_TYPE_YUM, [test x$enable_yum = xyes], [using YUM backend]) AM_CONDITIONAL(BACKEND_TYPE_ZYPP, [test x$enable_zypp = xyes], [using Zypp backend]) if test x$enable_gcov = xyes; then ## so that config.h changes when you toggle gcov support AC_DEFINE_UNQUOTED(PK_BUILD_GCOV, 1, [Defined if gcov is enabled to force a rebuild due to config.h changing]) AC_MSG_CHECKING([for gcc 3.3 version of gcov file format]) have_gcc33_gcov=no AC_RUN_IFELSE( [AC_LANG_PROGRAM( , [[ if (__GNUC__ >=3 && __GNUC_MINOR__ >= 3) exit (0); else exit (1); ]])], have_gcc33_gcov=yes) if test x$have_gcc33_gcov = xyes ; then AC_DEFINE_UNQUOTED(PK_HAVE_GCC33_GCOV, 1, [Defined if we have gcc 3.3 and thus the new gcov format]) fi CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage" AC_MSG_RESULT($have_gcc33_gcov) fi AM_CONDITIONAL(PK_BUILD_GCOV, test x$enable_gcov = xyes) if test x$enable_gprof = xyes; then ## so that config.h changes when you toggle gprof support AC_DEFINE_UNQUOTED(PK_BUILD_GPROF, 1, [Defined if gprof is enabled to force a rebuild due to config.h changing]) CPPFLAGS="$CPPFLAGS -pg" LDFLAGS="$LDFLAGS -pg" CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage" AC_MSG_RESULT($enable_gprof) fi AM_CONDITIONAL(PK_BUILD_GPROF, test x$enable_gprof = xyes) dnl --------------------------------------------------------------------------- dnl - Are we specifying a different dbus root ? dnl --------------------------------------------------------------------------- AC_ARG_WITH(dbus-sys, [AC_HELP_STRING([--with-dbus-sys=], [where D-BUS system.d directory is])]) AC_ARG_WITH(dbus-services, [AC_HELP_STRING([--with-dbus-services=], [where D-BUS system-services directory is])]) if ! test -z "$with_dbus_sys" ; then DBUS_SYS_DIR="$with_dbus_sys" else DBUS_SYS_DIR="$SYSCONFDIR/dbus-1/system.d" fi if ! test -z "$with_dbus_services" ; then DBUS_SERVICES_DIR="$with_dbus_services" else DBUS_SERVICES_DIR="$DATADIR/dbus-1/system-services" fi AC_SUBST(DBUS_SYS_DIR) AC_SUBST(DBUS_SERVICES_DIR) dnl --------------------------------------------------------------------------- dnl - DocBook Documentation dnl --------------------------------------------------------------------------- AC_ARG_ENABLE(docbook-docs, [ --enable-docbook-docs build documentation (requires xmlto)],enable_docbook_docs=$enableval,enable_docbook_docs=auto) AC_PATH_PROG(XMLTO, xmlto, no) AC_MSG_CHECKING([whether to build DocBook documentation]) if test x$XMLTO = xno ; then have_docbook=no else have_docbook=yes fi if test x$enable_docbook_docs = xauto ; then if test x$have_docbook = xno ; then enable_docbook_docs=no else enable_docbook_docs=yes fi fi if test x$enable_docbook_docs = xyes; then if test x$have_docbook = xno; then AC_MSG_ERROR([Building DocBook docs explicitly required, but DocBook not found]) fi fi AM_CONDITIONAL(DOCBOOK_DOCS_ENABLED, test x$enable_docbook_docs = xyes) AC_MSG_RESULT(yes) dnl --------------------------------------------------------------------------- dnl - Compile time default choice of security framework dnl --------------------------------------------------------------------------- AC_ARG_WITH([security_framework], AS_HELP_STRING([--with-security-framework=