source: configure @ b95b0c8

Last change on this file since b95b0c8 was b95b0c8, checked in by dequis <dx@…>, at 2014-06-26T08:07:11Z

configure: Add spaces after <<EOF heredoc markers for clarity

I mean, they confuse the vim bash syntax highlighter

  • Property mode set to 100755
File size: 18.7 KB
RevLine 
[b7d3cc34]1#!/bin/sh
2
3##############################
4##  Configurer for BitlBee  ##
5##                          ##
6##  Copyright 2004 Lintux   ##
7##  Copyright 2002 Lucumo   ##
8##############################
9
10prefix='/usr/local/'
[57da960]11bindir='$prefix/bin/'
12sbindir='$prefix/sbin/'
[b7d3cc34]13etcdir='$prefix/etc/bitlbee/'
14mandir='$prefix/share/man/'
15datadir='$prefix/share/bitlbee/'
16config='/var/lib/bitlbee/'
[85cf37f]17plugindir='$prefix/lib/bitlbee/'
18includedir='$prefix/include/bitlbee/'
[417002e]19systemdsystemunitdir=''
[85cf37f]20libevent='/usr/'
[34b17d9]21pidfile='/var/run/bitlbee.pid'
[4c225f0]22ipcsocket=''
[e506d6c]23pcdir='$prefix/lib/pkgconfig'
[25b80e9c]24systemlibdirs="/lib64 /usr/lib64 /usr/local/lib64 /lib /usr/lib /usr/local/lib"
[b7d3cc34]25
26msn=1
27jabber=1
28oscar=1
29yahoo=1
[1b221e0]30twitter=1
[04dc563]31purple=0
[b7d3cc34]32
33debug=0
34strip=1
[66b9e86e]35gcov=0
[2abfbc5]36plugins=1
[04f0c10]37otr=0
[370899f]38skype=0
[85cf37f]39
40events=glib
[b7d3cc34]41ssl=auto
42
[7281ad1]43pie=1
44
[b7d3cc34]45arch=`uname -s`
46cpu=`uname -m`
47
[74c5718]48GLIB_MIN_VERSION=2.14
[670204f]49
[b7d3cc34]50echo BitlBee configure
51
52while [ -n "$1" ]; do
53        e="`expr "X$1" : 'X--\(.*=.*\)'`"
54        if [ -z "$e" ]; then
55                cat<<EOF
56
57Usage: $0 [OPTIONS]
58
59Option          Description                             Default
60
61--prefix=...    Directories to put files in             $prefix
62--bindir=...                                            $bindir
[57da960]63--sbindir=...                                           $sbindir
[b7d3cc34]64--etcdir=...                                            $etcdir
65--mandir=...                                            $mandir
66--datadir=...                                           $datadir
[7b23afd]67--plugindir=...                                         $plugindir
[417002e]68--systemdsystemunitdir=...                              $systemdsystemunitdir
[34b17d9]69--pidfile=...                                           $pidfile
[b7d3cc34]70--config=...                                            $config
71
72--msn=0/1       Disable/enable MSN part                 $msn
73--jabber=0/1    Disable/enable Jabber part              $jabber
74--oscar=0/1     Disable/enable Oscar part (ICQ, AIM)    $oscar
75--yahoo=0/1     Disable/enable Yahoo part               $yahoo
[4aa0f6b]76--twitter=0/1   Disable/enable Twitter part             $twitter
[b7d3cc34]77
[796da03]78--purple=0/1    Disable/enable libpurple support        $purple
[04f0c10]79                (automatically disables other protocol modules)
[b7d3cc34]80
81--debug=0/1     Disable/enable debugging                $debug
82--strip=0/1     Disable/enable binary stripping         $strip
[7281ad1]83--pie=0/1       Build position independent executable   $pie
[66b9e86e]84--gcov=0/1      Disable/enable test coverage reporting  $gcov
[2abfbc5]85--plugins=0/1   Disable/enable plugins support          $plugins
[04f0c10]86--otr=0/1/auto/plugin
87                Disable/enable OTR encryption support   $otr
[17f6079]88--skype=0/1/plugin
[370899f]89                Disable/enable Skype support            $skype
[b7d3cc34]90
[85cf37f]91--events=...    Event handler (glib, libevent)          $events
[e1d3f98]92--ssl=...       SSL library to use (gnutls, nss, openssl, auto)
[b7d3cc34]93                                                        $ssl
[aec56b0]94
[7281ad1]95
[f1e7407]96--target=...    Cross compilation target                same as host
[b7d3cc34]97EOF
98                exit;
99        fi
100        eval "$e"
101        shift;
102done
103
104# Expand $prefix and get rid of double slashes
105bindir=`eval echo "$bindir/" | sed 's/\/\{1,\}/\//g'`
[57da960]106sbindir=`eval echo "$sbindir/" | sed 's/\/\{1,\}/\//g'`
[b7d3cc34]107etcdir=`eval echo "$etcdir/" | sed 's/\/\{1,\}/\//g'`
108mandir=`eval echo "$mandir/" | sed 's/\/\{1,\}/\//g'`
109datadir=`eval echo "$datadir/" | sed 's/\/\{1,\}/\//g'`
110config=`eval echo "$config/" | sed 's/\/\{1,\}/\//g'`
[7b23afd]111plugindir=`eval echo "$plugindir/" | sed 's/\/\{1,\}/\//g'`
[85cf37f]112includedir=`eval echo "$includedir"/ | sed 's/\/\{1,\}/\//g'`
113libevent=`eval echo "$libevent"/ | sed 's/\/\{1,\}/\//g'`
114
[6dff9d4]115pidfile=`eval echo "$pidfile" | sed 's/\/\{1,\}/\//g'`
116ipcsocket=`eval echo "$ipcsocket" | sed 's/\/\{1,\}/\//g'`
[e506d6c]117pcdir=`eval echo "$pcdir" | sed 's/\/\{1,\}/\//g'`
[b7d3cc34]118
[17f6079]119protocols_mods=""
120
[b95b0c8]121cat <<EOF >Makefile.settings
[b7d3cc34]122## BitlBee settings, generated by configure
123PREFIX=$prefix
124BINDIR=$bindir
[57da960]125SBINDIR=$sbindir
[b7d3cc34]126ETCDIR=$etcdir
127MANDIR=$mandir
128DATADIR=$datadir
[7b23afd]129PLUGINDIR=$plugindir
[b7d3cc34]130CONFIG=$config
[e506d6c]131INCLUDEDIR=$includedir
132PCDIR=$pcdir
[b7d3cc34]133
[1bf9492]134TARGET=$target
[b7d3cc34]135ARCH=$arch
136CPU=$cpu
137
[25b80e9c]138INSTALL=install -p
139
[b7d3cc34]140DESTDIR=
141LFLAGS=
[7a80925]142EFLAGS=-lm
[b7d3cc34]143EOF
144
[1074806]145srcdir=$(cd $(dirname $0);pwd)
146currdir=$(pwd)
147if [ "$srcdir" != "$currdir" ]; then 
[f60079b]148        echo
149        echo "configure script run from a different directory. Will create some symlinks..."
150        if [ ! -e Makefile -o -L Makefile ]; then
[04dc563]151                COPYDIRS="doc lib protocols tests utils"
152                mkdir -p $(cd "$srcdir"; find $COPYDIRS -type d)
[f60079b]153                find . -name Makefile -type l -print0 | xargs -0 rm 2> /dev/null
154                dst="$PWD"
155                cd "$srcdir"
[04dc563]156                for i in $(find . -name Makefile -type f); do
[f60079b]157                        ln -s "$PWD${i#.}" "$dst/$i";
158                done
159                cd "$dst"
160                rm -rf .bzr
161        fi
162       
[7fa5c19]163        echo "_SRCDIR_=$srcdir/" >> Makefile.settings
[f60079b]164        CFLAGS="$CFLAGS -I${dst}"
165else
166        srcdir=$PWD
167fi
168
[b95b0c8]169cat<<EOF >config.h
[b7d3cc34]170/* BitlBee settings, generated by configure
171   
172   Do *NOT* use any of these defines in your code without thinking twice, most
173   of them can/will be overridden at run-time */
174
175#define CONFIG "$config"
176#define ETCDIR "$etcdir"
177#define VARDIR "$datadir"
[7b23afd]178#define PLUGINDIR "$plugindir"
[34b17d9]179#define PIDFILE "$pidfile"
[6dff9d4]180#define IPCSOCKET "$ipcsocket"
[b7d3cc34]181#define ARCH "$arch"
182#define CPU "$cpu"
183EOF
184
[1bf9492]185
186
[f1e7407]187if [ -n "$target" ]; then
[1bf9492]188        PKG_CONFIG_LIBDIR=/usr/$target/lib/pkgconfig
189        export PKG_CONFIG_LIBDIR
[f1e7407]190        PATH=/usr/$target/bin:$PATH
191        CC=$target-cc
192        LD=$target-ld
[1bf9492]193        systemlibdirs="/usr/$target/lib"
[f1e7407]194fi
195
[1bf9492]196
[b7d3cc34]197if [ "$debug" = "1" ]; then
198        echo 'DEBUG=1' >> Makefile.settings
[4dda9e4]199        CFLAGS="$CFLAGS -g -DDEBUG"
[b7d3cc34]200else
[56f260a]201        [ -z "$CFLAGS" ] && CFLAGS="-O2 -fno-strict-aliasing"
[b7d3cc34]202fi
203
[7281ad1]204if [ "$pie" = "1" ]; then
205        echo 'CFLAGS_BITLBEE=-fPIE' >> Makefile.settings
206        echo 'LDFLAGS_BITLBEE=-pie' >> Makefile.settings
207fi
208
[daae10f]209echo CFLAGS=$CFLAGS $CPPFLAGS >> Makefile.settings
[f60079b]210echo CFLAGS+=-I${srcdir} -I${srcdir}/lib -I${srcdir}/protocols -I. >> Makefile.settings
[b7d3cc34]211
[41a94dd]212echo CFLAGS+=-DHAVE_CONFIG_H -D_GNU_SOURCE >> Makefile.settings
[f712188]213
[b7d3cc34]214if [ -n "$CC" ]; then
[5973412]215        CC=$CC
[b7d3cc34]216elif type gcc > /dev/null 2> /dev/null; then
[5973412]217        CC=gcc
[b7d3cc34]218elif type cc > /dev/null 2> /dev/null; then
[5973412]219        CC=cc
[b7d3cc34]220else
221        echo 'Cannot find a C compiler, aborting.'
222        exit 1;
223fi
224
[5973412]225echo "CC=$CC" >> Makefile.settings;
[daae10f]226if echo $CC | grep -qw gcc; then
227        # Apparently -Wall is gcc-specific?
228        echo CFLAGS+=-Wall >> Makefile.settings
229fi
[5973412]230
[f1e7407]231if [ -z "$LD" ]; then
232        if type ld > /dev/null 2> /dev/null; then
233                LD=ld
234        else
235                echo 'Cannot find ld, aborting.'
236                exit 1;
237        fi
[b7d3cc34]238fi
239
[f1e7407]240echo "LD=$LD" >> Makefile.settings
241
[32c632f]242if [ -z "$PKG_CONFIG" ]; then
243        PKG_CONFIG=pkg-config
244fi
245
246if $PKG_CONFIG --version > /dev/null 2>/dev/null && $PKG_CONFIG glib-2.0; then
[670204f]247        if $PKG_CONFIG glib-2.0 --atleast-version=$GLIB_MIN_VERSION; then
[b95b0c8]248                cat<<EOF >>Makefile.settings
[32c632f]249EFLAGS+=`$PKG_CONFIG --libs glib-2.0 gmodule-2.0`
250CFLAGS+=`$PKG_CONFIG --cflags glib-2.0 gmodule-2.0`
[b7d3cc34]251EOF
[670204f]252        else
253                echo
254                echo 'Found glib2 '`$PKG_CONFIG glib-2.0 --modversion`', but version '$GLIB_MIN_VERSION' or newer is required.'
255                exit 1
256        fi
[b7d3cc34]257else
[670204f]258        echo
[574af7e]259        echo 'Cannot find glib2 development libraries, aborting. (Install libglib2-dev?)'
[670204f]260        exit 1
[b7d3cc34]261fi
262
[85cf37f]263if [ "$events" = "libevent" ]; then
[003553b]264        if ! [ -f "${libevent}include/event.h" ]; then
[85cf37f]265                echo
266                echo 'Warning: Could not find event.h, you might have to install it and/or specify'
267                echo 'its location using the --libevent= argument. (Example: If event.h is in'
268                echo '/usr/local/include and binaries are in /usr/local/lib: --libevent=/usr/local)'
269        fi
270       
271        echo '#define EVENTS_LIBEVENT' >> config.h
[b95b0c8]272        cat <<EOF >>Makefile.settings
[85cf37f]273EFLAGS+=-levent -L${libevent}lib
274CFLAGS+=-I${libevent}include
275EOF
276elif [ "$events" = "glib" ]; then
277        ## We already use glib anyway, so this is all we need (and in fact not even this, but just to be sure...):
278        echo '#define EVENTS_GLIB' >> config.h
[b7d3cc34]279else
280        echo
[85cf37f]281        echo 'ERROR: Unknown event handler specified.'
282        exit 1
[b7d3cc34]283fi
[85cf37f]284echo 'EVENT_HANDLER=events_'$events'.o' >> Makefile.settings
[b7d3cc34]285
286detect_gnutls()
287{
[4af7b4f]288        if $PKG_CONFIG --exists gnutls; then
[b95b0c8]289                cat <<EOF >>Makefile.settings
[83e47ec]290EFLAGS+=`$PKG_CONFIG --libs gnutls` `libgcrypt-config --libs`
291CFLAGS+=`$PKG_CONFIG --cflags gnutls` `libgcrypt-config --cflags`
[4af7b4f]292EOF
293                ssl=gnutls
[5513f3e]294                if ! pkg-config gnutls --atleast-version=2.8; then
295                        echo
296                        echo 'Warning: With GnuTLS versions <2.8, certificate expire dates are not verified.'
297                fi
[4af7b4f]298                ret=1
299        elif libgnutls-config --version > /dev/null 2> /dev/null; then
[b95b0c8]300                cat <<EOF >>Makefile.settings
[83e47ec]301EFLAGS+=`libgnutls-config --libs` `libgcrypt-config --libs`
302CFLAGS+=`libgnutls-config --cflags` `libgcrypt-config --cflags`
[b7d3cc34]303EOF
304               
305                ssl=gnutls
306                ret=1;
307        else
308                ret=0;
309        fi;
310}
311
312detect_nss()
313{
[ef043d3]314        if $PKG_CONFIG --version > /dev/null 2>/dev/null && $PKG_CONFIG nss; then
[b95b0c8]315                cat<<EOF >>Makefile.settings
[ef043d3]316EFLAGS+=`$PKG_CONFIG --libs nss`
317CFLAGS+=`$PKG_CONFIG --cflags nss`
[b7d3cc34]318EOF
319               
320                ssl=nss
321                ret=1;
322        else
323                ret=0;
324        fi;
325}
326
[36cf9fd]327RESOLV_TESTCODE='
[aee8c19]328#include <sys/types.h>
329#include <netinet/in.h>
[36cf9fd]330#include <arpa/nameser.h>
331#include <resolv.h>
332
333int main()
334{
335        ns_initparse( NULL, 0, NULL );
336        ns_parserr( NULL, ns_s_an, 0, NULL );
337}
338'
339
340detect_resolv_dynamic()
341{
[aee8c19]342        case "$arch" in
343        FreeBSD )
344                # In FreeBSD res_* routines are present in libc.so
345                LIBRESOLV=;;
346        * )
347                LIBRESOLV=-lresolv;;
348        esac
[4fca1db]349        TMPFILE=$(mktemp /tmp/bitlbee-configure.XXXXXX)
[8462239]350        ret=1
[aee8c19]351        echo "$RESOLV_TESTCODE" | $CC -o $TMPFILE -x c - $LIBRESOLV >/dev/null 2>/dev/null
[36cf9fd]352        if [ "$?" = "0" ]; then
[aee8c19]353                echo "EFLAGS+=$LIBRESOLV" >> Makefile.settings
[8462239]354                ret=0
[36cf9fd]355        fi
356
[8462239]357        rm -f $TMPFILE
358        return $ret
[36cf9fd]359}
360
361detect_resolv_static()
362{
[4fca1db]363        TMPFILE=$(mktemp /tmp/bitlbee-configure.XXXXXX)
[8462239]364        ret=1
[36cf9fd]365        for i in $systemlibdirs; do
366                if [ -f $i/libresolv.a ]; then
[8462239]367                        echo "$RESOLV_TESTCODE" | $CC -o $TMPFILE -x c - -Wl,$i/libresolv.a >/dev/null 2>/dev/null
[36cf9fd]368                        if [ "$?" = "0" ]; then
369                                echo 'EFLAGS+='$i'/libresolv.a' >> Makefile.settings
[8462239]370                                ret=0
[36cf9fd]371                        fi
372                fi
373        done
374
[8462239]375        rm -f $TMPFILE
376        return $ret
[36cf9fd]377}
378
[b3c467b]379if [ "$ssl" = "auto" ]; then
380        detect_gnutls
[b7d3cc34]381        if [ "$ret" = "0" ]; then
[c5920df]382                # Disable NSS for now as it's known to not work very well ATM.
383                #detect_nss
[191cfb1]384                :
[b7d3cc34]385        fi
[b3c467b]386elif [ "$ssl" = "gnutls" ]; then
387        detect_gnutls
388elif [ "$ssl" = "nss" ]; then
389        detect_nss
[85d7b85]390elif [ "$ssl" = "sspi" ]; then
391        echo
[b3c467b]392elif [ "$ssl" = "openssl" ]; then
393        echo
394        echo 'No detection code exists for OpenSSL. Make sure that you have a complete'
[b3eee9b]395        echo 'installation of OpenSSL (including devel/header files) before reporting'
[b3c467b]396        echo 'compilation problems.'
397        echo
398        echo 'Also, keep in mind that the OpenSSL is, according to some people, not'
[b3eee9b]399        echo 'completely GPL-compatible. Using GnuTLS is recommended and better supported'
400        echo 'by us. However, on many BSD machines, OpenSSL can be considered part of the'
401        echo 'operating system, which makes it GPL-compatible.'
[b3c467b]402        echo
403        echo 'For more info, see: http://www.openssl.org/support/faq.html#LEGAL2'
404        echo '                    http://www.gnome.org/~markmc/openssl-and-the-gpl.html'
405        echo
406        echo 'Please note that distributing a BitlBee binary which links to OpenSSL is'
407        echo 'probably illegal. If you want to create and distribute a binary BitlBee'
[b3eee9b]408        echo 'package, you really should use GnuTLS instead.'
[b3c467b]409        echo
410        echo 'Also, the OpenSSL license requires us to say this:'
411        echo ' *    "This product includes software developed by the OpenSSL Project'
412        echo ' *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"'
[b7d3cc34]413       
[b3c467b]414        echo 'EFLAGS+=-lssl -lcrypto' >> Makefile.settings
415       
416        ret=1
417else
418        echo
419        echo 'ERROR: Unknown SSL library specified.'
420        exit 1
[b7d3cc34]421fi
422
[b3c467b]423if [ "$ret" = "0" ]; then
424        echo
425        echo 'ERROR: Could not find a suitable SSL library (GnuTLS, libnss or OpenSSL).'
426        echo '       Please note that this script doesn'\''t have detection code for OpenSSL,'
[e1d3f98]427        echo '       so if you want to use that, you have to select it by hand.'
[b7d3cc34]428       
[b3c467b]429        exit 1
430fi;
431
432echo 'SSL_CLIENT=ssl_'$ssl'.o' >> Makefile.settings
433
[36cf9fd]434if detect_resolv_dynamic || detect_resolv_static; then
435        echo '#define HAVE_RESOLV_A' >> config.h
436fi
[36e9f62]437
[ba7d16f]438STORAGES="xml"
[b3c467b]439
440for i in $STORAGES; do
441        STORAGE_OBJS="$STORAGE_OBJS storage_$i.o"
442done
443echo "STORAGE_OBJS="$STORAGE_OBJS >> Makefile.settings
444
[b7d3cc34]445if [ "$strip" = 0 ]; then
446        echo "STRIP=\# skip strip" >> Makefile.settings;
447else
448        if [ "$debug" = 1 ]; then
449                echo
450                echo 'Stripping binaries does not make sense when debugging. Stripping disabled.'
451                echo 'STRIP=\# skip strip' >> Makefile.settings
452                strip=0;
453        elif [ -n "$STRIP" ]; then
454                echo "STRIP=$STRIP" >> Makefile.settings;
455        elif type strip > /dev/null 2> /dev/null; then
456                echo "STRIP=strip" >> Makefile.settings;
457        else
458                echo
459                echo 'No strip utility found, cannot remove unnecessary parts from executable.'
460                echo 'STRIP=\# skip strip' >> Makefile.settings
461                strip=0;
462        fi;
463fi
464
[417002e]465if [ -z "$systemdsystemunitdir" ]; then
466        if $PKG_CONFIG --exists systemd; then
467                systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`
468        fi
469fi
470if [ -n "$systemdsystemunitdir" ]; then
471        if [ "$systemdsystemunitdir" != "no" ]; then
472                echo "SYSTEMDSYSTEMUNITDIR=$systemdsystemunitdir" >> Makefile.settings
473        fi
474fi
475
[66b9e86e]476if [ "$gcov" = "1" ]; then
[31fc3970]477        echo "CFLAGS+=--coverage" >> Makefile.settings
478        echo "EFLAGS+=--coverage" >> Makefile.settings
[66b9e86e]479fi
480
[2abfbc5]481if [ "$plugins" = 0 ]; then
[489847f]482        plugindir=""
[2abfbc5]483        echo '#undef WITH_PLUGINS' >> config.h
484else
485        echo '#define WITH_PLUGINS' >> config.h
486fi
487
[6738a67]488otrprefix=""
489for i in / /usr /usr/local; do
490        if [ -f ${i}/lib/libotr.a ]; then
491                otrprefix=${i}
492                break
493        fi
494done
[764c7d1]495if [ "$otr" = "auto" ]; then
[6738a67]496        if [ -n "$otrprefix" ]; then
497                otr=1
498        else
499                otr=0
500        fi
[764c7d1]501fi
[6738a67]502if [ "$otr" = 1 ]; then
[858ea01]503        # BI == built-in
504        echo '#define OTR_BI' >> config.h
[6738a67]505        echo "EFLAGS+=-L${otrprefix}/lib -lotr" >> Makefile.settings
506        echo "CFLAGS+=-I${otrprefix}/include" >> Makefile.settings
[858ea01]507        echo 'OTR_BI=otr.o' >> Makefile.settings
508elif [ "$otr" = "plugin" ]; then
509        echo '#define OTR_PI' >> config.h
510        echo "OTRFLAGS=-L${otrprefix}/lib -lotr" >> Makefile.settings
511        echo "CFLAGS+=-I${otrprefix}/include" >> Makefile.settings
512        echo 'OTR_PI=otr.so' >> Makefile.settings
[764c7d1]513fi
[a8aa823]514if [ "$otr" != 0 ] && ! pkg-config libotr --atleast-version=4.0; then
515        echo
516        echo 'WARNING: Your libotr seems to be old. BitlBee now needs at least libotr 4.0.'
517        # Not hard-failing because the code above doesn't use pkg-config, so who knows
518        # what's true at this point...
519fi
[764c7d1]520
[17f6079]521if [ "$skype" = "1" -o "$skype" = "plugin" ]; then
[b2b7f52]522        if [ "$arch" = "Darwin" ]; then
523                echo "SKYPEFLAGS=-dynamiclib -undefined dynamic_lookup" >> Makefile.settings
524        else
525                echo "SKYPEFLAGS=-fPIC -shared" >> Makefile.settings
526        fi
[370899f]527        echo 'SKYPE_PI=skype.so' >> Makefile.settings
[17f6079]528        protocols_mods="$protocol_mods skype(plugin)"
[370899f]529fi
530
[ceebeb1]531if [ ! -e doc/user-guide/help.txt ] && ! type xmlto > /dev/null 2> /dev/null; then
532        echo
533        echo 'WARNING: Building from an unreleased source tree without prebuilt helpfile.'
534        echo 'Install xmlto if you want online help to work.'
535fi
536
[ffea9b9]537echo
[a014331]538if [ -z "$BITLBEE_VERSION" -a -d .bzr ] && type bzr > /dev/null 2> /dev/null; then
539        nick=`bzr nick`
540        if [ -n "$nick" -a "$nick" != "bitlbee" ]; then
541                nick="-$nick"
542        else
543                nick=""
544        fi
[ffea9b9]545        rev=`bzr revno`
546        echo 'Using bzr revision #'$rev' as version number'
[a014331]547        BITLBEE_VERSION=\"bzr$nick-$rev\"
[b7d3cc34]548fi
549
550if [ -n "$BITLBEE_VERSION" ]; then
551        echo 'Spoofing version number: '$BITLBEE_VERSION
552        echo '#undef BITLBEE_VERSION' >> config.h
[ffea9b9]553        echo '#define BITLBEE_VERSION '$BITLBEE_VERSION >> config.h
554        echo
[b7d3cc34]555fi
556
[4fca1db]557if ! make helloworld > /dev/null 2>&1; then
558        echo "WARNING: Your version of make (BSD make?) does not support BitlBee's makefiles."
559        echo "BitlBee needs GNU make to build properly. On most systems GNU make is available"
560        echo "under the name 'gmake'."
561        echo
562        if gmake helloworld > /dev/null 2>&1; then
563                echo "gmake seems to be available on your machine, great."
564                echo
565        else
566                echo "gmake is not installed (or not working). Please try to install it."
567                echo
568        fi
569fi
570
[b95b0c8]571cat <<EOF >bitlbee.pc
[e506d6c]572prefix=$prefix
573includedir=$includedir
[489847f]574plugindir=$plugindir
[e506d6c]575
576Name: bitlbee
577Description: IRC to IM gateway
578Requires: glib-2.0
579Version: $BITLBEE_VERSION
580Libs:
581Cflags: -I\${includedir}
582
583EOF
584
[b7d3cc34]585protocols=''
586protoobjs=''
587
[e248c7f]588if [ "$purple" = 0 ]; then
589        echo '#undef WITH_PURPLE' >> config.h
590else
[e08e53c]591        if ! $PKG_CONFIG purple; then
592                echo
593                echo 'Cannot find libpurple development libraries, aborting. (Install libpurple-dev?)'
594                exit 1
595        fi
[e248c7f]596        echo '#define WITH_PURPLE' >> config.h
[b95b0c8]597        cat<<EOF >>Makefile.settings
[e08e53c]598EFLAGS += $($PKG_CONFIG purple --libs)
599PURPLE_CFLAGS += $($PKG_CONFIG purple --cflags)
600EOF
[e248c7f]601        protocols=$protocols'purple '
602        protoobjs=$protoobjs'purple_mod.o '
603
604        # Having both libpurple and native IM modules in one binary may
605        # do strange things. Let's not do that.
606        msn=0
607        jabber=0
608        oscar=0
609        yahoo=0
[18e1f3b]610
611        echo '#undef PACKAGE' >> config.h
612        echo '#define PACKAGE "BitlBee-LIBPURPLE"' >> config.h
[bda2975]613       
614        if [ "$events" = "libevent" ]; then
615                echo 'Warning: Some libpurple modules (including msn-pecan) do their event handling'
616                echo 'outside libpurple, talking to GLib directly. At least for now the combination'
617                echo 'libpurple + libevent is *not* recommended!'
[c775a58]618                echo
[bda2975]619        fi
[e248c7f]620fi
621
[b0a89cc]622case "$CC" in
623*gcc* )
[e371011]624        echo CFLAGS+=-MMD -MF .depend/\$@.d >> Makefile.settings
[fe92921]625        for i in . lib tests protocols protocols/*/; do
[b0a89cc]626                mkdir -p $i/.depend
627        done
628esac
629
[b7d3cc34]630if [ "$msn" = 0 ]; then
631        echo '#undef WITH_MSN' >> config.h
632else
633        echo '#define WITH_MSN' >> config.h
634        protocols=$protocols'msn '
[b5a22e3]635        protoobjs=$protoobjs'msn_mod.o '
[b7d3cc34]636fi
637
638if [ "$jabber" = 0 ]; then
639        echo '#undef WITH_JABBER' >> config.h
640else
641        echo '#define WITH_JABBER' >> config.h
642        protocols=$protocols'jabber '
[b5a22e3]643        protoobjs=$protoobjs'jabber_mod.o '
[b7d3cc34]644fi
645
646if [ "$oscar" = 0 ]; then
647        echo '#undef WITH_OSCAR' >> config.h
648else
649        echo '#define WITH_OSCAR' >> config.h
650        protocols=$protocols'oscar '
[b5a22e3]651        protoobjs=$protoobjs'oscar_mod.o '
[b7d3cc34]652fi
653
654if [ "$yahoo" = 0 ]; then
655        echo '#undef WITH_YAHOO' >> config.h
656else
657        echo '#define WITH_YAHOO' >> config.h
658        protocols=$protocols'yahoo '
[b5a22e3]659        protoobjs=$protoobjs'yahoo_mod.o '
[b7d3cc34]660fi
661
[1b221e0]662if [ "$twitter" = 0 ]; then
663        echo '#undef WITH_TWITTER' >> config.h
664else
665        echo '#define WITH_TWITTER' >> config.h
666        protocols=$protocols'twitter '
667        protoobjs=$protoobjs'twitter_mod.o '
668fi
669
[b7d3cc34]670if [ "$protocols" = "PROTOCOLS = " ]; then
[43462708]671        echo "Warning: You haven't selected any communication protocol to compile!"
[b3c467b]672        echo "         BitlBee will run, but you will be unable to connect to IM servers!"
[b7d3cc34]673fi
674
675echo "PROTOCOLS = $protocols" >> Makefile.settings
676echo "PROTOOBJS = $protoobjs" >> Makefile.settings
677
678echo Architecture: $arch
679case "$arch" in
680Linux )
681;;
682GNU/* )
683;;
684*BSD )
685;;
686Darwin )
[caceb06]687        echo 'STRIP=\# skip strip' >> Makefile.settings
[b7d3cc34]688;;
689IRIX )
690;;
691SunOS )
692        echo 'EFLAGS+=-lresolv -lnsl -lsocket' >> Makefile.settings
693        echo 'STRIP=\# skip strip' >> Makefile.settings
[70d7795]694        echo '#define NO_FD_PASSING' >> config.h
[b7d3cc34]695;;
[8de63c3]696AIX )
697        echo 'EFLAGS+=-Wl,-brtl' >> Makefile.settings
[b7d3cc34]698;;
699CYGWIN* )
700        echo 'Cygwin is not officially supported.'
701;;
[aec56b0]702Windows )
703;;
[b7d3cc34]704* )
[8d6c4b1]705        echo 'We haven'\''t tested BitlBee on many platforms yet, yours is untested. YMMV.'
706        echo 'Please report any problems at http://bugs.bitlbee.org/.'
[b7d3cc34]707;;
708esac
709
[f1e7407]710if [ -n "$target" ]; then
711        echo "Cross-compiling for: $target"
712fi
713
[b7d3cc34]714echo
715echo 'Configuration done:'
716
717if [ "$debug" = "1" ]; then
[b3c467b]718        echo '  Debugging enabled.'
[b7d3cc34]719else
[b3c467b]720        echo '  Debugging disabled.'
[b7d3cc34]721fi
722
[7281ad1]723if [ "$pie" = "1" ]; then
724        echo '  Building PIE executable'
725else
726        echo '  Building non-PIE executable'
727fi
728
[b7d3cc34]729if [ "$strip" = "1" ]; then
[b3c467b]730        echo '  Binary stripping enabled.'
[b7d3cc34]731else
[b3c467b]732        echo '  Binary stripping disabled.'
[b7d3cc34]733fi
734
[764c7d1]735if [ "$otr" = "1" ]; then
736        echo '  Off-the-Record (OTR) Messaging enabled.'
[858ea01]737elif [ "$otr" = "plugin" ]; then
738        echo '  Off-the-Record (OTR) Messaging enabled (as a plugin).'
[764c7d1]739else
740        echo '  Off-the-Record (OTR) Messaging disabled.'
741fi
742
[417002e]743if [ -n "$systemdsystemunitdir" ]; then
744        echo '  systemd enabled.'
745else
746        echo '  systemd disabled.'
747fi
748
[b3c467b]749echo '  Using event handler: '$events
750echo '  Using SSL library: '$ssl
[4e3df8a]751#echo '  Building with these storage backends: '$STORAGES
[b7d3cc34]752
753if [ -n "$protocols" ]; then
[17f6079]754        echo '  Building with these protocols:' $protocols$protocols_mods
[4e3df8a]755        case "$protocols" in
756        *purple*)
757                echo "    Note that BitlBee-libpurple is supported on a best-effort basis. It's"
758                echo "    not *fully* compatible with normal BitlBee. Don't use it unless you"
759                echo "    absolutely need it (i.e. support for a certain protocol or feature)."
760        esac
[b7d3cc34]761else
[b3c467b]762        echo '  Building without IM-protocol support. We wish you a lot of fun...'
[b7d3cc34]763fi
Note: See TracBrowser for help on using the repository browser.