From 1c48b5a62f73234ed26bb20f0ab345ab61cda0ab Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Thu, 18 Feb 2010 07:49:04 -0500 Subject: Rename server/ directory to src/ Also update BUILD.txt --- src/external/crypto.m4 | 13 ++++ src/external/docbook.m4 | 35 ++++++++++ src/external/krb5.m4 | 62 +++++++++++++++++ src/external/ldap.m4 | 63 +++++++++++++++++ src/external/libcares.m4 | 20 ++++++ src/external/libcollection.m4 | 12 ++++ src/external/libdhash.m4 | 12 ++++ src/external/libini_config.m4 | 12 ++++ src/external/libldb.m4 | 28 ++++++++ src/external/libpcre.m4 | 15 ++++ src/external/libpopt.m4 | 9 +++ src/external/libtalloc.m4 | 7 ++ src/external/libtdb.m4 | 8 +++ src/external/libtevent.m4 | 7 ++ src/external/pam.m4 | 6 ++ src/external/pkg.m4 | 156 ++++++++++++++++++++++++++++++++++++++++++ src/external/platform.m4 | 29 ++++++++ src/external/python.m4 | 58 ++++++++++++++++ src/external/selinux.m4 | 13 ++++ src/external/sizes.m4 | 44 ++++++++++++ 20 files changed, 609 insertions(+) create mode 100644 src/external/crypto.m4 create mode 100644 src/external/docbook.m4 create mode 100644 src/external/krb5.m4 create mode 100644 src/external/ldap.m4 create mode 100644 src/external/libcares.m4 create mode 100644 src/external/libcollection.m4 create mode 100644 src/external/libdhash.m4 create mode 100644 src/external/libini_config.m4 create mode 100644 src/external/libldb.m4 create mode 100644 src/external/libpcre.m4 create mode 100644 src/external/libpopt.m4 create mode 100644 src/external/libtalloc.m4 create mode 100644 src/external/libtdb.m4 create mode 100644 src/external/libtevent.m4 create mode 100644 src/external/pam.m4 create mode 100644 src/external/pkg.m4 create mode 100644 src/external/platform.m4 create mode 100644 src/external/python.m4 create mode 100644 src/external/selinux.m4 create mode 100644 src/external/sizes.m4 (limited to 'src/external') diff --git a/src/external/crypto.m4 b/src/external/crypto.m4 new file mode 100644 index 000000000..d1bcf40ac --- /dev/null +++ b/src/external/crypto.m4 @@ -0,0 +1,13 @@ +AC_ARG_ENABLE(crypto, + [ --enable-crypto Use OpenSSL crypto instead of NSS], + [CRYPTO="$enableval"], + [CRYPTO="no"] +) + +if test x$CRYPTO != xyes; then + PKG_CHECK_MODULES([NSS],[nss],[have_nss=1],[have_nss=]) +else + PKG_CHECK_MODULES([CRYPTO],[libcrypto],[have_crypto=1],[have_crypto=]) +fi +AM_CONDITIONAL([HAVE_NSS], [test x$have_nss != x]) +AM_CONDITIONAL([HAVE_CRYPTO], [test x$have_crypto != x]) diff --git a/src/external/docbook.m4 b/src/external/docbook.m4 new file mode 100644 index 000000000..cae89feb1 --- /dev/null +++ b/src/external/docbook.m4 @@ -0,0 +1,35 @@ +dnl Checks for tools needed to generate manual pages +AC_DEFUN([CHECK_XML_TOOLS], +[ + AC_PATH_PROG([XSLTPROC], [xsltproc]) + if test ! -x "$XSLTPROC"; then + AC_MSG_ERROR([Could not find xsltproc]) + fi + + AC_PATH_PROG([XMLLINT], [xmllint]) + if test ! -x "$XMLLINT"; then + AC_MSG_ERROR([Could not find xmllint]) + fi + + AC_PATH_PROG([XMLCATALOG], [xmlcatalog]) + if test ! -x "$XMLCATALOG"; then + AC_MSG_ERROR([Could not find xmlcatalog]) + fi +]) + +dnl Usage: +dnl CHECK_STYLESHEET_URI(FILE, URI, [FRIENDLY-NAME]) +dnl Checks if the XML catalog given by FILE exists and +dnl if a particular URI appears in the XML catalog +AC_DEFUN([CHECK_STYLESHEET], +[ + AC_CHECK_FILE($1, [], [AC_MSG_ERROR([could not find XML catalog])]) + + AC_MSG_CHECKING([for ifelse([$3],,[$2],[$3]) in XML catalog]) + if AC_RUN_LOG([$XMLCATALOG --noout "$1" "$2" >&2]); then + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([could not find ifelse([$3],,[$2],[$3]) in XML catalog]) + fi +]) + diff --git a/src/external/krb5.m4 b/src/external/krb5.m4 new file mode 100644 index 000000000..84bb44174 --- /dev/null +++ b/src/external/krb5.m4 @@ -0,0 +1,62 @@ +AC_SUBST(KRB5_CFLAGS) +AC_SUBST(KRB5_LIBS) + +if test x$KRB5_LIBS != x; then + KRB5_PASSED_LIBS=$KRB5_LIBS +fi + +if test x$KRB5_CFLAGS != x; then + KRB5_PASSED_CFLAGS=$KRB5_CFLAGS +fi + +AC_PATH_PROG(KRB5_CONFIG, krb5-config) +AC_MSG_CHECKING(for working krb5-config) +if test -x "$KRB5_CONFIG"; then + KRB5_CFLAGS="`$KRB5_CONFIG --cflags`" + KRB5_LIBS="`$KRB5_CONFIG --libs`" + AC_MSG_RESULT(yes) +else + if test x$KRB5_PASSED_LIBS = x; then + AC_MSG_ERROR(no. Please install MIT kerberos devel package) + fi +fi + +if test x$KRB5_PASSED_LIBS != x; then + KRB5_LIBS=$KRB5_PASSED_LIBS +fi + +if test x$KRB5_PASSED_CFLAGS != x; then + KRB5_CFLAGS=$KRB5_PASSED_CFLAGS +fi + +AC_ARG_VAR([KRB5_CFLAGS], [C compiler flags for kerberos, overriding krb5-config])dnl +AC_ARG_VAR([KRB5_LIBS], [linker flags for kerberos, overriding krb5-config])dnl + +SAVE_CFLAGS=$CFLAGS +SAVE_LIBS=$LIBS +CFLAGS="$CFLAGS $KRB5_CFLAGS" +LIBS="$LIBS $KRB5_LIBS" +AC_CHECK_HEADERS([krb5.h krb5/krb5.h]) +AC_CHECK_FUNCS([krb5_get_init_creds_opt_alloc krb5_get_error_message \ + krb5_free_unparsed_name]) +CFLAGS=$SAVE_CFLAGS +LIBS=$SAVE_LIBS + +if test x$ac_cv_header_krb5_h != xyes -a x$ac_cv_header_krb5_krb5_h != xyes +then + AC_MSG_ERROR(you must have Kerberos 5 header files to build sssd) +fi + +AC_ARG_ENABLE([krb5-locator-plugin], + [AS_HELP_STRING([--disable-krb5-locator-plugin], + [do not build Kerberos locator plugin])], + [build_locator=$enableval], + [build_locator=yes]) + +AC_CHECK_HEADER([krb5/locate_plugin.h], + [have_locate_plugin=yes], + [have_locate_plugin=no] + [AC_MSG_NOTICE([Kerberos locator plugin cannot be build])]) +AM_CONDITIONAL([BUILD_KRB5_LOCATOR_PLUGIN], + [test x$have_locate_plugin == xyes -a x$build_locator == xyes]) + diff --git a/src/external/ldap.m4 b/src/external/ldap.m4 new file mode 100644 index 000000000..87d95fa8b --- /dev/null +++ b/src/external/ldap.m4 @@ -0,0 +1,63 @@ +dnl AC_SUBST(LDAP_LIBS) +dnl +dnl AC_CHECK_HEADERS(lber.h ldap.h, , AC_MSG_ERROR("could not locate ldap header files please install devel package")) +dnl +dnl AC_CHECK_LIB(lber, main, LDAP_LIBS="-llber $LDAP_LIBS") +dnl AC_CHECK_LIB(ldap, main, LDAP_LIBS="-lldap $LDAP_LIBS") +dnl +dnl --------------------------------------------------------------------------- +dnl - Check for Mozilla LDAP or OpenLDAP SDK +dnl --------------------------------------------------------------------------- + +AC_CHECK_LIB(ldap, ldap_search, with_ldap=yes) +dnl Check for other libraries we need to link with to get the main routines. +test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes], , -llber) } +test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes], , -llber -lkrb) } +test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes with_ldap_des=yes], , -llber -lkrb -ldes) } +dnl Recently, we need -lber even though the main routines are elsewhere, +dnl because otherwise be get link errors w.r.t. ber_pvt_opt_on. So just +dnl check for that (it's a variable not a fun but that doesn't seem to +dnl matter in these checks) and stick in -lber if so. Can't hurt (even to +dnl stick it in always shouldn't hurt, I don't think) ... #### Someone who +dnl #### understands LDAP needs to fix this properly. +test "$with_ldap_lber" != "yes" && { AC_CHECK_LIB(lber, ber_pvt_opt_on, with_ldap_lber=yes) } + +if test "$with_ldap" = "yes"; then + if test "$with_ldap_des" = "yes" ; then + OPENLDAP_LIBS="${OPENLDAP_LIBS} -ldes" + fi + if test "$with_ldap_krb" = "yes" ; then + OPENLDAP_LIBS="${OPENLDAP_LIBS} -lkrb" + fi + if test "$with_ldap_lber" = "yes" ; then + OPENLDAP_LIBS="${OPENLDAP_LIBS} -llber" + fi + OPENLDAP_LIBS="${OPENLDAP_LIBS} -lldap" +else + AC_MSG_ERROR([OpenLDAP not found]) +fi + +AC_SUBST(OPENLDAP_LIBS) + +SAVE_CFLAGS=$CFLAGS +SAVE_LIBS=$LIBS +CFLAGS="$CFLAGS $OPENLDAP_CFLAGS" +LIBS="$LIBS $OPENLDAP_LIBS" +AC_CHECK_FUNCS([ldap_control_create]) +AC_CHECK_MEMBERS([struct ldap_conncb.lc_arg], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[ #include ]], + [[ + struct ldap_conncb cb; + return ldap_set_option(NULL, LDAP_OPT_CONNECT_CB, &cb); + ]] )], + [AC_DEFINE([HAVE_LDAP_CONNCB], [1], + [Define if LDAP connection callbacks are available])], + [AC_MSG_WARN([Found broken callback implementation])], + [])], + [], [[#include ]]) + +CFLAGS=$SAVE_CFLAGS +LIBS=$SAVE_LIBS + diff --git a/src/external/libcares.m4 b/src/external/libcares.m4 new file mode 100644 index 000000000..657deac59 --- /dev/null +++ b/src/external/libcares.m4 @@ -0,0 +1,20 @@ +AC_SUBST(CARES_OBJ) +AC_SUBST(CARES_LIBS) +AC_SUBST(CARES_CFLAGS) + +AC_CHECK_HEADERS(ares.h, + [AC_CHECK_LIB([cares], [ares_init], [ CARES_LIBS="-lcares" ], [AC_MSG_ERROR([No usable c-ares library found])])], + [AC_MSG_ERROR([c-ares header files are not installed])] +) + +dnl Check if this particular version of c-ares supports the generic ares_free_data function +AC_CHECK_LIB([cares], + [ares_free_data], + [AC_DEFINE([HAVE_ARES_DATA], 1, [Does c-ares have ares_free_data()?]) + ], + [ + ares_data=1 + ] +) + +AM_CONDITIONAL(BUILD_ARES_DATA, test x$ares_data = x1) diff --git a/src/external/libcollection.m4 b/src/external/libcollection.m4 new file mode 100644 index 000000000..8fc37e8c7 --- /dev/null +++ b/src/external/libcollection.m4 @@ -0,0 +1,12 @@ +AC_SUBST(SYSTEM_COLLECTION_OBJ) +AC_SUBST(SYSTEM_COLLECTION_CFLAGS) +AC_SUBST(SYSTEM_COLLECTION_LIBS) + +PKG_CHECK_MODULES(SYSTEM_COLLECTION, collection >= 0.4.0, + have_system_collection=true, + have_system_collection=false + ) +# This is future-compatible. Right now, we'll force the use of our +# in-tree copy. When collection is split off as its own source package, we'll +# fix this test +AM_CONDITIONAL(HAVE_SYSTEM_COLLECTION, test x$have_system_collection = xtrue_FORCE_IN_TREE) diff --git a/src/external/libdhash.m4 b/src/external/libdhash.m4 new file mode 100644 index 000000000..e3afdac38 --- /dev/null +++ b/src/external/libdhash.m4 @@ -0,0 +1,12 @@ +AC_SUBST(SYSTEM_DHASH_OBJ) +AC_SUBST(SYSTEM_DHASH_CFLAGS) +AC_SUBST(SYSTEM_DHASH_LIBS) + +PKG_CHECK_MODULES(SYSTEM_DHASH, dhash >= 0.4.0, + have_system_dhash=true, + have_system_dhash=false + ) +# This is future-compatible. Right now, we'll force the use of our +# in-tree copy. When dhash is split off as its own source package, we'll +# fix this test +AM_CONDITIONAL(HAVE_SYSTEM_DHASH, test x$have_system_dhash = xtrue_FORCE_IN_TREE) diff --git a/src/external/libini_config.m4 b/src/external/libini_config.m4 new file mode 100644 index 000000000..20291efa5 --- /dev/null +++ b/src/external/libini_config.m4 @@ -0,0 +1,12 @@ +AC_SUBST(SYSTEM_INI_CONFIG_OBJ) +AC_SUBST(SYSTEM_INI_CONFIG_CFLAGS) +AC_SUBST(SYSTEM_INI_CONFIG_LIBS) + +PKG_CHECK_MODULES(SYSTEM_INI_CONFIG, ini_config >= 0.4.0, + have_system_ini_config=true, + have_system_ini_config=false + ) +# This is future-compatible. Right now, we'll force the use of our +# in-tree copy. When ini_config is split off as its own source package, we'll +# fix this test +AM_CONDITIONAL(HAVE_SYSTEM_INI_CONFIG, test x$have_system_ini_config = xtrue_FORCE_IN_TREE) diff --git a/src/external/libldb.m4 b/src/external/libldb.m4 new file mode 100644 index 000000000..0679e1d19 --- /dev/null +++ b/src/external/libldb.m4 @@ -0,0 +1,28 @@ +AC_SUBST(LDB_OBJ) +AC_SUBST(LDB_CFLAGS) +AC_SUBST(LDB_LIBS) + +PKG_CHECK_MODULES(LDB, ldb >= 0.9.2) + +AC_CHECK_HEADERS(ldb.h ldb_module.h, + [AC_CHECK_LIB(ldb, ldb_init, [LDB_LIBS="-lldb"], , -ltevent) ], + [AC_MSG_ERROR([LDB header files are not installed])] +) + +AC_ARG_WITH([ldb-lib-dir], + [AC_HELP_STRING([--with-ldb-lib-dir=PATH], + [Path to store ldb modules [${libdir}/ldb]] + ) + ] + ) + +if test x"$with_ldb_lib_dir" != x; then + ldblibdir=$with_ldb_lib_dir +else + ldblibdir="`$PKG_CONFIG --variable=modulesdir ldb`" + if ! test -d $ldblibdir; then + ldblibdir="${libdir}/ldb" + fi +fi +AC_MSG_NOTICE([ldb lib directory: $ldblibdir]) +AC_SUBST(ldblibdir) diff --git a/src/external/libpcre.m4 b/src/external/libpcre.m4 new file mode 100644 index 000000000..5917c8cfd --- /dev/null +++ b/src/external/libpcre.m4 @@ -0,0 +1,15 @@ +PCRE_OBJ="" +AC_SUBST(PCRE_OBJ) +AC_SUBST(PCRE_LIBS) +AC_SUBST(PCRE_CFLAGS) + +PKG_CHECK_MODULES(PCRE, libpcre) +PKG_CHECK_EXISTS(libpcre >= 7, + [AC_MSG_NOTICE([PCRE version is 7 or higher])], + [AC_MSG_NOTICE([PCRE version is below 7]) + AC_DEFINE([HAVE_LIBPCRE_LESSER_THAN_7], + 1, + [Define if libpcre version is less than 7])]) + +AC_CHECK_HEADERS(pcre.h) +AC_CHECK_LIB(pcre, pcre_compile, [ PCRE_LIBS="-lpcre" ], [AC_MSG_ERROR([PCRE is required])]) diff --git a/src/external/libpopt.m4 b/src/external/libpopt.m4 new file mode 100644 index 000000000..e59b2610e --- /dev/null +++ b/src/external/libpopt.m4 @@ -0,0 +1,9 @@ +POPT_OBJ="" +AC_SUBST(POPT_OBJ) +AC_SUBST(POPT_LIBS) +AC_SUBST(POPT_CFLAGS) + +AC_CHECK_HEADERS([popt.h], + [AC_CHECK_LIB(popt, poptGetContext, [ POPT_LIBS="-lpopt" ], [AC_MSG_ERROR([POPT must support poptGetContext])])], + [AC_MSG_ERROR([POPT development libraries not installed])] +) diff --git a/src/external/libtalloc.m4 b/src/external/libtalloc.m4 new file mode 100644 index 000000000..a4c5b8a9d --- /dev/null +++ b/src/external/libtalloc.m4 @@ -0,0 +1,7 @@ +AC_SUBST(TALLOC_OBJ) +AC_SUBST(TALLOC_CFLAGS) +AC_SUBST(TALLOC_LIBS) + +AC_CHECK_HEADER(talloc.h, + [AC_CHECK_LIB(talloc, talloc_init, [TALLOC_LIBS="-ltalloc"]) ], + [PKG_CHECK_MODULES(TALLOC, talloc)]) diff --git a/src/external/libtdb.m4 b/src/external/libtdb.m4 new file mode 100644 index 000000000..196bc5ccb --- /dev/null +++ b/src/external/libtdb.m4 @@ -0,0 +1,8 @@ +AC_SUBST(TDB_OBJ) +AC_SUBST(TDB_CFLAGS) +AC_SUBST(TDB_LIBS) + +AC_CHECK_HEADERS([tdb.h], + [AC_CHECK_LIB(tdb, tdb_repack, [TDB_LIBS="-ltdb"], [AC_MSG_ERROR([TDB must support tdb_repack])]) ], + [PKG_CHECK_MODULES(TDB, tdb >= 1.1.3)] +) diff --git a/src/external/libtevent.m4 b/src/external/libtevent.m4 new file mode 100644 index 000000000..6a0e36af8 --- /dev/null +++ b/src/external/libtevent.m4 @@ -0,0 +1,7 @@ +AC_SUBST(TEVENT_OBJ) +AC_SUBST(TEVENT_CFLAGS) +AC_SUBST(TEVENT_LIBS) + +AC_CHECK_HEADER(tevent.h, + [AC_CHECK_LIB(tevent, tevent_context_init, [TEVENT_LIBS="-ltevent"]) ], + [PKG_CHECK_MODULES(TEVENT, tevent)]) diff --git a/src/external/pam.m4 b/src/external/pam.m4 new file mode 100644 index 000000000..40c8fd0dc --- /dev/null +++ b/src/external/pam.m4 @@ -0,0 +1,6 @@ +AC_SUBST(PAM_LIBS) + +AC_CHECK_HEADERS([security/pam_appl.h security/pam_misc.h security/pam_modules.h], + [AC_CHECK_LIB(pam, pam_get_item, [ PAM_LIBS="-lpam" ], [AC_MSG_ERROR([PAM must support pam_get_item])])], + [AC_MSG_ERROR([PAM development libraries not installed])] +) diff --git a/src/external/pkg.m4 b/src/external/pkg.m4 new file mode 100644 index 000000000..a8b3d06c8 --- /dev/null +++ b/src/external/pkg.m4 @@ -0,0 +1,156 @@ +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# +# Copyright © 2004 Scott James Remnant . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi + +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# +# Similar to PKG_CHECK_MODULES, make sure that the first instance of +# this or PKG_CHECK_MODULES is called, or make sure to call +# PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_ifval([$2], [$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$PKG_CONFIG"; then + if test -n "$$1"; then + pkg_cv_[]$1="$$1" + else + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_failed=yes]) + fi +else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + ifelse([$4], , [AC_MSG_ERROR(dnl +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT +])], + [AC_MSG_RESULT([no]) + $4]) +elif test $pkg_failed = untried; then + ifelse([$4], , [AC_MSG_FAILURE(dnl +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])], + [$4]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + ifelse([$3], , :, [$3]) +fi[]dnl +])# PKG_CHECK_MODULES diff --git a/src/external/platform.m4 b/src/external/platform.m4 new file mode 100644 index 000000000..71b4f2c85 --- /dev/null +++ b/src/external/platform.m4 @@ -0,0 +1,29 @@ +AC_ARG_WITH([os], + [AC_HELP_STRING([--with-os=OS_TYPE], [Type of your operation system (fedora|redhat|suse)])] + ) +osname="" +if test x"$with_os" != x ; then + if test x"$with_os" == xfedora -o \ + x"$with_os" == xredhat -o \ + x"$with_os" == xsuse ; then + osname=$with_os + else + AC_MSG_ERROR([Illegal value -$with_os- for option --with-os]) + fi +fi + +if test x"$osname" = x ; then + if test -f /etc/fedora-release ; then + osname="fedora" + elif test -f /etc/redhat-release ; then + osname="redhat" + elif test -f /etc/SuSE-release ; then + osname="suse" + fi + + AC_MSG_NOTICE([Detected operation system type: $osname]) +fi + +AM_CONDITIONAL([HAVE_FEDORA], [test x"$osname" == xfedora]) +AM_CONDITIONAL([HAVE_REDHAT], [test x"$osname" == xredhat]) +AM_CONDITIONAL([HAVE_SUSE], [test x"$osname" == xsuse]) diff --git a/src/external/python.m4 b/src/external/python.m4 new file mode 100644 index 000000000..db5986385 --- /dev/null +++ b/src/external/python.m4 @@ -0,0 +1,58 @@ +dnl Check for python-config and substitute needed CFLAGS and LDFLAGS +dnl Usage: +dnl AM_PYTHON_CONFIG + +AC_DEFUN([AM_PYTHON_CONFIG], +[ AC_SUBST(PYTHON_CFLAGS) + AC_SUBST(PYTHON_LIBS) + +dnl We need to check for python build flags using distutils.sysconfig +dnl We cannot use python-config, as it was not available on older +dnl versions of python + AC_PATH_PROG(PYTHON, python) + AC_MSG_CHECKING([for working python]) + if test -x "$PYTHON"; then + PYTHON_CFLAGS="`$PYTHON -c \"from distutils import sysconfig; \ + print '-I' + sysconfig.get_python_inc() + \ + ' -I' + sysconfig.get_python_inc(plat_specific=True) + ' ' + \ + sysconfig.get_config_var('BASECFLAGS')\"`" + PYTHON_LIBS="`$PYTHON -c \"from distutils import sysconfig; \ + print \\\" \\\".join(sysconfig.get_config_var('LIBS').split() + \ + sysconfig.get_config_var('SYSLIBS').split()) + \ + ' -lpython' + sysconfig.get_config_var('VERSION')\"`" + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([no. Please install python devel package]) + fi +]) + +dnl Taken from GNOME sources +dnl a macro to check for ability to create python extensions +dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE]) +dnl function also defines PYTHON_INCLUDES +AC_DEFUN([AM_CHECK_PYTHON_HEADERS], +[AC_REQUIRE([AM_PATH_PYTHON]) + AC_MSG_CHECKING(for headers required to compile python extensions) + + dnl deduce PYTHON_INCLUDES + py_prefix=`$PYTHON -c "import sys; print sys.prefix"` + py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` + PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" + if test "$py_prefix" != "$py_exec_prefix"; then + PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}" + fi + + AC_SUBST(PYTHON_INCLUDES) + + dnl check if the headers exist: + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" + AC_TRY_CPP([#include ],dnl + [AC_MSG_RESULT([found]) + $1],dnl + [AC_MSG_RESULT([not found]) + $2]) + CPPFLAGS="$save_CPPFLAGS" +]) + + diff --git a/src/external/selinux.m4 b/src/external/selinux.m4 new file mode 100644 index 000000000..0c5d5294e --- /dev/null +++ b/src/external/selinux.m4 @@ -0,0 +1,13 @@ +dnl A macro to check the availability of SELinux +AC_DEFUN([AM_CHECK_SELINUX], +[ + AC_CHECK_HEADERS(selinux/selinux.h, + [AC_CHECK_LIB(selinux, is_selinux_enabled, + [SELINUX_LIBS="-lselinux"], + [AC_MSG_ERROR([SELinux library is missing])] + ) + ], + [AC_MSG_ERROR([SELinux headers are missing])]) + AC_SUBST(SELINUX_LIBS) +]) + diff --git a/src/external/sizes.m4 b/src/external/sizes.m4 new file mode 100644 index 000000000..53df61ded --- /dev/null +++ b/src/external/sizes.m4 @@ -0,0 +1,44 @@ +# Solaris needs HAVE_LONG_LONG defined +AC_CHECK_TYPES(long long) + +AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(char) +AC_CHECK_SIZEOF(short) +AC_CHECK_SIZEOF(long) +AC_CHECK_SIZEOF(long long) + +if test $ac_cv_sizeof_long_long -lt 8 ; then +AC_MSG_ERROR([SSSD requires long long of 64-bits]) +fi + +AC_CHECK_TYPE(uint_t, unsigned int) +AC_CHECK_TYPE(int8_t, char) +AC_CHECK_TYPE(uint8_t, unsigned char) +AC_CHECK_TYPE(int16_t, short) +AC_CHECK_TYPE(uint16_t, unsigned short) + +if test $ac_cv_sizeof_int -eq 4 ; then +AC_CHECK_TYPE(int32_t, int) +AC_CHECK_TYPE(uint32_t, unsigned int) +elif test $ac_cv_size_long -eq 4 ; then +AC_CHECK_TYPE(int32_t, long) +AC_CHECK_TYPE(uint32_t, unsigned long) +else +AC_MSG_ERROR([LIBREPLACE no 32-bit type found]) +fi + +AC_CHECK_TYPE(int64_t, long long) +AC_CHECK_TYPE(uint64_t, unsigned long long) + +AC_CHECK_TYPE(size_t, unsigned int) +AC_CHECK_TYPE(ssize_t, int) + +AC_CHECK_SIZEOF(off_t) +AC_CHECK_SIZEOF(size_t) +AC_CHECK_SIZEOF(ssize_t) + +AC_CHECK_TYPE(intptr_t, long long) +AC_CHECK_TYPE(uintptr_t, unsigned long long) +AC_CHECK_TYPE(ptrdiff_t, unsigned long long) + + -- cgit