net.server_event: Check the buffer *length*, not the buffer itself (Fixes 100% cpu...
[prosody.git] / configure
index 758e70dfb707a0b81f96abb3c37ad215bd76361a..199f5fcf8c0a9b45b24de6b6c264b73f2ba509e6 100755 (executable)
--- a/configure
+++ b/configure
@@ -4,14 +4,26 @@
 
 PREFIX=/usr/local
 SYSCONFDIR="$PREFIX/etc/prosody"
+LIBDIR="$PREFIX/lib"
+DATADIR="$PREFIX/var/lib/prosody"
 LUA_SUFFIX=""
 LUA_DIR="/usr"
 LUA_BINDIR="/usr/bin"
 LUA_INCDIR="/usr/include"
 LUA_LIBDIR="/usr/lib"
 IDN_LIB=idn
-OPENSSL_LIB=ssl
+ICU_FLAGS="-licui18n -licudata -licuuc"
+OPENSSL_LIB=crypto
+CC=gcc
+CXX=g++
+LD=gcc
+RUNWITH=lua
+EXCERTS=yes
 
+CFLAGS="-fPIC -Wall"
+LDFLAGS="-shared"
+
+IDN_LIBRARY=idn
 # Help
 
 show_help() {
@@ -19,31 +31,51 @@ cat <<EOF
 Configure Prosody prior to building.
 
 --help                      This help.
+--ostype=OS                 Use one of the OS presets.
+                            May be one of: debian, macosx, linux, freebsd
 --prefix=DIR                Prefix where Prosody should be installed.
                             Default is $PREFIX
 --sysconfdir=DIR            Location where the config file should be installed.
                             Default is \$PREFIX/etc/prosody
+--libdir=DIR                Location where the server files should be stored.
+                            Default is \$PREFIX/lib
+--datadir=DIR               Location where the server data should be stored.
+                            Default is \$PREFIX/var/lib/prosody
 --lua-suffix=SUFFIX         Versioning suffix to use in Lua filenames.
                             Default is "$LUA_SUFFIX" (lua$LUA_SUFFIX...)
 --with-lua=PREFIX           Use Lua from given prefix.
                             Default is $LUA_DIR
+--runwith=BINARY            What Lua binary to set as runtime environment.
+                            Default is $RUNWITH
 --with-lua-include=DIR      You can also specify Lua's includes dir.
                             Default is \$LUA_DIR/include
 --with-lua-lib=DIR          You can also specify Lua's libraries dir.
                             Default is \$LUA_DIR/lib
 --with-idn=LIB              The name of the IDN library to link with.
                             Default is $IDN_LIB
+--idn-library=(idn|icu)     Select library to use for IDNA functionality.
+                            idn: use GNU libidn (default)
+                            icu: use ICU from IBM
 --with-ssl=LIB              The name of the SSL to link with.
                             Default is $OPENSSL_LIB
---require-config              Will cause Prosody to refuse to run when
+--cflags=FLAGS              Flags to pass to the compiler
+                            Default is $CFLAGS
+--ldflags=FLAGS             Flags to pass to the linker
+                            Default is $LDFLAGS
+--c-compiler=CC             The C compiler to use when building modules.
+                            Default is $CC
+--linker=CC                 The linker to use when building modules.
+                            Default is $LD
+--require-config            Will cause Prosody to refuse to run when
                             it fails to find a configuration file
+--no-example-certs          Disables generation of example certificates.
 EOF
 }
 
 
 while [ "$1" ]
 do
-   value="`echo $1 | sed 's/.*=\(.*\)/\1/'`"
+   value="`echo $1 | sed 's/[^=]*=\(.*\)/\1/'`"
    if echo "$value" | grep -q "~"
    then
       echo
@@ -60,6 +92,59 @@ do
       PREFIX="$value"
       PREFIX_SET=yes
       ;;
+   --sysconfdir=*)
+      SYSCONFDIR="$value"
+      SYSCONFDIR_SET=yes
+      ;;
+   --ostype=*)
+      OSTYPE="$value"
+      OSTYPE_SET=yes
+      if [ "$OSTYPE" = "debian" ]
+      then LUA_SUFFIX="5.1";
+       LUA_SUFFIX_SET=yes
+       RUNWITH="lua5.1"
+       LUA_INCDIR=/usr/include/lua5.1;
+       LUA_INCDIR_SET=yes
+       CFLAGS="$CFLAGS -D_GNU_SOURCE"
+       fi
+       if [ "$OSTYPE" = "macosx" ]
+       then LUA_INCDIR=/usr/local/include;
+       LUA_INCDIR_SET=yes
+       LUA_LIBDIR=/usr/local/lib
+       LUA_LIBDIR_SET=yes
+       LDFLAGS="-bundle -undefined dynamic_lookup"
+       fi
+        if [ "$OSTYPE" = "linux" ]
+        then LUA_INCDIR=/usr/local/include;
+        LUA_INCDIR_SET=yes
+        LUA_LIBDIR=/usr/local/lib
+        LUA_LIBDIR_SET=yes
+        CFLAGS="-Wall -fPIC"
+        CFLAGS="$CFLAGS -D_GNU_SOURCE"
+        LDFLAGS="-shared"
+        fi
+        if [ "$OSTYPE" = "freebsd" -o "$OSTYPE" = "openbsd" ]
+        then LUA_INCDIR="/usr/local/include/lua51"
+        LUA_INCDIR_SET=yes
+        CFLAGS="-Wall -fPIC -I/usr/local/include"
+        LDFLAGS="-I/usr/local/include -L/usr/local/lib -shared"
+        LUA_SUFFIX="-5.1"
+        LUA_SUFFIX_SET=yes
+        LUA_DIR=/usr/local
+        LUA_DIR_SET=yes
+        fi
+        if [ "$OSTYPE" = "openbsd" ]
+        then LUA_INCDIR="/usr/local/include";
+        fi
+      ;;
+   --libdir=*)
+      LIBDIR="$value"
+      LIBDIR_SET=yes
+      ;;
+   --datadir=*)
+       DATADIR="$value"
+       DATADIR_SET=yes
+      ;;
    --require-config)
       REQUIRE_CONFIG=yes
       ;;
