aboutsummaryrefslogtreecommitdiffstats
path: root/configure
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2008-06-09 14:20:34 +0400
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2008-06-09 14:20:34 +0400
commit2564777f536f6fde73ddaf24eaf4697775970e13 (patch)
tree86a4c3c87b3618f1e56d19f52948ff754f909704 /configure
parent8dbb9984edd945090c2c8ae27f4cfede944ba912 (diff)
downloadrspamd-2564777f536f6fde73ddaf24eaf4697775970e13.tar.gz
rspamd-2564777f536f6fde73ddaf24eaf4697775970e13.zip
* Add gnome mime parser to rspamd
* Add some protocol parser with evbuffer * Add pkg-check to configure script for detecting gmime and glib
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure62
1 files changed, 58 insertions, 4 deletions
diff --git a/configure b/configure
index 672307866..74e00b7d2 100755
--- a/configure
+++ b/configure
@@ -6,6 +6,8 @@ LEX=""
YACC=""
OS=""
+PKG_CONFIG=`which pkg-config`
+
LOCALBASE=/usr/local
PREFIX=$LOCALBASE
@@ -17,15 +19,15 @@ LEX_SRC="cfg_file.l"
YACC_OUTPUT="cfg_yacc.c"
LEX_OUTPUT="cfg_lex.c"
-SOURCES="upstream.c cfg_utils.c memcached.c main.c util.c worker.c fstring.c mime.c ${LEX_OUTPUT} ${YACC_OUTPUT}"
+SOURCES="upstream.c cfg_utils.c memcached.c main.c util.c worker.c fstring.c ${LEX_OUTPUT} ${YACC_OUTPUT}"
-CFLAGS="$CFLAGS -W -Wall -Wpointer-arith -Wno-unused-parameter"
+CFLAGS="$CFLAGS -W -Wpointer-arith -Wno-unused-parameter"
CFLAGS="$CFLAGS -Wno-unused-function -Wunused-variable -Wno-sign-compare"
CFLAGS="$CFLAGS -Wunused-value -ggdb -I${LOCALBASE}/include"
-CFLAGS="$CFLAGS -DRVERSION=\\\"${VERSION}\\\" -DHASH_COMPAT"
+CFLAGS="$CFLAGS "
LDFLAGS="$LDFLAGS -L/usr/lib -L${LOCALBASE}/lib"
OPT_FLAGS="-O -pipe -fno-omit-frame-pointer"
-DEPS="cfg_file.h memcached.h util.h main.h upstream.h fstring.h mime.h ${LEX_OUTPUT} ${YACC_OUTPUT}"
+DEPS="cfg_file.h memcached.h util.h main.h upstream.h fstring.h ${LEX_OUTPUT} ${YACC_OUTPUT}"
EXEC=rspamd
USER=postfix
GROUP=postfix
@@ -251,6 +253,50 @@ check_lib()
fi
}
+check_package()
+{
+ PACKAGE=$1
+ PLIBS=`$PKG_CONFIG --libs $PACKAGE`
+ PCFLAGS=`$PKG_CONFIG --cflags $PACKAGE`
+ while [ $# -ne 1 -a -n $1 ] ; do
+ shift
+ if [ "F$INCLUDE" = "F" ] ; then
+ INCLUDE="$1"
+ else
+ INCLUDE="$INCLUDE $1"
+ fi
+ done
+ echo -n "Testing for $PACKAGE: "
+ echo >> config.log
+ echo "Testing for $PACKAGE: " >> config.log
+ echo "#include <sys/types.h>" > autotest.c
+ if [ "F$INCLUDE" != "F" ] ; then
+ for inc in $INCLUDE ; do
+ echo "#include \"$inc\"" >> autotest.c
+ done
+ fi
+ echo "#include <stdlib.h>" >> autotest.c
+ echo "int main (int argc, char **argv) { return 0; }" >> autotest.c
+ echo "$GCC $CFLAGS $PCFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS $PLIBS $PTHREAD_LDFLAGS autotest.c" >>config.log
+ $GCC $CFLAGS $PCFLAGS $PTHREAD_CFLAGS -o autotest $LDFLAGS $LIBS $PLIBS $PTHREAD_LDFLAGS autotest.c >>config.log 2>&1
+ if [ $? -eq 0 ] ; then
+ echo "found"
+ LIBS="$LIBS $PLIBS"
+ CFLAGS="$CFLAGS $PCFLAGS"
+ cleanup
+ echo "-> OK" >> config.log
+ return 0
+ else
+ echo "not found"
+ echo "-> FAILED" >> config.log
+ echo "Failed program was:" >> config.log
+ cat autotest.c >> config.log
+ cleanup
+ return 1
+ fi
+
+}
+
check_os()
{
_OS=`uname -s`
@@ -304,6 +350,11 @@ write_result()
echo "Ldflags: $LDFLAGS" >> config.log
echo "Libs: $LIBS" >> config.log
OBJECTS=`echo $SOURCES | sed -e 's/\.c/\.o/g'`
+ # Make CFLAGS more readable
+ CFLAGS="$CFLAGS -DRVERSION=\\\"${VERSION}\\\" -DHASH_COMPAT"
+ CFLAGS=`echo $CFLAGS | sed -e 's/[ ]/ \\\\\\n/g' | sort -r -k2 | uniq`
+ LDFLAGS=`echo $LDLAGS | sed -e 's/[ ]/ \\\\\\n/g' | sort -r -k2 | uniq`
+ LIBS=`echo $LIBS | sed -e 's/[ ]/ \\\\\\n/g' | sort -r -k2 | uniq`
cat > $MAKEFILE << END
# This is ${EXEC} Makefile
# For options edit Makefile.in, this file is autogenerated by configure
@@ -505,6 +556,9 @@ else
CFLAGS="$CFLAGS -DHAVE_PATH_MAX"
fi
+check_package "glib-2.0" "glib.h"
+check_package "gmime-2.0" "gmime/gmime.h"
+
check_group $GROUP
if [ $? -ne 0 ] ; then
TARGETS="$TARGETS creategroup"