source: configure @ 7d2ce9a

Last change on this file since 7d2ce9a was 25b80e9c, checked in by Wilmer van der Gaast <wilmer@…>, at 2012-06-03T21:01:06Z

Commit two patches from RH package maintainer (#956).

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