@@ -77,13 +162,34 @@ do
       ;;
    --with-lua-lib=*)
       LUA_LIBDIR="$value" LUA_LIBDIR_SET=yes
-      ;;      
+      ;;
    --with-idn=*)
       IDN_LIB="$value"
-      ;;      
+      ;;
+       --idn-library=*)
+               IDN_LIBRARY="$value"
+               ;;
    --with-ssl=*)
       OPENSSL_LIB="$value"
-      ;;      
+      ;;
+   --cflags=*)
+      CFLAGS="$value"
+      ;;
+   --ldflags=*)
+      LDFLAGS="$value"
+      ;;
+   --c-compiler=*)
+      CC="$value"
+      ;;
+   --linker=*)
+      LD="$value"
+      ;;
+   --runwith=*)
+      RUNWITH="$value"
+      ;;
+    --no-example-certs)
+      EXCERTS=
+      ;;
    *)
       echo "Error: Unknown flag: $1"
       exit 1
@@ -100,6 +206,19 @@ then
    fi
 fi
 
+if [ "$PREFIX_SET" = "yes" -a ! "$DATADIR_SET" = "yes" ]
+then
+   if [ "$PREFIX" = "/usr" ]
+   then DATADIR=/var/lib/prosody
+   else DATADIR=$PREFIX/var/lib/prosody
+   fi
+fi
+
+if [ "$PREFIX_SET" = "yes" -a ! "$LIBDIR_SET" = "yes" ]
+then
+   LIBDIR=$PREFIX/lib
+fi
+
 find_program() {
    path="$PATH"
    item="`echo "$path" | sed 's/\([^:]*\):.*/\1/'`"
@@ -125,7 +244,7 @@ find_program() {
 
 if [ "$LUA_SUFFIX_SET" != "yes" ]
 then
-   for suffix in "" "5.1" "51" ""
+   for suffix in "5.1" "51" ""
    do
       LUA_SUFFIX="$suffix"
       if [ "$LUA_DIR_SET" = "yes" ]
@@ -179,6 +298,16 @@ then
    LUA_BINDIR="$LUA_DIR/bin"
 fi
 
+if [ "$IDN_LIBRARY" = "icu" ]
+then
+       IDNA_LIBS="$ICU_FLAGS"
+       CFLAGS="$CFLAGS -DUSE_STRINGPREP_ICU"
+fi
+if [ "$IDN_LIBRARY" = "idn" ] 
+then
+       IDNA_LIBS="-l$IDN_LIB"
+fi
+
 echo -n "Checking Lua includes... "
 lua_h="$LUA_INCDIR/lua.h"
 if [ -e "$lua_h" ]
@@ -221,6 +350,8 @@ cat <<EOF > config.unix
 
 PREFIX=$PREFIX
 SYSCONFDIR=$SYSCONFDIR
+LIBDIR=$LIBDIR
+DATADIR=$DATADIR
 LUA_SUFFIX=$LUA_SUFFIX
 LUA_DIR=$LUA_DIR
 LUA_INCDIR=$LUA_INCDIR
@@ -228,7 +359,15 @@ LUA_LIBDIR=$LUA_LIBDIR
 LUA_BINDIR=$LUA_BINDIR
 REQUIRE_CONFIG=$REQUIRE_CONFIG
 IDN_LIB=$IDN_LIB
+IDNA_LIBS=$IDNA_LIBS
 OPENSSL_LIB=$OPENSSL_LIB
+CFLAGS=$CFLAGS
+LDFLAGS=$LDFLAGS
+CC=$CC
+CXX=$CXX
+LD=$LD
+RUNWITH=$RUNWITH
+EXCERTS=$EXCERTS
 
 EOF