]> andersk Git - moira.git/blobdiff - configure.in
Command line printer manipulation client, and build goo.
[moira.git] / configure.in
index 6595c21ad565f056c6c091f5865058b45814b3b0..a747c2c01e78d3c5b210d1b3c1124214edcb8afa 100755 (executable)
@@ -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,17 @@ 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
-    with_readline=/mit/gnu
-    unset with_com_err
-    prefix=/afs/athena.mit.edu/system/moira
+    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_LIBS(/usr/athena/lib)
 fi
 
 # We currently just don't support changing this
@@ -82,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
@@ -126,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
@@ -168,48 +195,10 @@ 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
 
-# GDSS support (default: build util/gdss if present)
-AC_MSG_CHECKING(for GDSS)
-AC_ARG_WITH(gdss,
-    [  --with-gdss=PREFIX      Specify location of GDSS],
-    [gdss="$withval"
-     MR_INCLUDE("$gdss/include")
-     GDSS_LIBS="-L$gdss/lib -lgdss"],
-    [if test -d $srcdir/util/gdss; then
-         gdss=$srcdir/util/gdss
-        GDSS_SUBDIR=util/gdss
-        GDSS_OUTPUT_FILES="util/gdss/Makefile util/gdss/lib/Makefile \
-            util/gdss/lib/crypto/Makefile util/gdss/lib/crypto/bignum/Makefile \
-            util/gdss/lib/crypto/algorithm/Makefile"
-        # autoconf can't deal with creating util/gdss if util doesn't exist
-        if test ! -d util; then
-            mkdir util
-        fi
-        MR_INCLUDE('$(SRCTOP)/util/gdss/include')
-        GDSS_LIBS='-L$(BUILDTOP)/util/gdss/lib -lgdss'
-        GDSS_LIBDEP='$(BUILDTOP)/util/gdss/lib/libgdss.a'
-     else
-         gdss=no
-     fi])
-AC_MSG_RESULT($gdss)
-if test "$gdss" != no; then
-    GDSS_OBJS='$(GDSS_OBJS)'
-    GDSS_CFILES='$(GDSS_CFILES)'
-    GDSS_TARGET='$(GDSS_TARGET)'
-    MR_DEFINE(HAVE_GDSS)
-fi
-AC_SUBST(GDSS_CPPFLAGS)
-AC_SUBST(GDSS_LIBS)
-AC_SUBST(GDSS_SUBDIR)
-AC_SUBST(GDSS_OBJS)
-AC_SUBST(GDSS_CFILES)
-AC_SUBST(GDSS_TARGET)
-AC_SUBST(GDSS_LIBDEP)
-
 # RSAREF support (default: build util/rsaref if present)
 AC_MSG_CHECKING(for RSAREF)
 AC_ARG_WITH(rsaref,
@@ -260,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 afssync/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)
@@ -277,6 +275,54 @@ 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,
+    [  --with-ldap=PREFIX      Specify location of LDAP libs (for server)],
+    [ ldap="$withval"], 
+    [if test -n "$LDAP_HOME" -a -d "$LDAP_HOME"; then
+         ldap=$LDAP_HOME
+     else
+        ldap=no
+     fi])
+AC_MSG_RESULT($ldap)
+if test "$ldap" != no -a "$oracle" != no; then
+    if test "$ldap" != yes; then
+        LDAP_CPPFLAGS="-I$ldap/include"
+       LDAP_LIBS="-L$ldap/lib"
+    fi
+    MR_DEFINE(HAVE_LDAP)
+
+    WINAD_SUBDIRS="winad ldap"
+    WINAD_OUTPUT_FILES="incremental/winad/Makefile incremental/ldap/Makefile"
+fi
+AC_SUBST(LDAP_CPPFLAGS)
+AC_SUBST(LDAP_LIBS)
+AC_SUBST(WINAD_SUBDIRS)
+
 # AFS support
 AC_MSG_CHECKING(for AFS)
 AC_ARG_WITH(afs,
@@ -290,34 +336,44 @@ 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"
+    AFS_OUTPUT_FILES="incremental/afs/Makefile"
+    if test -d $srcdir/afssync; then
+       AFS_SYNCDIR="afssync"
+       AFS_OUTPUT_FILES="$AFS_OUTPUT_FILES afssync/Makefile"
+    fi
 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)
 
 # GNU readline
 AC_CHECKING(for GNU readline...)
 AC_ARG_WITH(readline,
     [  --with-readline=PREFIX  Specify location of GNU readline],
-    [readline="$withval"],
-    [AC_CHECK_LIB(readline, readline, [readline=yes], :, -ltermcap)])
+    [readline="$withval"; AC_MSG_RESULT($withval)],
+    [AC_CHECK_LIB(readline, readline, [readline=yes],
+       [if test "$athena" = true; then
+            unset ac_cv_lib_readline_readline
+            AC_CHECK_LIB(readline, readline, [readline=/mit/gnu], :,
+                -L/mit/gnu/lib -ltermcap)
+        fi],
+       -ltermcap)])
 if test "$readline" != no; then
     if test "$readline" != yes; then
-       READLINE_CPPFLAGS="-I$readline/include/readline -DHAVE_READLINE"
-       READLINE_LIBS="-L$readline/lib -lreadline -ltermcap"
+       READLINE_CPPFLAGS="-I$readline/include"
+       READLINE_LIBS="-L$readline/lib"
     fi
+    READLINE_CPPFLAGS="$READLINE_CPPFLAGS -DHAVE_READLINE"
+    READLINE_LIBS="$READLINE_LIBS -lreadline -ltermcap"
 fi
 AC_SUBST(READLINE_CPPFLAGS)
 AC_SUBST(READLINE_LIBS)
@@ -360,6 +416,8 @@ if test -n "$CURSES_LIBS"; then
                AC_TRY_COMPILE([#include <curses.h>],[WINDOW *w; w->_maxx;],
                               [CURSES_CPPFLAGS="-D'getmaxx(w)=w->_maxx'"],
                               [CURSES_CPPFLAGS="-D'getmaxx(w)=w->maxx'"]))
+    AC_TRY_LINK([#include <curses.h>],[newterm(NULL, NULL, NULL);],
+               [CURSES_CPPFLAGS="$CURSES_CPPFLAGS -DCURSES_HAS_NEWTERM"])
     LIBS=$OLDLIBS
     CURSES_CPPFLAGS="-DHAVE_CURSES $CURSES_CPPFLAGS"
     CURSES_SUBDIRS='$(CURSES_SUBDIRS)'
@@ -371,7 +429,24 @@ AC_SUBST(CURSES_LIBS)
 AC_SUBST(CURSES_SUBDIRS)
 
 
-AC_CHECK_FUNCS(getusershell)
+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')
@@ -380,16 +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/addusr/Makefile clients/blanche/Makefile \
-         clients/mailmaint/Makefile clients/moira/Makefile \
+         clients/lib/Makefile clients/addusr/Makefile \
+         clients/blanche/Makefile clients/chfn/Makefile \
+         clients/chpobox/Makefile clients/chsh/Makefile \
+         clients/eunice/Makefile clients/mailmaint/Makefile \
+         clients/mitch/Makefile clients/moira/Makefile \
          clients/mrcheck/Makefile clients/mrtest/Makefile \
-         clients/passwd/Makefile update/Makefile man/Makefile \
-         $SERVER_OUTPUT_FILES $GDSS_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)
This page took 0.045908 seconds and 4 git commands to generate.