Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • configure

    raec56b0 r31fc3970  
    1414datadir='$prefix/share/bitlbee/'
    1515config='/var/lib/bitlbee/'
     16plugindir='$prefix/lib/bitlbee/'
     17includedir='$prefix/include/bitlbee/'
     18libevent='/usr/'
    1619pidfile='/var/run/bitlbee.pid'
    17 ipcsocket='/var/run/bitlbee'
    18 plugindir='$prefix/lib/bitlbee'
     20ipcsocket='/var/run/bitlbee.sock'
    1921pcdir='$prefix/lib/pkgconfig'
    20 includedir='$prefix/include/bitlbee'
    2122
    2223msn=1
     
    2728debug=0
    2829strip=1
    29 ipv6=1
     30gcov=0
     31plugins=1
     32
     33events=glib
     34ldap=0
    3035ssl=auto
    3136
    3237arch=`uname -s`
    3338cpu=`uname -m`
     39
     40GLIB_MIN_VERSION=2.4
    3441
    3542echo BitlBee configure
     
    6168--debug=0/1     Disable/enable debugging                $debug
    6269--strip=0/1     Disable/enable binary stripping         $strip
    63 
    64 --ipv6=0/1      IPv6 socket support                     $ipv6
    65 
    66 --ssl=...       SSL library to use (gnutls, nss, openssl, sspi, bogus, auto)
     70--gcov=0/1      Disable/enable test coverage reporting  $gcov
     71--plugins=0/1   Disable/enable plugins support          $plugins
     72
     73--events=...    Event handler (glib, libevent)          $events
     74--ssl=...       SSL library to use (gnutls, nss, openssl, bogus, auto)
    6775                                                        $ssl
    68 --arch=...  Override target architecture $arch
    69 
    7076EOF
    7177                exit;
     
    8288config=`eval echo "$config/" | sed 's/\/\{1,\}/\//g'`
    8389plugindir=`eval echo "$plugindir/" | sed 's/\/\{1,\}/\//g'`
     90includedir=`eval echo "$includedir"/ | sed 's/\/\{1,\}/\//g'`
     91libevent=`eval echo "$libevent"/ | sed 's/\/\{1,\}/\//g'`
     92
    8493pidfile=`eval echo "$pidfile" | sed 's/\/\{1,\}/\//g'`
    8594ipcsocket=`eval echo "$ipcsocket" | sed 's/\/\{1,\}/\//g'`
    86 includedir=`eval echo "$includedir" | sed 's/\/\{1,\}/\//g'`
    8795pcdir=`eval echo "$pcdir" | sed 's/\/\{1,\}/\//g'`
    8896
     
    96104PLUGINDIR=$plugindir
    97105CONFIG=$config
    98 IPCSOCKET=$ipcsocket
    99106INCLUDEDIR=$includedir
    100107PCDIR=$pcdir
     
    125132EOF
    126133
    127 if [ "$ipv6" = "1" ]; then
    128         echo '#define IPV6' >> config.h
    129 fi
    130 
    131134if [ "$debug" = "1" ]; then
    132         echo 'CFLAGS=-g' >> Makefile.settings
     135        [ -z "$CFLAGS" ] && CFLAGS=-g
    133136        echo 'DEBUG=1' >> Makefile.settings
    134         echo '#define DEBUG' >> config.h
    135 else
    136         echo 'CFLAGS=-O3' >> Makefile.settings
    137 fi
    138 
    139 echo CFLAGS+=-I`pwd` -I`pwd`/protocols -I. >> Makefile.settings
     137        CFLAGS="$CFLAGS -DDEBUG"
     138else
     139        [ -z "$CFLAGS" ] && CFLAGS="-O2 -fno-strict-aliasing"
     140fi
     141
     142echo CFLAGS=$CFLAGS >> Makefile.settings
     143echo CFLAGS+=-I`pwd` -I`pwd`/lib -I`pwd`/protocols -I. >> Makefile.settings
    140144
    141145echo CFLAGS+=-DHAVE_CONFIG_H >> Makefile.settings
    142146
    143147if [ -n "$CC" ]; then
    144         echo "CC=$CC" >> Makefile.settings;
     148        CC=$CC
    145149elif type gcc > /dev/null 2> /dev/null; then
    146         echo "CC=gcc" >> Makefile.settings;
     150        CC=gcc
    147151elif type cc > /dev/null 2> /dev/null; then
    148         echo "CC=cc" >> Makefile.settings;
     152        CC=cc
    149153else
    150154        echo 'Cannot find a C compiler, aborting.'
    151155        exit 1;
    152156fi
     157
     158echo "CC=$CC" >> Makefile.settings;
    153159
    154160if [ -n "$LD" ]; then
     
    165171fi
    166172
    167 GLIB=0
    168 
    169173if $PKG_CONFIG --version > /dev/null 2>/dev/null && $PKG_CONFIG glib-2.0; then
    170         cat<<EOF>>Makefile.settings
     174        if $PKG_CONFIG glib-2.0 --atleast-version=$GLIB_MIN_VERSION; then
     175                cat<<EOF>>Makefile.settings
    171176EFLAGS+=`$PKG_CONFIG --libs glib-2.0 gmodule-2.0`
    172177CFLAGS+=`$PKG_CONFIG --cflags glib-2.0 gmodule-2.0`
    173178EOF
    174         echo '#define GLIB2' >> config.h
    175         GLIB=2
    176 elif type glib-config > /dev/null 2> /dev/null; then
    177         cat<<EOF>>Makefile.settings
    178 EFLAGS+=`glib-config --libs`
    179 CFLAGS+=`glib-config --cflags`
    180 EOF
    181         echo '#define GLIB1' >> config.h
    182         GLIB=1
    183 else
    184         echo 'Cannot find glib development libraries, aborting. (Install libglib-dev?)'
    185         exit 1;
    186 fi
    187 
    188 if [ GLIB = 1 -o -r /usr/include/iconv.h ]; then
    189         :;
    190 elif [ -r /usr/local/include/iconv.h ]; then
    191         echo CFLAGS+=-I/usr/local/include >> Makefile.settings;
    192 else
    193         echo
    194         echo 'Warning: Could not find iconv.h, you might have to install it and/or modify'
    195         echo 'Makefile.settings to tell where this file is.';
    196 fi
    197 
     179        else
     180                echo
     181                echo 'Found glib2 '`$PKG_CONFIG glib-2.0 --modversion`', but version '$GLIB_MIN_VERSION' or newer is required.'
     182                exit 1
     183        fi
     184else
     185        echo
     186        echo 'Cannot find glib2 development libraries, aborting. (Install libglib2-dev?)'
     187        exit 1
     188fi
     189
     190if [ "$events" = "libevent" ]; then
     191        if ! [ -f "${libevent}include/event.h" ]; then
     192                echo
     193                echo 'Warning: Could not find event.h, you might have to install it and/or specify'
     194                echo 'its location using the --libevent= argument. (Example: If event.h is in'
     195                echo '/usr/local/include and binaries are in /usr/local/lib: --libevent=/usr/local)'
     196        fi
     197       
     198        echo '#define EVENTS_LIBEVENT' >> config.h
     199        cat <<EOF>>Makefile.settings
     200EFLAGS+=-levent -L${libevent}lib
     201CFLAGS+=-I${libevent}include
     202EOF
     203elif [ "$events" = "glib" ]; then
     204        ## We already use glib anyway, so this is all we need (and in fact not even this, but just to be sure...):
     205        echo '#define EVENTS_GLIB' >> config.h
     206else
     207        echo
     208        echo 'ERROR: Unknown event handler specified.'
     209        exit 1
     210fi
     211echo 'EVENT_HANDLER=events_'$events'.o' >> Makefile.settings
    198212
    199213detect_gnutls()
     
    227241}
    228242
    229 if [ "$msn" = 1 -o "$jabber" = 1 ]; then
    230         if [ "$ssl" = "auto" ]; then
    231                 detect_gnutls
    232                 if [ "$ret" = "0" ]; then
    233                         detect_nss
    234                 fi;
    235         elif [ "$ssl" = "gnutls" ]; then
    236                 detect_gnutls;
    237         elif [ "$ssl" = "nss" ]; then
    238                 detect_nss;
    239         elif [ "$ssl" = "sspi" ]; then
     243detect_ldap()
     244{
     245        TMPFILE=`mktemp`
     246        if $CC -o $TMPFILE -shared -lldap 2>/dev/null >/dev/null; then
     247                cat<<EOF>>Makefile.settings
     248EFLAGS+=-lldap
     249CFLAGS+=
     250EOF
     251                ldap=1
     252                rm -f $TMPFILE
     253                ret=1
     254        else
     255                ldap=0
     256                ret=0
     257        fi
     258}
     259
     260if [ "$ssl" = "auto" ]; then
     261        detect_gnutls
     262        if [ "$ret" = "0" ]; then
     263                detect_nss
     264        fi
     265elif [ "$ssl" = "gnutls" ]; then
     266        detect_gnutls
     267elif [ "$ssl" = "nss" ]; then
     268        detect_nss
     269elif [ "$ssl" = "openssl" ]; then
     270        echo
     271        echo 'No detection code exists for OpenSSL. Make sure that you have a complete'
     272        echo 'install of OpenSSL (including devel/header files) before reporting'
     273        echo 'compilation problems.'
     274        echo
     275        echo 'Also, keep in mind that the OpenSSL is, according to some people, not'
     276        echo 'completely GPL-compatible. Using GnuTLS or NSS is recommended and better'
     277        echo 'supported by us. However, on many BSD machines, OpenSSL can be considered'
     278        echo 'part of the operating system, which makes it GPL-compatible.'
     279        echo
     280        echo 'For more info, see: http://www.openssl.org/support/faq.html#LEGAL2'
     281        echo '                    http://www.gnome.org/~markmc/openssl-and-the-gpl.html'
     282        echo
     283        echo 'Please note that distributing a BitlBee binary which links to OpenSSL is'
     284        echo 'probably illegal. If you want to create and distribute a binary BitlBee'
     285        echo 'package, you really should use GnuTLS or NSS instead.'
     286        echo
     287        echo 'Also, the OpenSSL license requires us to say this:'
     288        echo ' *    "This product includes software developed by the OpenSSL Project'
     289        echo ' *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"'
     290       
     291        echo 'EFLAGS+=-lssl -lcrypto' >> Makefile.settings
     292       
     293        ret=1
     294elif [ "$ssl" = "bogus" ]; then
     295        echo
     296        echo 'Using bogus SSL code. This means some features will not work properly.'
     297       
     298        ## Yes, you, at the console! How can you authenticate if you don't have any SSL!?
     299        if [ "$msn" = "1" ]; then
    240300                echo
    241         elif [ "$ssl" = "openssl" ]; then
    242                 echo
    243                 echo 'No detection code exists for OpenSSL. Make sure that you have a complete'
    244                 echo 'install of OpenSSL (including devel/header files) before reporting'
    245                 echo 'compilation problems.'
    246                 echo
    247                 echo 'Also, keep in mind that the OpenSSL is, according to some people, not'
    248                 echo 'completely GPL-compatible. Using GnuTLS or NSS is recommended and better'
    249                 echo 'supported by us. However, on many BSD machines, OpenSSL can be considered'
    250                 echo 'part of the operating system, which makes it GPL-compatible.'
    251                 echo
    252                 echo 'For more info, see: http://www.openssl.org/support/faq.html#LEGAL2'
    253                 echo '                    http://www.gnome.org/~markmc/openssl-and-the-gpl.html'
    254                 echo
    255                 echo 'Please note that distributing a BitlBee binary which links to OpenSSL is'
    256                 echo 'probably illegal. If you want to create and distribute a binary BitlBee'
    257                 echo 'package, you really should use GnuTLS or NSS instead.'
    258                 echo
    259                 echo 'Also, the OpenSSL license requires us to say this:'
    260                 echo ' *    "This product includes software developed by the OpenSSL Project'
    261                 echo ' *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"'
    262                
    263                 echo 'EFLAGS+=-lssl -lcrypto' >> Makefile.settings
    264                
    265                 ret=1;
    266         elif [ "$ssl" = "bogus" ]; then
    267                 echo
    268                 echo 'Using bogus SSL code. This will not make the MSN module work, but it will'
    269                 echo 'allow you to use the Jabber module - although without working SSL support.'
    270                
    271                 ret=1;
    272         else
    273                 echo
    274                 echo 'ERROR: Unknown SSL library specified.'
    275                 exit 1;
    276         fi
    277        
    278         if [ "$ret" = "0" ]; then
    279                 echo
    280                 echo 'ERROR: Could not find a suitable SSL library (GnuTLS, libnss or OpenSSL).'
    281                 echo '       This is necessary for MSN and full Jabber support. To continue,'
    282                 echo '       install a suitable SSL library or disable MSN support (--msn=0).'
    283                 echo '       If you want Jabber without SSL support you can try --ssl=bogus.'
    284                
    285                 exit 1;
    286         fi;
    287        
    288         echo 'SSL_CLIENT=ssl_'$ssl'.o' >> Makefile.settings
    289 fi
     301                echo 'Real SSL support is necessary for MSN authentication, will build without'
     302                echo 'MSN protocol support.'
     303                msn=0
     304        fi
     305       
     306        ret=1
     307else
     308        echo
     309        echo 'ERROR: Unknown SSL library specified.'
     310        exit 1
     311fi
     312
     313if [ "$ret" = "0" ]; then
     314        echo
     315        echo 'ERROR: Could not find a suitable SSL library (GnuTLS, libnss or OpenSSL).'
     316        echo '       Please note that this script doesn'\''t have detection code for OpenSSL,'
     317        echo '       so if you want to use that, you have to select it by hand. If you don'\''t'
     318        echo '       need SSL support, you can select the "bogus" SSL library. (--ssl=bogus)'
     319       
     320        exit 1
     321fi;
     322
     323echo 'SSL_CLIENT=ssl_'$ssl'.o' >> Makefile.settings
     324
     325for i in /lib /usr/lib /usr/local/lib; do
     326        if [ -f $i/libresolv.a ]; then
     327                echo '#define HAVE_RESOLV_A' >> config.h
     328                echo 'EFLAGS+='$i'/libresolv.a' >> Makefile.settings
     329                break
     330        fi
     331done
     332
     333STORAGES="text xml"
     334
     335if [ "$ldap" = "auto" ]; then
     336        detect_ldap
     337fi
     338
     339if [ "$ldap" = 0 ]; then
     340        echo "#undef WITH_LDAP" >> config.h
     341elif [ "$ldap" = 1 ]; then
     342        echo
     343        echo 'LDAP support is a work in progress and does NOT work AT ALL right now.'
     344        echo
     345        exit 1
     346       
     347        echo "#define WITH_LDAP 1" >> config.h
     348        STORAGES="$STORAGES ldap"
     349fi
     350
     351for i in $STORAGES; do
     352        STORAGE_OBJS="$STORAGE_OBJS storage_$i.o"
     353done
     354echo "STORAGE_OBJS="$STORAGE_OBJS >> Makefile.settings
    290355
    291356if [ "$strip" = 0 ]; then
     
    301366        elif type strip > /dev/null 2> /dev/null; then
    302367                echo "STRIP=strip" >> Makefile.settings;
    303         elif /bin/test -x /usr/ccs/bin/strip; then
    304                 echo "STRIP=/usr/ccs/bin/strip" >> Makefile.settings;
    305368        else
    306369                echo
     
    309372                strip=0;
    310373        fi;
     374fi
     375
     376if [ "$gcov" = "1" ]; then
     377        echo "CFLAGS+=--coverage" >> Makefile.settings
     378        echo "EFLAGS+=--coverage" >> Makefile.settings
     379fi
     380
     381if [ "$plugins" = 0 ]; then
     382        echo '#undef WITH_PLUGINS' >> config.h
     383else
     384        echo '#define WITH_PLUGINS' >> config.h
    311385fi
    312386
     
    380454
    381455if [ "$protocols" = "PROTOCOLS = " ]; then
    382         echo "WARNING: You haven't selected any communication protocol to compile!"
    383         echo "         Bitlbee will run, but you will be unable to connect to IM servers!"
     456        echo "Warning: You haven't selected any communication protocol to compile!"
     457        echo "         BitlBee will run, but you will be unable to connect to IM servers!"
    384458fi
    385459
     
    394468;;
    395469*BSD )
    396         echo 'EFLAGS+=-liconv' >> Makefile.settings;
     470;;
     471Darwin )
     472;;
     473IRIX )
    397474;;
    398475SunOS )
    399476        echo 'EFLAGS+=-lresolv -lnsl -lsocket' >> Makefile.settings
    400477        echo 'STRIP=\# skip strip' >> Makefile.settings
    401         echo 'EFLAGS+=-liconv' >> Makefile.settings;
    402 ;;
    403 Darwin )
    404         echo 'EFLAGS+=-liconv' >> Makefile.settings;
    405 ;;
    406 IRIX )
     478;;
     479AIX )
     480        echo 'EFLAGS+=-Wl,-brtl' >> Makefile.settings
    407481;;
    408482CYGWIN* )
    409483        echo 'Cygwin is not officially supported.'
    410 ;;
    411 Windows )
    412         echo OUTFILE=bitlbee.exe >> Makefile.settings
    413         echo LFLAGS+=-lwsock32 >> Makefile.settings
    414         echo EFLAGS+=-lsecur32 >> Makefile.settings
    415484;;
    416485* )
     
    424493
    425494if [ "$debug" = "1" ]; then
    426         echo '  Debugging enabled.';
    427 else
    428         echo '  Debugging disabled.';
     495        echo '  Debugging enabled.'
     496else
     497        echo '  Debugging disabled.'
    429498fi
    430499
    431500if [ "$strip" = "1" ]; then
    432         echo '  Binary stripping enabled.';
    433 else
    434         echo '  Binary stripping disabled.';
    435 fi
    436 
    437 if [ "$msn" = "1" ]; then
    438         echo '  Using SSL library: '$ssl;
    439 fi
    440 
    441 #if [ "$flood" = "0" ]; then
    442 #       echo '  Flood protection disabled.';
    443 #else
    444 #       echo '  Flood protection enabled.';
    445 #fi
     501        echo '  Binary stripping enabled.'
     502else
     503        echo '  Binary stripping disabled.'
     504fi
     505
     506echo '  Using event handler: '$events
     507echo '  Using SSL library: '$ssl
     508echo '  Building with these storage backends: '$STORAGES
    446509
    447510if [ -n "$protocols" ]; then
    448         echo '  Building with these protocols:' $protocols;
    449 else
    450         echo '  Building without IM-protocol support. We wish you a lot of fun...';
    451 fi
     511        echo '  Building with these protocols:' $protocols
     512else
     513        echo '  Building without IM-protocol support. We wish you a lot of fun...'
     514fi
Note: See TracChangeset for help on using the changeset viewer.