3 # CONFIGURE SCRIPT FOR CITADEL SERVER
4 # This file is part of "conf-IG-ure"
5 # Copyright (C) 2016-2022 by Art Cancro
7 # This program is open source software. Use, duplication, and/or
8 # disclosure are subject to the GNU General Purpose License version 3.
11 echo Running the configure script to create config.mk
14 ########################################################################
15 # Parse the command line arguments
16 ########################################################################
20 k=`echo $a | awk -F= ' { print $1 } '`
21 v=`echo $a | awk -F= ' { print $2 } '`
25 echo $0 : '--prefix is not supported. you are probably looking for --ctdldir'
32 echo $0 : unknown option $k
34 echo Valid options are:
35 echo ' --ctdldir=DIR Install Citadel server to DIR [/usr/local/citadel]'
43 ########################################################################
44 # Set any missing values
45 ########################################################################
47 # GCC is the default C compiler
48 [ "${CC}" = "" ] && export CC=gcc
50 # Accept PREFIX as a substitute for CTDLDIR, but only if CTDLDIR is not already set
51 [ "$CTDLDIR" = "" ] && [ "$PREFIX" != "" ] && CTDLDIR=$PREFIX
53 # Configure the directory into which Citadel Server will be installed.
54 [ "$CTDLDIR" = "" ] && CTDLDIR=/usr/local/citadel
57 # Permit override of CFLAGS and LDFLAGS using environment variables
58 [ "$CFLAGS" = "" ] && CFLAGS=''
59 [ "$CPPFLAGS" = "" ] && CPPFLAGS=''
60 [ "$LDFLAGS" = "" ] && LDFLAGS=''
63 ########################################################################
65 ########################################################################
66 echo Testing for OpenSSL...
67 tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/configure.$$
70 #include <openssl/ssl.h>
71 int main(int argc, char **argv) {
72 SSL_load_error_strings();
76 $CC $CFLAGS $CPPFLAGS $tempcc -o $tempfile $LDFLAGS -lssl -lcrypto && $tempfile >/dev/null 2>&1 && {
77 CFLAGS=${CFLAGS}' -DHAVE_OPENSSL'
78 LDFLAGS=${LDFLAGS}' -lssl -lcrypto -lz'
80 echo Citadel Server requires OpenSSL which is not present.
81 rm -f $tempfile $tempcc 2>/dev/null
86 ########################################################################
88 ########################################################################
89 echo Testing for iconv...
90 tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/configure.$$
97 int main(int argc, char **argv) {
98 size_t wow = iconv(NULL, NULL, NULL, NULL, NULL);
103 $CC $CFLAGS $CPPFLAGS $tempcc -o $tempfile >/dev/null 2>&1 && {
105 echo iconv.h is present and requires no additional libraries
107 echo Trying again with -liconv...
108 $CC $CFLAGS $CPPFLAGS $tempcc -o $tempfile $LDFLAGS -liconv && {
110 LDFLAGS=${LDFLAGS}' -liconv'
112 echo Citadel Server requires iconv character set conversion.
113 rm -f $tempfile $tempcc 2>/dev/null
119 ########################################################################
121 ########################################################################
122 echo Testing for lresolv...
123 tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/configure.$$
130 int main(int argc, char **argv) {
135 $CC $CFLAGS $CPPFLAGS $tempcc -lresolv -o $tempfile >/dev/null 2>&1 && {
141 rm -f $tempfile $tempcc 2>/dev/null
144 ########################################################################
146 ########################################################################
147 echo Testing for lintl...
148 tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/configure.$$
155 int main(int argc, char **argv) {
160 $CC $CFLAGS $CPPFLAGS $tempcc -lintl -o $tempfile >/dev/null 2>&1 && {
166 rm -f $tempfile $tempcc 2>/dev/null
169 ########################################################################
170 # Are we on Linux with -lcrypt and PAMmy stuff?
171 ########################################################################
172 echo Testing for lcrypt...
173 tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/configure.$$
180 int main(int argc, char **argv) {
185 $CC $CFLAGS $CPPFLAGS $tempcc -lcrypt -o $tempfile >/dev/null 2>&1 && {
191 rm -f $tempfile $tempcc 2>/dev/null
194 ########################################################################
195 # This is needed to link Berkeley DB. We will add more here later.
196 ########################################################################
200 ########################################################################
201 # The build ID can be generated from git or from the date
202 ########################################################################
203 CFLAGS=${CFLAGS}' -DBUILD_ID=\"'$(git describe 2>/dev/null || date +%y%03j)'\"'
204 CFLAGS=${CFLAGS}' -DCTDLDIR=\"'${CTDLDIR}'\"'
207 ########################################################################
208 # Output the config.mk
209 ########################################################################
211 echo '# config.mk is generated by configure'
212 echo "CTDLDIR := ${CTDLDIR}"
214 echo "CFLAGS := ${CFLAGS} ${CPPFLAGS}"
215 echo "LDFLAGS := ${LDFLAGS}"
216 echo "LRESOLV := ${LRESOLV}"
217 echo "LINTL := ${LINTL}"
218 echo "BACKEND_LDFLAGS := ${BACKEND_LDFLAGS}"
219 echo "CHKPW := ${CHKPW}"