source: configure @ ea911ca

Last change on this file since ea911ca was 8d6c4b1, checked in by Wilmer van der Gaast <wilmer@…>, at 2005-12-04T02:43:03Z

Cleaned up configure script a bit.

  • Property mode set to 100755
File size: 9.5 KB
Line 
1#!/bin/sh
2
3##############################
4##  Configurer for BitlBee  ##
5##                          ##
6##  Copyright 2004 Lintux   ##
7##  Copyright 2002 Lucumo   ##
8##############################
9
10prefix='/usr/local/'
11bindir='$prefix/sbin/'
12etcdir='$prefix/etc/bitlbee/'
13mandir='$prefix/share/man/'
14datadir='$prefix/share/bitlbee/'
15config='/var/lib/bitlbee/'
16
17msn=1
18jabber=1
19oscar=1
20yahoo=1
21
22debug=0
23strip=1
24flood=0
25ipv6=1
26ssl=auto
27
28arch=`uname -s`
29cpu=`uname -m`
30
31echo BitlBee configure
32
33while [ -n "$1" ]; do
34        e="`expr "X$1" : 'X--\(.*=.*\)'`"
35        if [ -z "$e" ]; then
36                cat<<EOF
37
38Usage: $0 [OPTIONS]
39
40Option          Description                             Default
41
42--prefix=...    Directories to put files in             $prefix
43--bindir=...                                            $bindir
44--etcdir=...                                            $etcdir
45--mandir=...                                            $mandir
46--datadir=...                                           $datadir
47--config=...                                            $config
48
49--msn=0/1       Disable/enable MSN part                 $msn
50--jabber=0/1    Disable/enable Jabber part              $jabber
51--oscar=0/1     Disable/enable Oscar part (ICQ, AIM)    $oscar
52--yahoo=0/1     Disable/enable Yahoo part               $yahoo
53
54--debug=0/1     Disable/enable debugging                $debug
55--strip=0/1     Disable/enable binary stripping         $strip
56
57--ipv6=0/1      IPv6 socket support                     $ipv6
58
59--ssl=...       SSL library to use (gnutls, nss, openssl, bogus, auto)
60                                                        $ssl
61EOF
62                exit;
63        fi
64        eval "$e"
65        shift;
66done
67
68# Expand $prefix and get rid of double slashes
69bindir=`eval echo "$bindir/" | sed 's/\/\{1,\}/\//g'`
70etcdir=`eval echo "$etcdir/" | sed 's/\/\{1,\}/\//g'`
71mandir=`eval echo "$mandir/" | sed 's/\/\{1,\}/\//g'`
72datadir=`eval echo "$datadir/" | sed 's/\/\{1,\}/\//g'`
73config=`eval echo "$config/" | sed 's/\/\{1,\}/\//g'`
74
75cat<<EOF>Makefile.settings
76## BitlBee settings, generated by configure
77PREFIX=$prefix
78BINDIR=$bindir
79ETCDIR=$etcdir
80MANDIR=$mandir
81DATADIR=$datadir
82CONFIG=$config
83
84ARCH=$arch
85CPU=$cpu
86OUTFILE=bitlbee
87
88DESTDIR=
89LFLAGS=
90EFLAGS=
91EOF
92
93cat<<EOF>config.h
94/* BitlBee settings, generated by configure
95   
96   Do *NOT* use any of these defines in your code without thinking twice, most
97   of them can/will be overridden at run-time */
98
99#define CONFIG "$config"
100#define ETCDIR "$etcdir"
101#define VARDIR "$datadir"
102#define ARCH "$arch"
103#define CPU "$cpu"
104EOF
105
106if [ "$ipv6" = "1" ]; then
107        echo '#define IPV6' >> config.h
108fi
109
110if [ "$debug" = "1" ]; then
111        echo 'CFLAGS=-g' >> Makefile.settings
112        echo 'DEBUG=1' >> Makefile.settings
113        echo '#define DEBUG' >> config.h
114else
115        echo 'CFLAGS=-O3' >> Makefile.settings
116fi
117
118echo CFLAGS+=-I`pwd` -I`pwd`/protocols -I. >> Makefile.settings
119
120echo CFLAGS+=-DHAVE_CONFIG_H >> Makefile.settings
121
122if [ -n "$CC" ]; then
123        echo "CC=$CC" >> Makefile.settings;
124elif type gcc > /dev/null 2> /dev/null; then
125        echo "CC=gcc" >> Makefile.settings;
126elif type cc > /dev/null 2> /dev/null; then
127        echo "CC=cc" >> Makefile.settings;
128else
129        echo 'Cannot find a C compiler, aborting.'
130        exit 1;
131fi
132
133if [ -n "$LD" ]; then
134        echo "LD=$LD" >> Makefile.settings;
135elif type ld > /dev/null 2> /dev/null; then
136        echo "LD=ld" >> Makefile.settings;
137else
138        echo 'Cannot find ld, aborting.'
139        exit 1;
140fi
141
142if type pkg-config > /dev/null 2>/dev/null && pkg-config glib-2.0; then
143        cat<<EOF>>Makefile.settings
144EFLAGS+=`pkg-config --libs glib-2.0`
145CFLAGS+=`pkg-config --cflags glib-2.0`
146EOF
147        echo '#define GLIB2' >> config.h
148elif type glib-config > /dev/null 2> /dev/null; then
149        cat<<EOF>>Makefile.settings
150EFLAGS+=`glib-config --libs`
151CFLAGS+=`glib-config --cflags`
152EOF
153        echo '#define GLIB1' >> config.h
154else
155        echo 'Cannot find glib development libraries, aborting. (Install libglib-dev?)'
156        exit 1;
157fi
158
159if [ -r /usr/include/iconv.h ]; then
160        :;
161elif [ -r /usr/local/include/iconv.h ]; then
162        echo CFLAGS+=-I/usr/local/include >> Makefile.settings;
163else
164        echo
165        echo 'Warning: Could not find iconv.h, you might have to install it and/or modify'
166        echo 'Makefile.settings to tell where this file is.';
167fi
168
169
170detect_gnutls()
171{
172        if libgnutls-config --version > /dev/null 2> /dev/null; then
173                cat <<EOF>>Makefile.settings
174EFLAGS+=`libgnutls-config --libs`
175CFLAGS+=`libgnutls-config --cflags`
176EOF
177               
178                ssl=gnutls
179                ret=1;
180        else
181                ret=0;
182        fi;
183}
184
185detect_nss()
186{
187        if type pkg-config > /dev/null 2>/dev/null && pkg-config mozilla-nss; then
188                cat<<EOF>>Makefile.settings
189EFLAGS+=`pkg-config --libs mozilla-nss`
190CFLAGS+=`pkg-config --cflags mozilla-nss`
191EOF
192               
193                ssl=nss
194                ret=1;
195        else
196                ret=0;
197        fi;
198}
199
200if [ "$msn" = 1 -o "$jabber" = 1 ]; then
201        if [ "$ssl" = "auto" ]; then
202                detect_gnutls
203                if [ "$ret" = "0" ]; then
204                        detect_nss
205                fi;
206        elif [ "$ssl" = "gnutls" ]; then
207                detect_gnutls;
208        elif [ "$ssl" = "nss" ]; then
209                detect_nss;
210        elif [ "$ssl" = "openssl" ]; then
211                echo
212                echo 'No detection code exists for OpenSSL. Make sure that you have a complete'
213                echo 'install of OpenSSL (including devel/header files) before reporting'
214                echo 'compilation problems.'
215                echo
216                echo 'Also, keep in mind that the OpenSSL is, according to some people, not'
217                echo 'completely GPL-compatible. Using GnuTLS or NSS is recommended and better'
218                echo 'supported by us. However, on many BSD machines, OpenSSL can be considered'
219                echo 'part of the operating system, which makes it GPL-compatible.'
220                echo
221                echo 'For more info, see: http://www.openssl.org/support/faq.html#LEGAL2'
222                echo '                    http://www.gnome.org/~markmc/openssl-and-the-gpl.html'
223                echo
224                echo 'Please note that distributing a BitlBee binary which links to OpenSSL is'
225                echo 'probably illegal. If you want to create and distribute a binary BitlBee'
226                echo 'package, you really should use GnuTLS or NSS instead.'
227                echo
228                echo 'Also, the OpenSSL license requires us to say this:'
229                echo ' *    "This product includes software developed by the OpenSSL Project'
230                echo ' *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"'
231               
232                echo 'EFLAGS+=-lssl -lcrypto' >> Makefile.settings
233               
234                ret=1;
235        elif [ "$ssl" = "bogus" ]; then
236                echo
237                echo 'Using bogus SSL code. This will not make the MSN module work, but it will'
238                echo 'allow you to use the Jabber module - although without working SSL support.'
239               
240                ret=1;
241        else
242                echo
243                echo 'ERROR: Unknown SSL library specified.'
244                exit 1;
245        fi
246       
247        if [ "$ret" = "0" ]; then
248                echo
249                echo 'WARNING: Could not find a suitable SSL library (GnuTLS, libnss or OpenSSL).'
250                echo '         This is necessary for MSN and full Jabber support. To continue,'
251                echo '         install a suitable SSL library or disable MSN support (--msn=0).'
252                echo '         If you want Jabber without SSL support you can try --ssl=bogus.'
253               
254                exit 1;
255        fi;
256       
257        echo 'SSL_CLIENT=ssl_'$ssl'.o' >> Makefile.settings
258fi
259
260if [ "$strip" = 0 ]; then
261        echo "STRIP=\# skip strip" >> Makefile.settings;
262else
263        if [ "$debug" = 1 ]; then
264                echo
265                echo 'Stripping binaries does not make sense when debugging. Stripping disabled.'
266                echo 'STRIP=\# skip strip' >> Makefile.settings
267                strip=0;
268        elif [ -n "$STRIP" ]; then
269                echo "STRIP=$STRIP" >> Makefile.settings;
270        elif type strip > /dev/null 2> /dev/null; then
271                echo "STRIP=strip" >> Makefile.settings;
272        elif /bin/test -x /usr/ccs/bin/strip; then
273                echo "STRIP=/usr/ccs/bin/strip" >> Makefile.settings;
274        else
275                echo
276                echo 'No strip utility found, cannot remove unnecessary parts from executable.'
277                echo 'STRIP=\# skip strip' >> Makefile.settings
278                strip=0;
279        fi;
280fi
281
282if [ "$flood" = 1 ]; then
283        # echo '#define FLOOD_SEND' >> config.h
284        echo 'Flood protection is disabled in this release because of too many bugs.' 2> /dev/stderr
285        rm config.h
286        rm Makefile.settings
287        exit 1
288fi
289
290if [ -n "$BITLBEE_VERSION" ]; then
291        echo
292        echo 'Spoofing version number: '$BITLBEE_VERSION
293        echo '#undef BITLBEE_VERSION' >> config.h
294        echo '#define BITLBEE_VERSION '$BITLBEE_VERSION >> config.h;
295fi
296
297protocols=''
298protoobjs=''
299
300if [ "$msn" = 0 ]; then
301        echo '#undef WITH_MSN' >> config.h
302else
303        echo '#define WITH_MSN' >> config.h
304        protocols=$protocols'msn '
305        protoobjs=$protoobjs'msnn.o '
306fi
307
308if [ "$jabber" = 0 ]; then
309        echo '#undef WITH_JABBER' >> config.h
310else
311        echo '#define WITH_JABBER' >> config.h
312        protocols=$protocols'jabber '
313        protoobjs=$protoobjs'jabberr.o '
314fi
315
316if [ "$oscar" = 0 ]; then
317        echo '#undef WITH_OSCAR' >> config.h
318else
319        echo '#define WITH_OSCAR' >> config.h
320        protocols=$protocols'oscar '
321        protoobjs=$protoobjs'oscarr.o '
322fi
323
324if [ "$yahoo" = 0 ]; then
325        echo '#undef WITH_YAHOO' >> config.h
326else
327        echo '#define WITH_YAHOO' >> config.h
328        protocols=$protocols'yahoo '
329        protoobjs=$protoobjs'yahooo.o '
330fi
331
332if [ "$protocols" = "PROTOCOLS = " ]; then
333        echo
334        echo "WARNING: You haven't selected any communication protocol to compile!"
335        echo "         Bitlbee will run, but you will be unable to connect to IM servers!"
336fi
337
338echo "PROTOCOLS = $protocols" >> Makefile.settings
339echo "PROTOOBJS = $protoobjs" >> Makefile.settings
340
341echo
342echo Architecture: $arch
343case "$arch" in
344Linux )
345;;
346GNU/* )
347;;
348*BSD )
349        echo 'EFLAGS+=-liconv' >> Makefile.settings;
350;;
351SunOS )
352        echo 'EFLAGS+=-lresolv -lnsl -lsocket' >> Makefile.settings
353        echo 'STRIP=\# skip strip' >> Makefile.settings
354        echo 'EFLAGS+=-liconv' >> Makefile.settings;
355;;
356Darwin )
357        echo 'EFLAGS+=-liconv' >> Makefile.settings;
358;;
359IRIX )
360;;
361CYGWIN* )
362        echo 'Cygwin is not officially supported.'
363;;
364* )
365        echo 'We haven'\''t tested BitlBee on many platforms yet, yours is untested. YMMV.'
366        echo 'Please report any problems at http://bugs.bitlbee.org/.'
367;;
368esac
369
370echo
371echo 'Configuration done:'
372
373if [ "$debug" = "1" ]; then
374        echo '  Debugging enabled.';
375else
376        echo '  Debugging disabled.';
377fi
378
379if [ "$strip" = "1" ]; then
380        echo '  Binary stripping enabled.';
381else
382        echo '  Binary stripping disabled.';
383fi
384
385if [ "$msn" = "1" ]; then
386        echo '  Using SSL library: '$ssl;
387fi
388
389#if [ "$flood" = "0" ]; then
390#       echo '  Flood protection disabled.';
391#else
392#       echo '  Flood protection enabled.';
393#fi
394
395if [ -n "$protocols" ]; then
396        echo '  Building with these protocols:' $protocols;
397else
398        echo '  Building without IM-protocol support. We wish you a lot of fun...';
399fi
Note: See TracBrowser for help on using the repository browser.