X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/blobdiff_plain/9b1f5e48f9174922df44c102639e75a5db58a65d..HEAD:/configure.in diff --git a/configure.in b/configure.in index caead914..a747c2c0 100755 --- a/configure.in +++ b/configure.in @@ -10,6 +10,25 @@ AC_DEFUN(MR_EXTEND, [ esac ]) +AC_CANONICAL_HOST +# SO_LDFLAGS setting below is a great big ick. +# But it beats sucking in libtool for one small part of the source tree. +case $host_os in +solaris*) + short_os=solaris + SO_LDFLAGS="-G" + ;; +irix*) + short_os=irix + SO_LDFLAGS="-shared" + ;; +linux*) + short_os=linux + SO_LDFLAGS="-shared" + ;; +esac +AC_SUBST(SO_LDFLAGS) + dnl Define for both C and Pro*C AC_DEFUN(MR_DEFINE, [ AC_DEFINE($1) @@ -28,15 +47,16 @@ AC_DEFUN(MR_LIBS, [MR_EXTEND(LIBPATH, -L$1)]) AC_PROG_CC AC_PROG_INSTALL AC_PROG_RANLIB +AC_PROG_LIBTOOL AC_PROG_MAKE_SET if test "$athena" = true; then enable_athena=yes prefix=/afs/.athena.mit.edu/system/moira bindir=$prefix/arch/$ATHENA_SYS/bin + libdir=$prefix/arch/$ATHENA_SYS/lib sbindir=$bindir MR_INCLUDE(/usr/athena/include) - MR_INCLUDE(/usr/athena/include/kerberosIV) MR_LIBS(/usr/athena/lib) fi @@ -83,43 +103,45 @@ AC_ARG_WITH(com_err, fi COMPILE_ET=compile_et], [AC_MSG_RESULT(util/et) - COM_ERR_SUBDIR=util/et; MR_INCLUDE(`pwd`/util/et) MR_LIBS(`pwd`/util/et) COMPILE_ET=`pwd`/util/et/compile_et - AC_CONFIG_SUBDIRS($COM_ERR_SUBDIR)]) + AC_CONFIG_SUBDIRS(util/et)]) AC_SUBST(COM_ERR_SUBDIR) AC_SUBST(COMPILE_ET) -# Kerberos (Kerberos 4 required, Kerberos 5 optional for reg_svr) +AC_CHECK_LIB(k5crypto, main, crypto="k5crypto", + [AC_CHECK_LIB(crypto, main, crypto="crypto")]) + +# Kerberos (Kerberos 4 optional, Kerberos 5 required) AC_MSG_CHECKING(for Kerberos 4) AC_ARG_WITH(krb4, [ --with-krb4=PREFIX Specify location of krb4], [krb4="$withval"], [krb4=no]) AC_MSG_RESULT($krb4) -if test $krb4 = "no"; then - AC_MSG_ERROR(Kerberos is required for Moira) -fi -if test "$krb4" != yes; then - MR_INCLUDE($krb4/include) - if test -d "$krb4/include/kerberosIV"; then - MR_INCLUDE($krb4/include/kerberosIV) +if test "$krb4" != no; then + if test "$krb4" != yes; then + MR_INCLUDE($krb4/include) + if test -d "$krb4/include/kerberosIV"; then + MR_INCLUDE($krb4/include/kerberosIV) + fi + MR_LIBS($krb4/lib) + elif test -d /usr/include/kerberosIV; then + MR_INCLUDE(/usr/include/kerberosIV) fi - MR_LIBS($krb4/lib) -elif test -d /usr/include/kerberosIV; then - MR_INCLUDE(/usr/include/kerberosIV) + MR_DEFINE(HAVE_KRB4) + AC_CHECK_LIB(krb4, krb_rd_req, + [KRB4_LIBS="-lkrb4 -ldes425 -lkrb5 -l${crypto} -lresolv"], + [AC_CHECK_LIB(krb, krb_rd_req, + [KRB4_LIBS="-lkrb -ldes"], + [AC_MSG_ERROR(Kerberos 4 libraries not found)], + $LIBPATH -ldes)], + $LIBPATH -ldes425 -lkrb5 -l${crypto} -lcom_err -lresolv) fi -AC_CHECK_LIB(krb4, krb_rd_req, - [KRB4_LIBS="-lkrb4 -ldes425 -lkrb5 -lcrypto"], - [AC_CHECK_LIB(krb, krb_rd_req, - [KRB4_LIBS="-lkrb -ldes"], - [AC_MSG_ERROR(Kerberos 4 libraries not found)], - $LIBPATH -ldes)], - $LIBPATH -ldes425 -lkrb5 -lcrypto -lcom_err) AC_MSG_CHECKING(for Kerberos 5) AC_ARG_WITH(krb5, - [ --with-krb5=PREFIX Specify location of krb5 (for reg_svr)], + [ --with-krb5=PREFIX Specify location of krb5], [krb5="$withval"], [krb5=no]) AC_MSG_RESULT($krb5) if test "$krb5" != no; then @@ -127,8 +149,12 @@ if test "$krb5" != no; then if test "$krb5" != yes; then REG_SVR_INCLUDES=-I$krb5/include REG_SVR_LIBS=-L$krb5/lib + MR_INCLUDE($krb5/include) + MR_LIBS($krb5/lib) fi - REG_SVR_LIBS="$REG_SVR_LIBS -lkadm5clnt -lgssapi_krb5 -lgssrpc -ldyn -lkrb4 -ldes425 -lkrb5 -lcrypto" + MR_DEFINE(HAVE_KRB5) + KRB5_LIBS="-lkrb5 -l${crypto} -lcom_err -lresolv" + REG_SVR_LIBS="$REG_SVR_LIBS -lkadm5clnt -lgssapi_krb5 -lgssrpc -lkrb5 -l${crypto} -lresolv" else REG_SVR_DEFS=-DKRB4 REG_SVR_LIBS=-lkadm @@ -169,7 +195,7 @@ if test "$zephyr" != no; then fi AC_CHECK_LIB(zephyr, ZInitialize, :, [AC_MSG_ERROR(Zephyr library not found)], - $LIBPATH $KRB4_LIBS -lcom_err) + $LIBPATH $KRB4_LIBS $KRB5_LIBS -lcom_err) MR_DEFINE(HAVE_ZEPHYR) fi @@ -223,15 +249,24 @@ if test "$oracle" != no; then 2.0.6.0.0) SQL_LIBS="-L$oracle/lib -lsql $oracle/lib/osntab.o -lsqlnet -lora -lsqlnet -lnlsrtl -lcv6 -lcore -lnlsrtl -lcore -lm" ;; - *) + 2.2.4.0.0) SQL_LIBS="-L$oracle/lib -lclntsh -lxa -lsql -lsqlnet -lncr -lsqlnet -lclient -lcommon -lgeneric -lsqlnet -lncr -lsqlnet -lclient -lcommon -lgeneric -lepc -lnlsrtl3 -lc3v6 -lcore3 -lnlsrtl3 -lcore3 -lnlsrtl3 `cat $oracle/rdbms/lib/sysliblist` -lm -lthread" ;; + 8.1.7.4.0) + SQL_LIBS="-L$oracle/lib -lclntsh `cat $oracle/lib/sysliblist` -R$oracle/lib -laio -lm -lthread" + ;; + 10.2.0.2.0) + SQL_LIBS="-L$oracle/lib32 -lclntsh `cat $oracle/lib32/ldflags` `cat $oracle/lib32/sysliblist` -R$oracle/lib32 -laio -lposix4 -lm -lthread" + ;; + *) + AC_MSG_ERROR(Unsupported Oracle release) + ;; esac SVRSUBDIRS='$(SVRDIRS)' - SERVER_OUTPUT_FILES="db/Makefile server/Makefile backup/Makefile dbck/Makefile dcm/Makefile gen/Makefile incremental/Makefile reg_svr/Makefile regtape/Makefile" + SERVER_OUTPUT_FILES="db/Makefile server/Makefile backup/Makefile dbck/Makefile dcm/Makefile gen/Makefile incremental/Makefile incremental/mailman/Makefile reg_svr/Makefile regtape/Makefile" PRO_C=$oracle/bin/proc PRO_C_OPTS=CODE=ANSI_C - PRO_C_DEFS="DEFINE=_PROC_ $PRO_C_DEFS" + PRO_C_DEFS="DEFINE=_PROC_ DEFINE=__sparc $PRO_C_DEFS" fi AC_SUBST(PRO_C) AC_SUBST(PRO_C_DEFS) @@ -240,6 +275,29 @@ AC_SUBST(PRO_C_OPTS) AC_SUBST(SQL_LIBS) AC_SUBST(SVRSUBDIRS) +# Java support, for webmoira +AC_MSG_CHECKING(for Java) +AC_ARG_WITH(java, + [ --with-java=PREFIX Specify location of Java libs and headers], + [ java="$withval"], + [if test -n "$JAVA_HOME" -a -d "$JAVA_HOME"; then + java=$JAVA_HOME + else + java=no + fi]) +AC_MSG_RESULT($java) +if test "$java" != no; then + if test "$java" != yes; then + JAVA_CPPFLAGS="-I$java/include -I$java/include/$short_os" + fi + MR_DEFINE(HAVE_JAVA) + + WEBMOIRA_SUBDIRS="webmoira" + WEBMOIRA_OUTPUT_FILES="webmoira/Makefile" +fi +AC_SUBST(JAVA_CPPFLAGS) +AC_SUBST(WEBMOIRA_SUBDIRS) + # LDAP support AC_MSG_CHECKING(for LDAP) AC_ARG_WITH(ldap, @@ -258,8 +316,8 @@ if test "$ldap" != no -a "$oracle" != no; then fi MR_DEFINE(HAVE_LDAP) - WINAD_SUBDIRS="winad" - WINAD_OUTPUT_FILES="incremental/winad/Makefile" + WINAD_SUBDIRS="winad ldap" + WINAD_OUTPUT_FILES="incremental/winad/Makefile incremental/ldap/Makefile" fi AC_SUBST(LDAP_CPPFLAGS) AC_SUBST(LDAP_LIBS) @@ -278,15 +336,9 @@ if test "$afs" != no -a "$oracle" != no; then AFS_LIBS="-L$afs/lib -L$afs/lib/afs" AFS_DIR=$afs fi - AC_CHECK_FUNC(insque, :, AC_CHECK_LIB(compat, insque, - AFS_EXTRA_LIBS="-lcompat", - AC_MSG_ERROR(insque not found))) - AC_CHECK_FUNC(sigvec, :, AC_CHECK_LIB(ucb, sigvec, - AFS_EXTRA_LIBS="$AFS_EXTRA_LIBS -L/usr/ucblib -lc -lucb", - :, -L/usr/ucblib)) AC_CHECK_LIB(sys, pioctl, :, [AC_MSG_ERROR(AFS libraries not found)], - $AFS_LIBS -lrx -llwp -lsys $AFS_EXTRA_LIBS) + $AFS_LIBS -lrx -llwp -lsys -lafsutil) MR_DEFINE(HAVE_AFS) AFS_SUBDIRS="afs" @@ -299,7 +351,6 @@ fi AC_SUBST(AFS_CPPFLAGS) AC_SUBST(AFS_PRO_C_INCLUDES) AC_SUBST(AFS_LIBS) -AC_SUBST(AFS_EXTRA_LIBS) AC_SUBST(AFS_DIR) AC_SUBST(AFS_SUBDIRS) AC_SUBST(AFS_SYNCDIR) @@ -378,12 +429,25 @@ AC_SUBST(CURSES_LIBS) AC_SUBST(CURSES_SUBDIRS) -AC_CHECK_FUNCS(getusershell strlcpy strlcat uname) +AC_CHECK_FUNCS(getusershell strlcpy strlcat uname strvis) AC_CHECK_FUNC(sigaction, AC_DEFINE(HAVE_POSIX_SIGNALS)) AC_CHECK_HEADERS(unistd.h getopt.h) +AC_CHECK_HEADER(netinet/in.h, AC_DEFINE(HAVE_NETINET_IN_H), no_netinet_in=yes) + +if test "$no_netinet_in" != "yes"; then + AC_MSG_CHECKING(for in_addr_t defined in netinet/in.h) + AC_EGREP_HEADER(in_addr_t, netinet/in.h, + ac_cv_type_in_addr_t=yes, ac_cv_type_in_addr_t=no) + AC_MSG_RESULT($ac_cv_type_in_addr_t) +fi + +if test "$ac_cv_type_in_addr_t" != "yes"; then + AC_DEFINE(in_addr_t, uint32_t) +fi + MR_EXTEND(PRO_C_INCLUDES, INCLUDE='$(srcdir)') MR_INCLUDE('$(SRCTOP)/include') MR_INCLUDE('$(SRCTOP)/lib') @@ -391,19 +455,29 @@ MR_INCLUDE('$(BUILDTOP)/lib') MR_INCLUDE('$(BUILDTOP)/db') MR_INCLUDE('$(srcdir)') LDFLAGS="$LDFLAGS -L\$(BUILDTOP)/lib $LIBPATH" -KLIBS="-lzephyr $KRB4_LIBS -lcom_err -lhesiod $LIBS" -LIBS="-lmoira $KLIBS" -AC_SUBST(KLIBS) - -MR_LIBDEP='$(BUILDTOP)/lib/libmoira.a' +KLIBS="$KRB4_LIBS $KRB5_LIBS -lcom_err $LIBS" +KLIBS="$LIBS" +if test "$hesiod" != no; then + KLIBS="-lhesiod $KLIBS" +fi +KLIBS="$KRB4_LIBS $KRB5_LIBS -lcom_err $KLIBS" +if test "$zephyr" != no; then + KLIBS="-lzephyr $KLIBS" +fi +MR_LIBDEP='$(BUILDTOP)/lib/libmoira.la' AC_SUBST(MR_LIBDEP) +LIBS="$MR_LIBDEP $KLIBS" +AC_SUBST(KLIBS) + AC_OUTPUT(Makefile lib/Makefile include/Makefile clients/Makefile \ clients/lib/Makefile clients/addusr/Makefile \ clients/blanche/Makefile clients/chfn/Makefile \ clients/chpobox/Makefile clients/chsh/Makefile \ - clients/mailmaint/Makefile clients/moira/Makefile \ + clients/eunice/Makefile clients/mailmaint/Makefile \ + clients/mitch/Makefile clients/moira/Makefile \ clients/mrcheck/Makefile clients/mrtest/Makefile \ - clients/stella/Makefile update/Makefile man/Makefile \ - $SERVER_OUTPUT_FILES $WINAD_OUTPUT_FILES $AFS_OUTPUT_FILES \ - $RSAREF_OUTPUT_FILES) + clients/stanley/Makefile clients/stella/Makefile \ + update/Makefile man/Makefile $WEBMOIRA_OUTPUT_FILES \ + $SERVER_OUTPUT_FILES $WINAD_OUTPUT_FILES \ + $AFS_OUTPUT_FILES $RSAREF_OUTPUT_FILES)