Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
executable file 351 lines (323 sloc) 8.03 KB
#!/bin/sh
# Defaults
PREFIX=/usr/local
SYSCONFDIR="$PREFIX/etc/prosody"
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
ICU_FLAGS="-licui18n -licudata -licuuc"
OPENSSL_LIB=crypto
CC=gcc
CXX=g++
LD=gcc
CFLAGS="-fPIC -Wall"
LDFLAGS="-shared"
IDN_LIBRARY=idn
# Help
show_help() {
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
--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
--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
--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
EOF
}
while [ "$1" ]
do
value="`echo $1 | sed 's/[^=]*=\(.*\)/\1/'`"
if echo "$value" | grep -q "~"
then
echo
echo '*WARNING*: the "~" sign is not expanded in flags.'
echo 'If you mean the home directory, use $HOME instead.'
echo
fi
case "$1" in
--help)
show_help
exit 0
;;
--prefix=*)
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
LUA_INCDIR=/usr/include/lua5.1;
LUA_INCDIR_SET=yes
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"
LDFLAGS="-shared"
fi
if [ "$OSTYPE" = "freebsd" ]
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
;;
--datadir=*)
DATADIR="$value"
DATADIR_SET=yes
;;
--require-config)
REQUIRE_CONFIG=yes
;;
--lua-suffix=*)
LUA_SUFFIX="$value"
LUA_SUFFIX_SET=yes
;;
--with-lua=*)
LUA_DIR="$value"
LUA_DIR_SET=yes
;;
--with-lua-include=*)
LUA_INCDIR="$value"
LUA_INCDIR_SET=yes
;;
--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"
;;
*)
echo "Error: Unknown flag: $1"
exit 1
;;
esac
shift
done
if [ "$PREFIX_SET" = "yes" -a ! "$SYSCONFDIR_SET" = "yes" ]
then
if [ "$PREFIX" = "/usr" ]
then SYSCONFDIR=/etc/prosody
else SYSCONFDIR=$PREFIX/etc/prosody
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
find_program() {
path="$PATH"
item="`echo "$path" | sed 's/\([^:]*\):.*/\1/'`"
path="`echo "$path" | sed -n 's/[^:]*::*\(.*\)/\1/p'`"
found="no"
while [ "$item" ]
do
if [ -e "$item/$1" ]
then
found="yes"
break
fi
item="`echo "$path" | sed 's/\([^:]*\):.*/\1/'`"
path="`echo "$path" | sed -n 's/[^:]*::*\(.*\)/\1/p'`"
done
if [ "$found" = "yes" ]
then
echo "$item"
else
echo ""
fi
}
if [ "$LUA_SUFFIX_SET" != "yes" ]
then
for suffix in "5.1" "51" ""
do
LUA_SUFFIX="$suffix"
if [ "$LUA_DIR_SET" = "yes" ]
then
if [ -e "$LUA_DIR/bin/lua$suffix" ]
then
find_lua="$LUA_DIR"
fi
else
find_lua=`find_program lua$suffix`
fi
if [ "$find_lua" ]
then
echo "Lua interpreter found: $find_lua/lua$suffix..."
break
fi
done
fi
if ! [ "$LUA_DIR_SET" = "yes" ]
then
echo -n "Looking for Lua... "
if [ ! "$find_lua" ]
then
find_lua=`find_program lua$LUA_SUFFIX`
echo "lua$LUA_SUFFIX found in \$PATH: $find_lua"
fi
if [ "$find_lua" ]
then
LUA_DIR=`dirname $find_lua`
LUA_BINDIR="$find_lua"
else
echo "lua$LUA_SUFFIX not found in \$PATH."
echo "You may want to use the flags --with-lua and/or --lua-suffix. See --help."
exit 1
fi
fi
if ! [ "$LUA_INCDIR_SET" = "yes" ]
then
LUA_INCDIR="$LUA_DIR/include"
fi
if ! [ "$LUA_LIBDIR_SET" = "yes" ]
then
LUA_LIBDIR="$LUA_DIR/lib"
fi
if [ "$LUA_DIR_SET" = "yes" ]
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" ]
then
echo "lua.h found in $lua_h"
else
echo "lua.h not found (looked in $lua_h)"
echo "You may want to use the flag --with-lua-include. See --help."
exit 1
fi
find_helper() {
explanation="$1"
shift
tried="$*"
while [ "$1" ]
do
found=`find_program "$1"`
if [ "$found" ]
then
echo "$1 found at $found"
HELPER=$1
return
fi
shift
done
echo "Could not find a $explanation. Tried: $tried."
echo "Make sure one of them is installed and available in your PATH."
exit 1
}
# Write config
echo "Writing configuration..."
echo
cat <<EOF > config.unix
# This file was automatically generated by the configure script.
# Run "./configure --help" for details.
PREFIX=$PREFIX
SYSCONFDIR=$SYSCONFDIR
DATADIR=$DATADIR
LUA_SUFFIX=$LUA_SUFFIX
LUA_DIR=$LUA_DIR
LUA_INCDIR=$LUA_INCDIR
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
EOF
echo "Installation prefix: $PREFIX"
echo "Prosody configuration directory: $SYSCONFDIR"
echo "Using Lua from: $LUA_DIR"
make clean > /dev/null 2> /dev/null
echo
echo "Done. You can now run 'make' to build."
echo
Something went wrong with that request. Please try again.