stringbuf.c: random idle style cleanup.
[citadel.git] / textclient / configure
1 #!/bin/sh
2
3 # CONFIGURE SCRIPT FOR CITADEL TEXT CLIENT
4 # This file is part of "conf-IG-ure"
5 # Copyright (C) 2016-2019 by Art Cancro
6 #
7 # This program is open source software.  Use, duplication, and/or
8 # disclosure are subject to the GNU General Purpose License version 3.
9
10 echo 
11 echo 
12 echo Running the configure script to create config.mk
13 echo
14
15 # Parse the command line arguments
16 for x in $*
17 do
18         a=$1
19         k=`echo $a | awk -F= ' { print $1 } '`
20         v=`echo $a | awk -F= ' { print $2 } '`
21
22         case $k in
23                 --prefix)
24                         PREFIX=$v
25                 ;;
26                 --bindir)
27                         BINDIR=$v
28                 ;;
29                 --etcdir)
30                         ETCDIR=$v
31                 ;;
32                 --ctdldir)
33                         CTDLDIR=$v
34                 ;;
35                 --with-ssl)
36                         SSL=yes
37                 ;;
38                 --without-ssl)
39                         SSL=no
40                 ;;
41                 *)
42                         echo $0 : unknown option $k
43                         echo
44                         echo Valid options are:
45                         echo '  --prefix=PREFIX         Install files in PREFIX [/usr/local]'
46                         echo '  --bindir=DIR            Install executables in DIR [PREFIX/bin]'
47                         echo '  --etcdir=DIR            Install citadel.rc in DIR [PREFIX/etc]'
48                         echo '  --ctdldir=DIR           Look for Citadel server in DIR [/usr/local/citadel]'
49                         echo '  --with-ssl              Force build with OpenSSL support [normally autodetected]'
50                         echo '  --without-ssl           Force build without OpenSSL support [normally autodetected]'
51                         exit 1
52                 ;;
53         esac
54         shift
55 done
56
57
58 ########################################################################
59 # Set any missing values
60 ########################################################################
61
62 [ "$PREFIX" = "" ]      && PREFIX=/usr/local
63 [ "$BINDIR" = "" ]      && BINDIR=${PREFIX}/bin
64 [ "$CTDLDIR" = "" ]     && CTDLDIR=/usr/local/citadel
65 [ "$CFLAGS" = "" ]      && CFLAGS='-Wformat-truncation=0 -ggdb'
66 [ "$LDFLAGS" = "" ]     && LDFLAGS=''
67
68
69 ########################################################################
70 # Test for OpenSSL
71 ########################################################################
72 [ "$SSL" != "yes" ] && [ "$SSL" != "no" ] && {
73         echo Testing for OpenSSL...
74         tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/configure.$$
75         tempcc=${tempfile}.c
76         cat >$tempcc <<!
77 #include <openssl/ssl.h>
78 int main(int argc, char **argv) {
79         SSL_load_error_strings();
80         exit(0);
81 }
82 !
83         SSL='no';
84         cc $tempcc -lssl -lcrypto -o $tempfile && $tempfile && SSL='yes'
85         rm -f $tempfile 2>/dev/null
86         rm -f $tempcc 2>/dev/null
87 }
88 echo SSL: $SSL
89 [ "$SSL" = "yes" ] && {
90         CFLAGS=${CFLAGS}' -DHAVE_OPENSSL'
91         LDFLAGS=${LDFLAGS}' -lssl -lcrypto -lz'
92 }
93
94
95 ########################################################################
96 # Test for iconv
97 ########################################################################
98 echo Testing for iconv...
99 tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/configure.$$
100 tempcc=${tempfile}.c
101 cat >$tempcc <<!
102 #include <stdlib.h>
103 #include <unistd.h>
104 #include <stdio.h>
105 #include <iconv.h>
106 int main(int argc, char **argv) {
107         size_t wow = iconv(NULL, NULL, NULL, NULL, NULL);
108         return(0);
109 }
110 !
111
112 cc $tempcc -o $tempfile && {
113         ICONV='yes'
114         echo iconv.h is present and requires no additional libraries
115 } || {
116         echo Trying again with -liconv...
117         cc $tempcc -liconv -o $tempfile && {
118                 ICONV='yes'
119                 LDFLAGS=${LDFLAGS}' -liconv'
120         } || {
121                 echo Citadel Server requires iconv character set conversion.
122                 rm -f $tempfile 2>/dev/null
123                 rm -f $tempcc 2>/dev/null
124                 exit 1
125         }
126 }
127 rm -f $tempfile 2>/dev/null
128 rm -f $tempcc 2>/dev/null
129
130
131 ########################################################################
132 # Output the config.mk
133 ########################################################################
134
135 (
136         echo "CFLAGS := ${CFLAGS}"
137         echo "LDFLAGS := ${LDFLAGS}"
138         echo "PREFIX := ${PREFIX}"
139         echo "BINDIR := ${BINDIR}"
140         echo "CTDLDIR := ${CTDLDIR}"
141 ) >config.mk
142
143 cat config.mk
144 echo