summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac362
1 files changed, 362 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..451cb9c
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,362 @@
+dnl -*- mode: m4 -*-
+
+AC_PREREQ(2.59c)
+AC_INIT([ConsoleKit],
+ [0.2.1],
+ [mccann@jhu.edu],
+ [ConsoleKit])
+
+AC_CONFIG_SRCDIR([src/ck-manager.c])
+
+AM_INIT_AUTOMAKE
+
+AM_MAINTAINER_MODE
+
+AC_ISC_POSIX
+AC_PROG_CC
+AC_STDC_HEADERS
+AC_DISABLE_STATIC
+AC_PROG_LIBTOOL
+
+AC_HEADER_STDC
+
+AC_SUBST(VERSION)
+
+# Save flags to aclocal
+ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+GETTEXT_PACKAGE=ConsoleKit
+AC_SUBST(GETTEXT_PACKAGE)
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Name of default gettext domain])
+
+AM_GLIB_GNU_GETTEXT
+
+# Dependencies
+
+DBUS_REQUIRED_VERSION=0.30
+GLIB_REQUIRED_VERSION=2.7.0
+X11_REQUIRED_VERSION=1.0.0
+
+AC_CHECK_HEADERS(unistd.h)
+AC_CHECK_HEADERS(paths.h)
+
+AC_TYPE_UID_T
+
+PKG_CHECK_MODULES(CONSOLE_KIT,
+ dbus-glib-1 >= $DBUS_REQUIRED_VERSION
+ gobject-2.0 >= $GLIB_REQUIRED_VERSION
+ gthread-2.0 >= $GLIB_REQUIRED_VERSION
+)
+PKG_CHECK_MODULES(LIBDBUS,
+ dbus-1 >= $DBUS_REQUIRED_VERSION
+)
+PKG_CHECK_MODULES(TOOLS,
+ x11 >= $X11_REQUIRED_VERSION
+ glib-2.0 >= $GLIB_REQUIRED_VERSION
+)
+
+AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
+
+EXTRA_COMPILE_WARNINGS(yes)
+
+# Solaris requires libresolv for daemon()
+case "$host" in
+ *-*-solaris*)
+ AC_CHECK_LIB(resolv, daemon, [CONSOLE_KIT_LIBS="$CONSOLE_KIT_LIBS -lresolv"])
+ ;;
+esac
+
+# Find out the version of DBUS we're using
+
+dbus_version=`pkg-config --modversion dbus-1`
+DBUS_VERSION_MAJOR=`echo $dbus_version | awk -F. '{print $1}'`
+DBUS_VERSION_MINOR=`echo $dbus_version | awk -F. '{print $2}'`
+DBUS_VERSION_MICRO=`echo $dbus_version | awk -F. '{print $3}'`
+if test "z$DBUS_VERSION_MAJOR" = "z"; then
+ DBUS_VERSION_MAJOR="0"
+fi
+if test "z$DBUS_VERSION_MINOR" = "z"; then
+ DBUS_VERSION_MINOR="0"
+fi
+if test "z$DBUS_VERSION_MICRO" = "z"; then
+ DBUS_VERSION_MICRO="0"
+fi
+
+if test "z$DBUS_VERSION_MAJOR" = "z0" -a "z$DBUS_VERSION_MINOR" = "z0" -a "z$DBUS_VERSION_MICRO" = "z0"; then echo "Error: Couldn't determine the version of your DBUS package."
+ echo " This is probably an error in this script, please report it"
+ echo " along with the following information:"
+ echo " Base DBUS version ='$dbus_version'"
+ echo " DBUS_VERSION_MAJOR='$DBUS_VERSION_MAJOR'"
+ echo " DBUS_VERSION_MINOR='$DBUS_VERSION_MINOR'"
+ echo " DBUS_VERSION_MICRO='$DBUS_VERSION_MICRO'"
+ exit 1
+else
+
+ echo "Your dbus version is $DBUS_VERSION_MAJOR,$DBUS_VERSION_MINOR,$DBUS_VERSION_MICRO."
+ DBUS_CFLAGS="$DBUS_CFLAGS -DDBUS_VERSION_MAJOR=$DBUS_VERSION_MAJOR"
+ DBUS_CFLAGS="$DBUS_CFLAGS -DDBUS_VERSION_MINOR=$DBUS_VERSION_MINOR"
+ DBUS_CFLAGS="$DBUS_CFLAGS -DDBUS_VERSION_MICRO=$DBUS_VERSION_MICRO"
+
+ AC_SUBST(DBUS_CFLAGS)
+fi
+
+dnl ---------------------------------------------------------------------------
+dnl - Are we specifying a different dbus root ?
+dnl ---------------------------------------------------------------------------
+
+AC_ARG_WITH(dbus-sys,
+ [AC_HELP_STRING([--with-dbus-sys=<dir>],
+ [where D-BUS system.d directory is])])
+AC_ARG_WITH(dbus-services,
+ [AC_HELP_STRING([--with-dbus-services=<dir>],
+ [where D-BUS 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
+AC_SUBST(DBUS_SYS_DIR)
+
+dnl ---------------------------------------------------------------------------
+dnl - PID file
+dnl ---------------------------------------------------------------------------
+
+AC_ARG_WITH(pid-file,
+ [AC_HELP_STRING([--with-pid-file=<file>],
+ [pid file location])])
+
+if ! test -z "$with_pid_file"; then
+ CONSOLE_KIT_PID_FILE=$with_pid_file
+else
+ CONSOLE_KIT_PID_FILE=${localstatedir}/run/ConsoleKit/pid
+fi
+
+AC_SUBST(CONSOLE_KIT_PID_FILE)
+
+dnl ---------------------------------------------------------------------------
+dnl Figure out what tools backend to build
+dnl ---------------------------------------------------------------------------
+
+CK_BACKEND=""
+case "$host" in
+ *-*-freebsd*)
+ ;;
+ *-*-linux*)
+ CK_BACKEND="linux"
+ ;;
+ *-*-solaris*)
+ ;;
+esac
+
+AM_CONDITIONAL(CK_COMPILE_LINUX, test x$CK_BACKEND = xlinux, [Compiling for Linux])
+AM_CONDITIONAL(CK_COMPILE_FREEBSD, test x$CK_BACKEND = xfreebsd, [Compiling for FreeBSD])
+AM_CONDITIONAL(CK_COMPILE_SOLARIS, test x$CK_BACKEND = xsolaris, [Compiling for Solaris])
+AC_SUBST(CK_BACKEND)
+
+dnl ---------------------------------------------------------------------------
+dnl Check for PAM
+dnl ---------------------------------------------------------------------------
+
+have_pam=no
+AC_CHECK_LIB(pam, pam_getenv, have_pam=yes)
+AM_CONDITIONAL(HAVE_PAM, test x$have_pam = xyes)
+if test "x$have_pam" = "xyes"; then
+ PAM_LIBS="${PAM_LIBS} -lpam"
+fi
+AC_SUBST(HAVE_PAM)
+AC_SUBST(PAM_LIBS)
+
+AC_CHECK_HEADERS([security/pam_modutil.h security/pam_ext.h])
+AC_CHECK_LIB(pam, pam_syslog, [AC_DEFINE(HAVE_PAM_SYSLOG, [], [Define to 1 if you have the pam_syslog function])])
+
+# Check if we should build the PAM module
+msg_pam_module=no
+AC_ARG_ENABLE(pam-module,
+ [AC_HELP_STRING([--enable-pam-module],
+ [build PAM module])],
+ , enable_pam_module=no)
+if test "x$enable_pam_module" = "xyes"; then
+ if test "x$have_pam" = "xno"; then
+ AC_MSG_ERROR([--enable-pam-module requires PAM but PAM was not found])
+ fi
+ AC_DEFINE(ENABLE_PAM_MODULE, [], [Set if we build PAM module])
+ msg_pam_module=yes
+fi
+AM_CONDITIONAL(ENABLE_PAM_MODULE, test "x$enable_pam_module" = "xyes")
+
+dnl ---------------------------------------------------------------------------
+dnl - Install directory for PAM security module
+dnl ---------------------------------------------------------------------------
+
+AC_ARG_WITH(pam-module-dir,
+ [AC_HELP_STRING([--with-pam-module-dir=<dir>],
+ [directory to install PAM security module])])
+if ! test -z "$with_pam_module_dir"; then
+ PAM_MODULE_DIR="$with_pam_module_dir"
+else
+ PAM_MODULE_DIR="/lib/security"
+fi
+AC_SUBST(PAM_MODULE_DIR)
+
+dnl ---------------------------------------------------------------------------
+dnl - DocBook Documentation
+dnl ---------------------------------------------------------------------------
+
+AC_ARG_ENABLE(docbook-docs,
+ [AC_HELP_STRING([--enable-docbook-docs],
+ [build documentation (requires xmlto)])],
+ enable_docbook_docs=$enableval,enable_docbook_docs=no)
+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 check for inotify
+dnl ---------------------------------------------------------------------------
+
+enable_inotify=no
+AC_CHECK_FUNC(inotify_init,
+ [AC_CHECK_HEADER([sys/inotify.h],
+ [enable_inotify=yes],
+ [])],
+ [])
+
+AM_CONDITIONAL(ENABLE_INOTIFY, test "x$enable_inotify" = "xyes")
+
+if test "x$enable_inotify" = "xyes" ; then
+ AC_DEFINE(ENABLE_INOTIFY, [], [Define if we have inotify])
+fi
+
+dnl ---------------------------------------------------------------------------
+dnl Finish
+dnl ---------------------------------------------------------------------------
+
+# Turn on the additional warnings last, so -Werror doesn't affect other tests.
+
+AC_ARG_ENABLE(more-warnings,
+ [AC_HELP_STRING([--enable-more-warnings],
+ [Maximum compiler warnings])],
+ set_more_warnings="$enableval",[
+ if test -d $srcdir/.git; then
+ set_more_warnings=yes
+ else
+ set_more_warnings=no
+ fi
+ ])
+AC_MSG_CHECKING(for more warnings)
+if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
+ AC_MSG_RESULT(yes)
+ CFLAGS="\
+ -Wall \
+ -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
+ -Wnested-externs -Wpointer-arith \
+ -Wcast-align -Wsign-compare \
+ $CFLAGS"
+
+ for option in -Wno-strict-aliasing -Wno-sign-compare; do
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $option"
+ AC_MSG_CHECKING([whether gcc understands $option])
+ AC_TRY_COMPILE([], [],
+ has_option=yes,
+ has_option=no,)
+ if test $has_option = no; then
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ AC_MSG_RESULT($has_option)
+ unset has_option
+ unset SAVE_CFLAGS
+ done
+ unset option
+else
+ AC_MSG_RESULT(no)
+fi
+
+#
+# Enable Debug
+#
+AC_ARG_ENABLE(debug,
+ [AC_HELP_STRING([--enable-debug],
+ [turn on debugging])],
+ , enable_debug=yes)
+if test "$enable_debug" = "yes"; then
+ DEBUG_CFLAGS="-DG_ENABLE_DEBUG"
+else
+ if test "x$enable_debug" = "xno"; then
+ DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
+ else
+ DEBUG_CFLAGS=""
+ fi
+fi
+AC_SUBST(DEBUG_CFLAGS)
+
+# Flags
+
+AC_SUBST(CONSOLE_KIT_CFLAGS)
+AC_SUBST(CONSOLE_KIT_LIBS)
+
+AC_SUBST(CFLAGS)
+AC_SUBST(CPPFLAGS)
+AC_SUBST(LDFLAGS)
+
+# Files
+
+AC_CONFIG_FILES([
+Makefile
+src/Makefile
+tools/Makefile
+tools/linux/Makefile
+data/Makefile
+doc/Makefile
+doc/ConsoleKit.xml
+libck-connector/Makefile
+libck-connector/ck-connector.pc
+pam-ck-connector/Makefile
+])
+
+AC_CONFIG_HEADERS([config.h])
+
+AC_OUTPUT
+
+echo "
+ ConsoleKit $VERSION
+ ========================
+
+ prefix: ${prefix}
+ exec_prefix: ${exec_prefix}
+ libdir: ${libdir}
+ bindir: ${bindir}
+ sbindir: ${sbindir}
+ sysconfdir: ${sysconfdir}
+ localstatedir: ${localstatedir}
+ datadir: ${datadir}
+ source code location: ${srcdir}
+ compiler: ${CC}
+ cflags: ${CFLAGS}
+ Base libs: ${CONSOLE_KIT_LIBS}
+ Maintainer mode: ${USE_MAINTAINER_MODE}
+
+ dbus-1 system.d dir: ${DBUS_SYS_DIR}
+ Build backend: ${CK_BACKEND}
+ PAM module dir: ${PAM_MODULE_DIR}
+ Build PAM module: ${msg_pam_module}
+ Build docs: ${enable_docbook_docs}
+"