diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2008-11-01 18:01:05 +0300 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2008-11-01 18:01:05 +0300 |
commit | 2aa9c74f1c449da92f6faf870f8cc801a83bb08b (patch) | |
tree | 33f0f941f08583fd0c4c3653cadde8d6ce8426c2 /configure | |
parent | cc5343692b448c27485a24ea7f1b24d714bb82f6 (diff) | |
download | rspamd-2aa9c74f1c449da92f6faf870f8cc801a83bb08b.tar.gz rspamd-2aa9c74f1c449da92f6faf870f8cc801a83bb08b.zip |
* Reorganize structure of source files
* Adopt build system for new structure
--HG--
rename : cfg_file.h => src/cfg_file.h
rename : cfg_file.l => src/cfg_file.l
rename : cfg_file.y => src/cfg_file.y
rename : cfg_utils.c => src/cfg_utils.c
rename : controller.c => src/controller.c
rename : filter.c => src/filter.c
rename : filter.h => src/filter.h
rename : fstring.c => src/fstring.c
rename : fstring.h => src/fstring.h
rename : main.c => src/main.c
rename : main.h => src/main.h
rename : mem_pool.c => src/mem_pool.c
rename : mem_pool.h => src/mem_pool.h
rename : memcached-test.c => src/memcached-test.c
rename : memcached.c => src/memcached.c
rename : memcached.h => src/memcached.h
rename : perl.c => src/perl.c
rename : perl.h => src/perl.h
rename : plugins/regexp.c => src/plugins/regexp.c
rename : plugins/surbl.c => src/plugins/surbl.c
rename : protocol.c => src/protocol.c
rename : protocol.h => src/protocol.h
rename : upstream.c => src/upstream.c
rename : upstream.h => src/upstream.h
rename : url.c => src/url.c
rename : url.h => src/url.h
rename : util.c => src/util.c
rename : util.h => src/util.h
rename : worker.c => src/worker.c
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 115 |
1 files changed, 71 insertions, 44 deletions
@@ -21,6 +21,8 @@ YACC_OUTPUT="cfg_yacc.c" LEX_OUTPUT="cfg_lex.c" CONFIG="config.h" +SRCDIR="src" +OBJDIR="src/.obj" SOURCES="upstream.c cfg_utils.c memcached.c main.c util.c controller.c worker.c fstring.c url.c perl.c protocol.c mem_pool.c filter.c plugins/regexp.c plugins/surbl.c ${LEX_OUTPUT} ${YACC_OUTPUT}" MODULES="surbl regexp" @@ -30,7 +32,7 @@ CFLAGS="$CFLAGS -Wunused-value -ggdb -I${LOCALBASE}/include" CFLAGS="$CFLAGS " LDFLAGS="$LDFLAGS -L/usr/lib -L${LOCALBASE}/lib" OPT_FLAGS="-O -pipe -fno-omit-frame-pointer" -DEPS="config.h cfg_file.h memcached.h util.h main.h upstream.h fstring.h url.h perl.h mem_pool.h protocol.h filter.h ${LEX_OUTPUT} ${YACC_OUTPUT}" +DEPS="$SRCDIR/config.h $SRCDIR/cfg_file.h $SRCDIR/memcached.h $SRCDIR/util.h $SRCDIR/main.h $SRCDIR/upstream.h $SRCDIR/fstring.h $SRCDIR/url.h $SRCDIR/perl.h $SRCDIR/mem_pool.h $SRCDIR/protocol.h $SRCDIR/filter.h $SRCDIR/${LEX_OUTPUT} $SRCDIR/${YACC_OUTPUT}" EXEC=rspamd USER=postfix GROUP=postfix @@ -52,14 +54,14 @@ TARGETS="${EXEC}" prepare_config() { - echo "#ifndef CONFIG_H_IN" > $CONFIG - echo "#define CONFIG_H_IN" >> $CONFIG - cat "$CONFIG.in" >> $CONFIG + echo "#ifndef CONFIG_H_IN" > $SRCDIR/$CONFIG + echo "#define CONFIG_H_IN" >> $SRCDIR/$CONFIG + cat "$CONFIG.in" >> $SRCDIR/$CONFIG } finish_config() { - echo "#endif" >> $CONFIG + echo "#endif" >> $SRCDIR/$CONFIG } cleanup() @@ -71,7 +73,7 @@ cleanup() have_opt() { - echo "#define HAVE_$1" >> $CONFIG + echo "#define HAVE_$1" >> $SRCDIR/$CONFIG OPTS="$OPTS HAVE_$1" } @@ -130,6 +132,20 @@ check_yacc() } +check_util() +{ + UTIL=`PATH="$PATH:$PREFIX/bin:$LOCALBASE/bin" which $1` + echo -n "Testing for $1: " + if [ -x $UTIL ] ; then + echo "found -> $UTIL" + return 0 + else + echo "not found" + exit 1 + fi + +} + check_function() { FUNCTION=$1 @@ -371,11 +387,11 @@ check_os() INSTALL="/usr/bin/install -C -S -v" MKDIR="/usr/bin/install -d -v" MANPATH="${PREFIX}/man" - echo "#define FREEBSD" >> $CONFIG ;; + echo "#define FREEBSD" >> $SRCDIR/$CONFIG ;; Linux*) OS="linux" CFLAGS="${CFLAGS} -D_GNU_SOURCE" - echo "#define LINUX" >> $CONFIG ;; + echo "#define LINUX" >> $SRCDIR/$CONFIG ;; Solaris*) OS="solaris" CFLAGS="${CFLAGS}" - echo "#define SOLARIS" >> $CONFIG ;; + echo "#define SOLARIS" >> $SRCDIR/$CONFIG ;; *) OS="unknown" ;; esac } @@ -452,23 +468,22 @@ END write_modules() { # Write modules init function - echo "#ifndef MODULES_H" > modules.h - echo "#include \"config.h\"" >> modules.h - echo "#include \"modules.h\"" > modules.c - echo "module_t modules[] = {" >> modules.c; + echo "#ifndef MODULES_H" > $SRCDIR/modules.h + echo "#include \"config.h\"" >> $SRCDIR/modules.h + echo "#include \"modules.h\"" > $SRCDIR/modules.c + echo "module_t modules[] = {" >> $SRCDIR/modules.c; modules_num=0 for m in $MODULES ; do - echo "{\"${m}\", ${m}_module_init, ${m}_module_config, ${m}_module_reconfig}," >> modules.c - echo "int ${m}_module_init(struct config_file *cfg, struct module_ctx **ctx);" >> modules.h - echo "int ${m}_module_config(struct config_file *cfg);" >> modules.h - echo "int ${m}_module_reconfig(struct config_file *cfg);" >> modules.h + echo "{\"${m}\", ${m}_module_init, ${m}_module_config, ${m}_module_reconfig}," >> $SRCDIR/modules.c + echo "int ${m}_module_init(struct config_file *cfg, struct module_ctx **ctx);" >> $SRCDIR/modules.h + echo "int ${m}_module_config(struct config_file *cfg);" >> $SRCDIR/modules.h + echo "int ${m}_module_reconfig(struct config_file *cfg);" >> $SRCDIR/modules.h modules_num=`expr $modules_num + 1` done - echo "};" >> modules.c - echo "#endif" >> modules.h - echo "#define MODULES_NUM $modules_num" >> $CONFIG + echo "};" >> $SRCDIR/modules.c + echo "#endif" >> $SRCDIR/modules.h + echo "#define MODULES_NUM $modules_num" >> $SRCDIR/$CONFIG SOURCES="$SOURCES modules.c" - OBJECTS=`echo $SOURCES | sed -e 's/\.c/\.o/g'` } @@ -494,8 +509,8 @@ write_subdirs() for sub in $SUBDIRS ; do cp $MAKEFILE $sub/$MAKEFILE saved_pwd=`pwd` - old_objs=`echo $OBJECTS | sed -e 's/\([^. ]*\.o\)/..\/\1/g'` - old_srcs=`echo $SOURCES | sed -e 's/\([^. ]*\.c\)/..\/\1/g'` + old_objs=`echo $OBJECTS | sed -e 's/\([^. ]*\.o\)/..\/%%OBJDIR%%\/\1/g' | sed -e "s,%%OBJDIR%%,${OBJDIR},g"` + old_srcs=`echo $SOURCES | sed -e 's/\([^. ]*\.c\)/..\/%%SRCDIR%%\/\1/g' | sed -e "s,%%SRCDIR%%,${SRCDIR},g"` cd $sub sub_src="`echo *.c`" sub_obj="`echo $sub_src | sed -e 's/\.c/\.o/g'`" @@ -547,10 +562,15 @@ write_result() echo "Cflags: $CFLAGS" >> config.log echo "Ldflags: $LDFLAGS" >> config.log echo "Libs: $LIBS" >> config.log - echo "#define RVERSION \"${VERSION}\"" >> $CONFIG - echo "#define HASH_COMPAT" >> $CONFIG + echo "#define RVERSION \"${VERSION}\"" >> $SRCDIR/$CONFIG + echo "#define HASH_COMPAT" >> $SRCDIR/$CONFIG write_modules + for _s in $SOURCES ; do + _o=`echo $_s | awk -F '/' '{split($NF, A, "."); print "%%OBJDIR%%/"A[1]".o"}' | sed -e "s,%%OBJDIR%%,${OBJDIR},"` + OBJECTS="$OBJECTS $_o" + SRC_OBJ="$SRC_OBJ $_s#$_o" + done write_perl # Make CFLAGS more readable CFLAGS="$CFLAGS $PERLCFLAGS" @@ -571,6 +591,9 @@ CFLAGS=$CFLAGS LDFLAGS=$LDFLAGS # Libraries to link LIBS=$LIBS +# Directories for sources and objects +SRCDIR=$SRCDIR +OBJDIR=$OBJDIR # ${EXEC} sources SOURCES=$SOURCES # ${EXEC} objects @@ -615,20 +638,21 @@ END ${EXEC}: \$(OBJECTS) \$(CC) \$(PTHREAD_LDFLAGS) \$(LDFLAGS) \$(OBJECTS) \$(LIBS) -o \$(EXEC) END - for o in $OBJECTS ; do - SO=`echo $o | sed -e 's/\.o/\.c/g'` + for o in $SRC_OBJ ; do + SO=`echo $o | cut -d '#' -f 1` + O=`echo $o | cut -d '#' -f 2` cat >> $MAKEFILE << END -${o}: \$(DEPS) ${SO} - \$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(PTHREAD_CFLAGS) -o ${o} -c ${SO} +${O}: \$(DEPS) ${SRCDIR}/${SO} + \$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(PTHREAD_CFLAGS) -o ${O} -c ${SRCDIR}/${SO} END done cat >> $MAKEFILE << END -${LEX_OUTPUT}: cfg_file.h ${LEX_SRC} ${YACC_OUTPUT} - \$(LEX) -o${LEX_OUTPUT} ${LEX_SRC} +${SRCDIR}/${LEX_OUTPUT}: \$(SRCDIR)/cfg_file.h \$(SRCDIR)/${LEX_SRC} \$(SRCDIR)/${YACC_OUTPUT} + \$(LEX) -o\$(SRCDIR)/${LEX_OUTPUT} \$(SRCDIR)/${LEX_SRC} -${YACC_OUTPUT}: cfg_file.h ${YACC_SRC} - \$(YACC) -d -o ${YACC_OUTPUT} ${YACC_SRC} +${SRCDIR}/${YACC_OUTPUT}: \$(SRCDIR)/cfg_file.h \$(SRCDIR)/${YACC_SRC} + \$(YACC) -d -o \$(SRCDIR)/${YACC_OUTPUT} \$(SRCDIR)/${YACC_SRC} END } @@ -707,6 +731,9 @@ check_compiler check_make check_lex check_yacc +check_util "sed" +check_util "awk" +check_util "cut" check_os check_lib "event" "event.h" @@ -725,10 +752,10 @@ check_lib "m" check_lib "pcre" check_lib "md" if [ $? -eq 1 ] ; then - cp $COMPAT_DIR/md5.c . - cp $COMPAT_DIR/md5.h . + cp $COMPAT_DIR/md5.c $SRCDIR + cp $COMPAT_DIR/md5.h $SRCDIR SOURCES="$SOURCES md5.c" - DEPS="$DEPS md5.h" + DEPS="$DEPS $SRCDIR/md5.h" have_opt "OWN_MD5" fi @@ -744,10 +771,10 @@ fi check_function "strlcpy" "string.h" if [ $? -eq 1 ] ; then - cp $COMPAT_DIR/strlcpy.c . - cp $COMPAT_DIR/strlcpy.h . + cp $COMPAT_DIR/strlcpy.c $SRCDIR + cp $COMPAT_DIR/strlcpy.h $SRCDIR SOURCES="$SOURCES strlcpy.c" - DEPS="$DEPS strlcpy.h" + DEPS="$DEPS $SRCDIR/strlcpy.h" have_opt "STRLCPY_H" fi check_function "bzero" "string.h" @@ -790,13 +817,13 @@ check_include "strlcpy.h" check_include "md5.h" check_include "sys/queue.h" if [ $? -eq 1 ] ; then - cp $COMPAT_DIR/queue.h . - DEPS="$DEPS queue.h" + cp $COMPAT_DIR/queue.h $SRCDIR + DEPS="$DEPS $SRCDIR/queue.h" fi check_macro "SLIST_FOREACH_SAFE" "sys/queue.h" if [ $? -eq 1 ] ; then - cp $COMPAT_DIR/queue.h . - DEPS="$DEPS queue.h" + cp $COMPAT_DIR/queue.h $SRCDIR + DEPS="$DEPS $SRCDIR/queue.h" have_opt "OWN_QUEUE_H" fi @@ -805,7 +832,7 @@ if [ $? -eq 1 ] ; then check_macro "MAXPATHLEN" "sys/param.h" if [ $? -eq 1 ] ; then have_opt "MAXPATHLEN" - echo "#define MAXPATHLEN 4096" >> $CONFIG + echo "#define MAXPATHLEN 4096" >> $SRCDIR/$CONFIG else have_opt "MAXPATHLEN" fi |