summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac455
1 files changed, 455 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..813773b
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,455 @@
+# Copyright (C) 2006-2007 International Business Machines Corp.
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
+AC_PREREQ(2.59)
+AC_INIT([ecryptfs-utils],[104])
+AC_CANONICAL_HOST
+AC_CANONICAL_TARGET
+AM_INIT_AUTOMAKE([${PACKAGE_NAME}], [${PACKAGE_VERSION}])
+AC_CONFIG_SRCDIR([src/libecryptfs])
+AC_CONFIG_HEADERS([config.h])
+AC_SUBST(AM_CPPFLAGS, '-include $(top_builddir)/config.h')
+AC_CONFIG_MACRO_DIR([m4])
+
+AC_DISABLE_STATIC
+
+# libecryptfs versioning instructions
+#
+# Update the version information only once per public release of
+# ecryptfs-utils. More frequent updates are unnecessary, and only guarantee
+# that the current interface number gets larger faster.
+#
+# 1. If the library source code has changed at all since the last update, then
+# increment LIBECRYPTFS_LT_REVISION.
+# 2. If any interfaces have been added, removed, or changed since the last
+# update, increment LIBECRYPTFS_LT_CURRENT, and set LIBECRYPTFS_LT_REVISION to 0.
+# 3. If any interfaces have been added since the last public release, then
+# increment LIBECRYPTFS_LT_AGE.
+# 4. If any interfaces have been removed or changed since the last public
+# release, then set LIBECRYPTFS_LT_AGE to 0.
+#
+# For more details:
+# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
+LIBECRYPTFS_LT_CURRENT="1"
+LIBECRYPTFS_LT_REVISION="0"
+LIBECRYPTFS_LT_AGE="0"
+AC_SUBST([LIBECRYPTFS_LT_CURRENT])
+AC_SUBST([LIBECRYPTFS_LT_REVISION])
+AC_SUBST([LIBECRYPTFS_LT_AGE])
+
+AC_ARG_ENABLE(
+ [nss],
+ [AS_HELP_STRING([--disable-nss],[Build against gcrypt rather than NSS])],
+ ,
+ [enable_nss="detect"]
+)
+
+AC_ARG_ENABLE(
+ [pywrap],
+ [AS_HELP_STRING([--disable-pywrap],[Disable build of libecryptfs Python wrappers])],
+ ,
+ [enable_pywrap="detect"]
+)
+
+AC_ARG_ENABLE(
+ [openssl],
+ [AS_HELP_STRING([--disable-openssl],[Disable build of OpenSSL key module])],
+ ,
+ [enable_openssl="detect"]
+)
+
+AC_ARG_ENABLE(
+ [pkcs11-helper],
+ [AS_HELP_STRING([--enable-pkcs11-helper],[Build pkcs11-helper key module])],
+ ,
+ enable_pkcs11_helper="no"
+)
+
+AC_ARG_ENABLE(
+ [tspi],
+ [AS_HELP_STRING([--enable-tspi],[Build TrouSerS key module])],
+ ,
+ [enable_tspi="no"]
+)
+
+AC_ARG_ENABLE(
+ [gpg],
+ [AS_HELP_STRING([--enable-gpg],[Build GnuPG key module])],
+ ,
+ [enable_gpg="no"]
+)
+
+AC_ARG_ENABLE(
+ [pam],
+ [AS_HELP_STRING([--disable-pam],[Disable build of PAM module])],
+ ,
+ [enable_pam="yes"]
+)
+
+AC_ARG_ENABLE(
+ [gui],
+ [AS_HELP_STRING([--enable-gui],[Enable building of GUI components])],
+ ,
+ [enable_gui="no"]
+)
+
+AC_ARG_ENABLE(
+ [docs],
+ [AS_HELP_STRING([--enable-docs],[Enable installing document])],
+ ,
+ [enable_docs="no"]
+)
+
+AC_ARG_ENABLE(
+ [docs-gen],
+ [AS_HELP_STRING([--enable-docs-gen],[Enable generating documents])],
+ ,
+ [enable_docs_gen="no"]
+)
+test "${enable_docs_gen}" = "yes" && enable_docs="yes"
+
+AC_ARG_ENABLE(
+ [tests],
+ [AS_HELP_STRING([--enable-tests],[Enable system specific tests])],
+ ,
+ [enable_tests="no"]
+)
+
+AC_ARG_ENABLE(
+ [mudflap],
+ [AS_HELP_STRING([--enable-mudflap],[Build with -fmudflap gcc option])],
+ [
+ if "${enableval}" = "yes"; then
+ CFLAGS="$CFLAGS -fmudflap"
+ LDFLAGS="$LDFLAGS -lmudflap"
+ fi
+ ]
+)
+
+AC_ARG_WITH(
+ [gpgme-prefix],
+ [AS_HELP_STRING([--with-gpgme-prefix=PATH],[Specify the directory where gpgme install, default /usr])],
+ ,
+ [with_gpgme_prefix="/usr"]
+)
+
+AC_ARG_WITH(
+ [pamdir],
+ [AS_HELP_STRING([--with-pamdir=PATH],[Specify the directory where PAM modules are stored])],
+ [pamdir="${withval}"],
+ [
+ if test "${prefix}" = "/usr"; then
+ pamdir="/lib${libdir##*/lib}/security"
+ else
+ pamdir="\$(libdir)/security"
+ fi
+ ]
+)
+
+AC_ARG_WITH(
+ [ecryptfskeymoddir],
+ [AS_HELP_STRING([--with-ecryptfskeymoddir=PATH],[Specify the directory where key modules are stored])],
+ [
+ ecryptfskeymoddir="${withval}"
+ full_ecryptfskeymoddir="${ecryptfskeymoddir}"
+ ],
+ [
+ full_ecryptfskeymoddir=`eval eval eval eval eval echo "${libdir}/ecryptfs" | sed "s#NONE#${prefix}#" | sed "s#NONE#${ac_default_prefix}#"`
+ ecryptfskeymoddir="\$(libdir)/ecryptfs"
+ ]
+)
+AC_DEFINE_UNQUOTED([ECRYPTFS_DEFAULT_KEY_MOD_DIR], ["$full_ecryptfskeymoddir"], "Location of key modules")
+
+AC_GNU_SOURCE
+
+AC_PROG_CC
+AC_MINIX
+AM_PROG_CC_C_O
+AC_PROG_LN_S
+PKG_PROG_PKG_CONFIG
+
+ifdef(
+ [LT_INIT],
+ [LT_INIT],
+ [AC_PROG_LIBTOOL]
+)
+
+AC_SYS_LARGEFILE
+
+AC_PATH_PROGS([POD2MAN], [pod2man])
+test -z "${POD2MAN}" && AC_MSG_ERROR([I couldn't find pod2man; make sure it's installed and in your path])
+
+AC_PATH_PROGS([TAR], [tar])
+AC_PATH_PROGS([PS2PDF], [ps2pdf])
+AC_PATH_PROGS([DVIPS], [dvips])
+AC_PATH_PROGS([LATEX2HTML], [latex2html])
+AC_PATH_PROGS([LATEX], [latex])
+if test "${enable_docs_gen}" = "yes"; then
+ test -z "${TAR}" && AC_MSG_ERROR([Couldn't find tar])
+ test -z "${PS2PDF}" && AC_MSG_ERROR([Couldn't find ps2pdf])
+ test -z "${DVIPS}" && AC_MSG_ERROR([Couldn't find dvips])
+ test -z "${LATEX2HTML}" && AC_MSG_ERROR([Couldn't find latex2html])
+ test -z "${LATEX}" && AC_MSG_ERROR([Couldn't find latex])
+fi
+
+AC_ISC_POSIX
+AC_HEADER_STDC
+AC_CHECK_LIB([dl], [dlopen])
+
+# Verify keyutils version 1.0 or higher
+if test -z "${KEYUTILS_LIBS}"; then
+ AC_ARG_VAR([KEYUTILS_CFLAGS], [C compiler flags for keyutils])
+ AC_ARG_VAR([KEYUTILS_LIBS], [linker flags for keyutils])
+ AC_CHECK_LIB(
+ [keyutils],
+ [keyctl_search],
+ [KEYUTILS_LIBS="-lkeyutils"],
+ [AC_MSG_ERROR([eCryptfs userspace tools require Keyutils version 1.0 or higher.
+You might find the package at:
+http://people.redhat.com/~dhowells/keyutils/
+])
+ ]
+ )
+fi
+
+if test -z "${OPENSSL_LIBS}"; then
+ PKG_CHECK_MODULES(
+ [OPENSSL],
+ [libcrypto >= 0.9.7],
+ [have_openssl="yes"],
+ [PKG_CHECK_MODULES(
+ [OPENSSL],
+ [openssl >= 0.9.7],
+ [have_openssl="yes"],
+ [AC_CHECK_LIB(
+ [crypto],
+ [RSA_version],
+ [
+ have_openssl="yes"
+ OPENSSL_LIBS="-lcrypto"
+ ],
+ [have_openssl="no"]
+ )]
+ )]
+ )
+else
+ have_openssl="yes"
+fi
+
+#Verify nss
+PKG_CHECK_MODULES(
+ [NSS],
+ [nss],
+ [have_nss="yes"
+ NSS_CFLAGS="${NSS_CFLAGS} -DENABLE_NSS"],
+ [have_nss="no"])
+
+if test "${enable_nss}" = "detect" ; then
+ if test "$have_nss" == "yes" ; then
+ enable_nss="yes"
+ else
+ enable_nss="no"
+ fi
+fi
+
+OLD_CFLAGS="${CFLAGS}"
+CFLAGS="${CFLAGS} ${OPENSSL_CFLAGS}"
+AC_CHECK_HEADER([openssl/rsa.h],, [have_openssl="no"])
+CFLAGS="${OLD_CFLAGS}"
+
+if test "${enable_pywrap}" != "no" ; then
+ AM_PATH_PYTHON(2.5, [have_python="yes"], [have_python="no"])
+ AC_PROG_SWIG(1.3.31)
+ SWIG_PYTHON
+fi
+
+if test "x${SWIG}" != "x" ; then
+ have_swig="yes"
+else
+ have_swig="no"
+fi
+
+if test "${enable_pywrap}" = "detect" ; then
+ if test "${have_python}" = "yes" ; then
+ if test "${have_swig}" = "yes" ; then
+ enable_pywrap="yes"
+ fi
+ fi
+fi
+
+if test "${enable_pywrap}" = "yes" ; then
+ test "${have_python}" != "yes" && AC_MSG_ERROR([Python not found])
+ test "${have_swig}" != "yes" && AC_MSG_ERROR([SWIG not found])
+fi
+
+test "${enable_openssl}" = "detect" && enable_openssl="${have_openssl}"
+
+if test "${enable_openssl}" = "yes" ; then
+ test "${have_openssl}" != "yes" && AC_MSG_ERROR([OpenSSL not found])
+fi
+
+if test "${enable_pkcs11_helper}" = "yes" ; then
+ test "${have_openssl}" != "yes" && AC_MSG_ERROR([OpenSSL not found])
+ PKG_CHECK_MODULES([PKCS11_HELPER], [libpkcs11-helper-1 >= 1.04],, [AC_MSG_ERROR([Cannot locate pkcs11-helper])])
+fi
+
+if test "${enable_tspi}" = "yes" ; then
+ if test -z "${TSPI_LIBS}"; then
+ AC_ARG_VAR([TSPI_CFLAGS], [C compiler flags for tspi])
+ AC_ARG_VAR([TSPI_LIBS], [linker flags for tspi])
+ AC_CHECK_LIB(
+ [tspi],
+ [Tspi_Context_Create],
+ [TSPI_LIBS="-ltspi"],
+ [AC_MSG_ERROR([Cannot find tspi])]
+ )
+ fi
+fi
+
+if test "${enable_gpg}" = "yes" ; then
+ AC_MSG_CHECKING([for gpgme])
+ if ! test -x "${with_gpgme_prefix}/bin/gpgme-config"; then
+ AC_MSG_ERROR([Cannot locate gpgme])
+ else
+ AC_MSG_RESULT([found])
+ GPGME_CFLAGS="`\"${with_gpgme_prefix}/bin/gpgme-config\" --cflags`"
+ GPGME_LIBS="`\"${with_gpgme_prefix}/bin/gpgme-config\" --libs`"
+ fi
+fi
+
+if test "${enable_pam}" = "yes" ; then
+ if test -z "${PAM_LIBS}"; then
+ AC_ARG_VAR([PAM_CFLAGS], [C compiler flags for pam])
+ AC_ARG_VAR([PAM_LIBS], [linker flags for pam])
+ AC_CHECK_LIB(
+ [pam],
+ [pam_authenticate],
+ [PAM_LIBS="-lpam"],
+ [AC_MSG_ERROR([Cannot find pam])]
+ )
+ AC_CHECK_LIB(
+ [pam_misc],
+ [pam_misc_setenv],
+ [PAM_LIBS="${PAM_LIBS} ${TSPI_LIBS} -lpam_misc"],
+ [AC_MSG_ERROR([Cannot find pam_misc])]
+ )
+ fi
+fi
+
+if test "${enable_gui}" = "yes"; then
+ PKG_CHECK_MODULES(
+ [GTK],
+ [gtk+-2.0 >= 2.0],
+ ,
+ PKG_CHECK_MODULES(
+ [GTK],
+ [gtk+ >= 1.0],,
+ AC_MSG_ERROR([Cannot locate gtk+])
+ )
+ )
+fi
+
+pkgconfigdir="\$(libdir)/pkgconfig"
+if test "${prefix}" = "/usr"; then
+ rootsbindir="/sbin"
+else
+ rootsbindir="\$(sbindir)"
+fi
+
+GETTEXT_PACKAGE=ecryptfs-utils
+AC_SUBST(GETTEXT_PACKAGE)
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",
+ [the gettext translation domain])
+
+AM_GLIB_GNU_GETTEXT
+
+IT_PROG_INTLTOOL([0.41.0])
+
+LOCALEDIR='${prefix}/${datadir}/locale'
+AC_SUBST(LOCALEDIR)
+
+
+CRYPTO_CFLAGS=${NSS_CFLAGS}
+CRYPTO_LIBS=${NSS_LIBS}
+
+AC_SUBST([pamdir])
+AC_SUBST([pamlibdir])
+AC_SUBST([pkgconfigdir])
+AC_SUBST([rootsbindir])
+AC_SUBST([ecryptfskeymoddir])
+AC_SUBST([GPGME_CFLAGS])
+AC_SUBST([GPGME_LIBS])
+AC_SUBST([CRYPTO_CFLAGS])
+AC_SUBST([CRYPTO_LIBS])
+AM_CONDITIONAL([BUILD_OPENSSL], [test "${enable_openssl}" = "yes"])
+AM_CONDITIONAL([BUILD_PKCS11_HELPER], [test "${enable_pkcs11_helper}" = "yes"])
+AM_CONDITIONAL([BUILD_TSPI], [test "${enable_tspi}" = "yes"])
+AM_CONDITIONAL([BUILD_GPG], [test "${enable_gpg}" = "yes"])
+AM_CONDITIONAL([BUILD_PAM], [test "${enable_pam}" = "yes"])
+AM_CONDITIONAL([BUILD_PYWRAP], [test "${enable_pywrap}" = "yes"])
+AM_CONDITIONAL([BUILD_NSS], [test "${enable_nss}" = "yes"])
+AM_CONDITIONAL([BUILD_GUI], [test "${enable_gui}" = "yes"])
+AM_CONDITIONAL([BUILD_DOCS], [test "${enable_docs}" = "yes"])
+AM_CONDITIONAL([BUILD_DOCS_GEN], [test "${enable_docs_gen}" = "yes"])
+AM_CONDITIONAL([ENABLE_TESTS], [test "${enable_tests}" = "yes"])
+
+# workaround for <autoconf-2.60
+if test -z "${docdir}"; then
+ docdir="\$(datarootdir)/doc/\$(PACKAGE_NAME)"
+ AC_SUBST([docdir])
+fi
+if test -z "${htmldir}"; then
+ htmldir="\$(docdir)"
+ AC_SUBST([htmldir])
+fi
+# end workaround
+# workaround for <automake-1.10
+if test -z "${MKDIR_P}"; then
+ MKDIR_P="\$(mkdir_p)"
+ AC_SUBST([MKDIR_P])
+fi
+# end workaround
+
+AC_CONFIG_FILES([
+ Makefile
+ doc/Makefile
+ src/Makefile
+ src/libecryptfs/Makefile
+ src/utils/Makefile
+ src/key_mod/Makefile
+ src/daemon/Makefile
+ src/desktop/Makefile
+ src/desktop/ecryptfs-mount-private.desktop
+ src/desktop/ecryptfs-setup-private.desktop
+ src/include/Makefile
+ doc/manpage/Makefile
+ src/pam_ecryptfs/Makefile
+ src/libecryptfs/libecryptfs.pc
+ src/libecryptfs-swig/Makefile
+ tests/Makefile
+ tests/lib/Makefile
+ tests/kernel/Makefile
+ tests/userspace/Makefile
+ po/Makefile.in
+])
+AC_OUTPUT
+
+if test "${prefix}" != "/usr"; then
+ echo
+ echo "Warning: install prefix is $prefix"
+ echo
+ echo "Most mount applications expect the mount helper to install to"
+ echo "/sbin. You can install the mount helper to that location by "
+ echo "running the configure script again with --prefix=/usr:"
+ echo
+ echo "./configure --prefix=/usr"
+ echo
+fi