fix dlen
[citadel.git] / citadel / configure
index 9fe4e8819d12eabcf309229bf94c57d4f8b9573b..ad136e3ac1b2ed79061c1688d1e648c2efc7e43b 100755 (executable)
@@ -44,14 +44,19 @@ done
 # Set any missing values
 ########################################################################
 
+# GCC is the default C compiler
+[ "${CC}" = "" ]       && export CC=gcc
+
 # Accept PREFIX as a substitute for CTDLDIR, but only if CTDLDIR is not already set
 [ "$CTDLDIR" = "" ] && [ "$PREFIX" != "" ] && CTDLDIR=$PREFIX
 
 # Configure the directory into which Citadel Server will be installed.
-[ "$CTDLDIR" = "" ] && CTDLDIR=/usr/local/citadel
+[ "$CTDLDIR" = "" ]    && CTDLDIR=/usr/local/citadel
+
 
 # Permit override of CFLAGS and LDFLAGS using environment variables
-[ "$CFLAGS" = "" ]     && CFLAGS='-ggdb'
+[ "$CFLAGS" = "" ]     && CFLAGS=''
+[ "$CPPFLAGS" = "" ]   && CPPFLAGS=''
 [ "$LDFLAGS" = "" ]    && LDFLAGS=''
 
 
@@ -68,11 +73,12 @@ int main(int argc, char **argv) {
        exit(0);
 }
 !
-cc $tempcc -lssl -lcrypto -o $tempfile && $tempfile && {
+$CC $CFLAGS $CPPFLAGS $tempcc -o $tempfile $LDFLAGS -lssl -lcrypto && $tempfile >/dev/null 2>&1 && {
        CFLAGS=${CFLAGS}' -DHAVE_OPENSSL'
        LDFLAGS=${LDFLAGS}' -lssl -lcrypto -lz'
 } || {
        echo Citadel Server requires OpenSSL which is not present.
+       rm -f $tempfile $tempcc 2>/dev/null
        exit 2
 }
 
@@ -94,21 +100,103 @@ int main(int argc, char **argv) {
 }
 !
 
-cc $tempcc -o $tempfile && {
+$CC $CFLAGS $CPPFLAGS $tempcc -o $tempfile >/dev/null 2>&1 && {
        ICONV='yes'
        echo iconv.h is present and requires no additional libraries
 } || {
        echo Trying again with -liconv...
-       cc $tempcc -liconv -o $tempfile && {
+       $CC $CFLAGS $CPPFLAGS $tempcc -o $tempfile $LDFLAGS -liconv && {
                ICONV='yes'
                LDFLAGS=${LDFLAGS}' -liconv'
        } || {
                echo Citadel Server requires iconv character set conversion.
+               rm -f $tempfile $tempcc 2>/dev/null
                exit 1
        }
 }
 
 
+########################################################################
+# Test for -lresolv
+########################################################################
+echo Testing for lresolv...
+tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/configure.$$
+tempcc=${tempfile}.c
+cat >$tempcc <<!
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <iconv.h>
+int main(int argc, char **argv) {
+       return(0);
+}
+!
+
+$CC $CFLAGS $CPPFLAGS $tempcc -lresolv -o $tempfile >/dev/null 2>&1 && {
+       LRESOLV='-lresolv'
+} || {
+       LRESOLV=''
+}
+
+rm -f $tempfile $tempcc 2>/dev/null
+
+
+########################################################################
+# Test for -lintl
+########################################################################
+echo Testing for lintl...
+tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/configure.$$
+tempcc=${tempfile}.c
+cat >$tempcc <<!
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <iconv.h>
+int main(int argc, char **argv) {
+       return(0);
+}
+!
+
+$CC $CFLAGS $CPPFLAGS $tempcc -lintl -o $tempfile >/dev/null 2>&1 && {
+       LINTL='-lintl'
+} || {
+       LINTL=''
+}
+
+rm -f $tempfile $tempcc 2>/dev/null
+
+
+########################################################################
+# Are we on Linux with -lcrypt and PAMmy stuff?
+########################################################################
+echo Testing for lcrypt...
+tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/configure.$$
+tempcc=${tempfile}.c
+cat >$tempcc <<!
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <crypt.h>
+int main(int argc, char **argv) {
+       return(0);
+}
+!
+
+$CC $CFLAGS $CPPFLAGS $tempcc -lcrypt -o $tempfile >/dev/null 2>&1 && {
+       CHKPW='chkpw chkpwd'
+} || {
+       CHKPW=''
+}
+
+rm -f $tempfile $tempcc 2>/dev/null
+
+
+########################################################################
+# This is needed to link Berkeley DB.  We will add more here later.
+########################################################################
+BACKEND_LDFLAGS=-ldb
+
+
 ########################################################################
 # The build ID can be generated from git or from the date
 ########################################################################
@@ -122,8 +210,13 @@ CFLAGS=${CFLAGS}' -DCTDLDIR=\"'${CTDLDIR}'\"'
 (
        echo '# config.mk is generated by configure'
        echo "CTDLDIR := ${CTDLDIR}"
-       echo "CFLAGS := ${CFLAGS}"
+       echo "CC := ${CC}"
+       echo "CFLAGS := ${CFLAGS} ${CPPFLAGS}"
        echo "LDFLAGS := ${LDFLAGS}"
+       echo "LRESOLV := ${LRESOLV}"
+       echo "LINTL := ${LINTL}"
+       echo "BACKEND_LDFLAGS := ${BACKEND_LDFLAGS}"
+       echo "CHKPW := ${CHKPW}"
 ) >config.mk
 
 cat config.mk