source: configure @ 1783ab6

Last change on this file since 1783ab6 was d203495, checked in by Jelmer Vernooij <jelmer@…>, at 2014-07-19T23:55:24Z

Allow LDFLAGS to be provided in the environment and consistently use $(LDFLAGS)
when linking (not partially linking).

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