dnl Process this file with autoconf to produce a configure script. AC_INIT(quota.c) dnl Checks for programs. AC_PROG_CC AC_HEADER_STDC AC_PROG_INSTALL dnl Check for compiler options AC_MSG_CHECKING(whether compiler supports PIE) oldCFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fPIE" oldLDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -pie" AC_LINK_IFELSE([AC_LANG_PROGRAM([[]])], compilepie="yes") if test "x$compilepie" != "xyes"; then CFLAGS="$oldCFLAGS" LDFLAGS="$oldLDFLAGS" AC_MSG_RESULT(no) else AC_MSG_RESULT(yes) fi dnl Checks for libraries. AC_ARG_ENABLE(ldapmail, [ --enable-ldapmail=[yes/no/try] Enable ldap mail address lookups [default=no].], , enable_ldapmail="no") if test "x$enable_ldapmail" != "xno"; then have_new_ldap="no" have_old_ldap="no" AC_CHECK_LIB(ldap, ldap_initialize, have_new_ldap="yes", AC_CHECK_LIB(ldap, ldap_init, have_old_ldap="yes")) if test "x$have_new_ldap" != "xno" -o "x$have_old_ldap" != "xno"; then LDAPLIBS="-L/usr/lib -lldap" CFLAGS="$CFLAGS -DUSE_LDAP_MAIL_LOOKUP" COMPILE_OPTS="$COMPILE_OPTS USE_LDAP_MAIL_LOOKUP" if test "x$have_new_ldap" = "xyes"; then CFLAGS="$CFLAGS -DUSE_LDAP_23" AC_CHECK_DECL(ldap_perror, , CFLAGS="$CFLAGS -DNEED_LDAP_PERROR", [#include ]) fi else if test "x$enable_ldapmail" = "xyes"; then AC_MSG_ERROR([LDAP support required but library not found.]); fi fi fi AC_SUBST(LDAPLIBS) AC_CHECK_HEADER(ext2fs/ext2fs.h,ext2fshead="yes") if test "x$ext2fshead" = "xyes"; then CFLAGS="-DHAVE_EXT2_INCLUDE $CFLAGS" AC_MSG_CHECKING([for ext2_ino_t]) have_ext2_ino_t="no" AC_EGREP_HEADER(ext2_ino_t, ext2fs/ext2fs.h, have_ext2_ino_t="yes") if test "x$have_ext2_ino_t" != "xyes"; then AC_MSG_RESULT([not found]) else AC_MSG_RESULT([found]) CFLAGS="-DHAVE_EXT2_INO_T $CFLAGS" fi fi AC_ARG_ENABLE(ext2direct, [ --enable-ext2direct=[yes/no/try] Enable scanning of EXT2/EXT3 filesystem using e2fslib [default=try].], , enable_ext2direct="try") if test "x$enable_ext2direct" != "xno"; then AC_CHECK_LIB(com_err, com_err, EXT2LIBS="-lcom_err $EXT2LIBS") AC_CHECK_LIB(ext2fs, ext2fs_initialize, EXT2LIBS="-lext2fs $EXT2LIBS",, "-lcom_err") if test "${ac_cv_lib_com_err_com_err}" != "yes" -o "${ac_cv_lib_ext2fs_ext2fs_initialize}" != "yes"; then if test "x$enable_ext2direct" = "xyes"; then AC_MSG_ERROR([Ext2 direct support required but libraries not found.]) else AC_MSG_WARN([Ext2 direct support won't be compiled. Libraries not found.]) fi enable_ext2direct="no" EXT2LIBS="" else if test "x$ext2fshead" != "xyes"; then if test "x$enable_ext2direct" = "xyes"; then AC_MSG_ERROR([Ext2 direct support required but header files not found.]) else AC_MSG_WARN([Ext2 direct support won't be compiled. Header files not found.]) fi enable_ext2direct="no" EXT2LIBS="" else enable_ext2direct="yes" fi fi if test "x$enable_ext2direct" = "xyes"; then EXT2_DIRECT="-DEXT2_DIRECT" COMPILE_OPTS="$COMPILE_OPTS EXT2_DIRECT" AC_SUBST(EXT2_DIRECT) fi fi AC_SUBST(EXT2LIBS) #AC_ARG_WITH(dbus_include, # [ --with-dbus_include=path Path to directory with dbus include directory [default=/usr/include/dbus-1.0/]], # DBUS_INCLUDE="$with_dbus_include", # DBUS_INCLUDE="/usr/include/dbus-1.0/") #AC_ARG_WITH(dbus_arch_include, # [ --with-dbus_arch_include=path Path to directory with dbus arch-dependent include directory [default=/usr/lib/dbus-1.0/include/]], # DBUS_ARCH_INCLUDE="$with_dbus_arch_include", # DBUS_ARCH_INCLUDE="/usr/lib/dbus-1.0/include/") AC_ARG_ENABLE(netlink, [ --enable-netlink=[yes/no/try] Compile daemon receiving quota messages via netlink [default=no].], , enable_netlink="no") if test "x$enable_netlink" != "xno"; then PKG_CHECK_MODULES([DBUS], [dbus-1]) AC_CHECK_LIB(nl, genl_register, NETLINKLIBS="-lnl $DBUS_LIBS") if test -z "$NETLINKLIBS" -o -z "$DBUS_LIBS"; then if test "x$enable_netlink" = "xyes"; then AC_MSG_ERROR([Required libraries for quota netlink daemon not found.]) else AC_MSG_WARN([Quota netlink daemon won't be compiled. Required libraries not found.]) fi enable_netlink="no" NETLINKLIBS="" else CPPFLAGS="$DBUS_CFLAGS $CPPFLAGS" if test -z "$DBUS_LIBS"; then if test "x$enable_netlink" = "xyes"; then AC_MSG_ERROR([Required headers for quota netlink daemon not found.]) else AC_MSG_WARN([Quota netlink daemon won't be compiled. Required headers not found.]) fi NETLINKLIBS="" enable_netlink="no" else QUOTA_NETLINK_PROG=quota_nld fi fi fi AC_SUBST(QUOTA_NETLINK_PROG) AC_SUBST(NETLINKLIBS) AC_SEARCH_LIBS(gethostbyname, nsl) AC_MSG_CHECKING(for host_access in -lwrap) AC_CACHE_VAL(ac_cv_lib_wrap_main, saved_LIBS="$LIBS" LIBS="$LIBS -lwrap" [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include #include #include #include #include struct request_info request; int deny_severity, allow_severity;]],[[hosts_access(&request);]])], dnl We always restore LIBS as we add -lwrap in the next check [ac_cv_lib_wrap_main=yes; LIBS="$saved_LIBS"; AC_MSG_RESULT(yes)], [ac_cv_lib_wrap_main=no; LIBS="$saved_LIBS"; AC_MSG_RESULT(no)]) ]) if test ${ac_cv_lib_wrap_main} = yes; then AC_CHECK_HEADER(tcpd.h,, [ echo 'ERROR: could not find tcpd.h - missing TCP wrappers package' exit 1 ]) LIBS="$LIBS -lwrap" HOSTS_ACCESS="-DHOSTS_ACCESS" COMPILE_OPTS="$COMPILE_OPTS HOST_ACCESS" AC_SUBST(HOSTS_ACCESS) fi dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_ARG_ENABLE(altformat, [ --enable-altformat=[yes/no] Enable alternative format used by edquota [default=yes].], , enable_altformat="yes") AC_ARG_ENABLE(rpc, [ --enable-rpc=[yes/no] Enable RPC support [default=yes].], , enable_rpc="yes") AC_ARG_ENABLE(rpcsetquota, [ --enable-rpcsetquota=[yes/no] Use RPC for setting quotas [default=no].], , enable_rpcsetquota="no") AC_ARG_ENABLE(xfs_roothack, [ --enable-xfs_roothack=[yes/no] Support old XFS root filesystems [default=no].], , enable_xfs_roothack="no") AC_ARG_ENABLE(bsd_behaviour, [ --enable-bsd_behaviour=[yes/no] Mimic BSD behaviour [default=yes].], , enable_bsd_behaviour="yes") AC_ARG_ENABLE(libefence, [ --enable-libefence=[yes/no] Use Electric Fence memory checks [default=no].], , enable_libefence="no") AC_ARG_ENABLE(nls, [ --enable-nls=[yes/no] Enable gettext [dafault=yes].], , enable_nls="yes") AC_ARG_ENABLE(rootsbin, [ --enable-rootsbin=[yes/no] Use /sbin for some important binaries regardless $prefix [default=no].], , enable_rootsbin="no") if test "$enable_altformat" = "yes" ; then CFLAGS="-DALT_FORMAT $CFLAGS" COMPILE_OPTS="$COMPILE_OPTS ALT_FORMAT" fi if test "$enable_rpc" = "yes" ; then CFLAGS="-DRPC $CFLAGS" COMPILE_OPTS="$COMPILE_OPTS RPC" fi if test "$enable_rpcsetquota" = "yes" ; then CFLAGS="-DRPC_SETQUOTA $CFLAGS" COMPILE_OPTS="$COMPILE_OPTS RPC_SETQUOTA" fi if test "$enable_xfs_roothack" = "yes" ; then CFLAGS="-DXFS_ROOTHACK $CFLAGS" COMPILE_OPTS="$COMPILE_OPTS XFS_ROOTHACK" fi if test "$enable_bsd_behaviour" = "yes" ; then CFLAGS="-DBSD_BEHAVIOUR $CFLAGS" COMPILE_OPTS="$COMPILE_OPTS BSD_BEHAVIOUR" fi if test "$enable_libefence" = "yes" ; then LIBMALLOC="/usr/lib/libefence.a" fi if test "$enable_nls" = "yes" ; then CFLAGS="-D__GETTEXT__ $CFLAGS" INSTMO="inst_mo" fi if test "$enable_rootsbin" = "yes" ; then ROOTSBIN="/sbin" else ROOTSBIN='$(prefix)/sbin' fi AC_SUBST(COMPILE_OPTS) AC_SUBST(LIBMALLOC) AC_SUBST(INSTMO) AC_SUBST(ROOTSBIN) AC_SUBST(CPPFLAGS) AC_OUTPUT(Makefile)