summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2008-12-29 06:57:30 +0000
committercyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2008-12-29 06:57:30 +0000
commit432edbf68f41a3257e421427ee33c6634b030e77 (patch)
tree8ca9f0ca5d7d9e3074111ce281b2cc30af0bb4e2 /src
parentf5209be18aa0ca53715aa7bb6244804b3913cfad (diff)
Merge branch 'cmake'
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1871 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--src/Makefile135
-rw-r--r--src/bin/anoperc.cmake8
-rw-r--r--src/bin/anoperc.in141
-rw-r--r--src/core/Makefile46
-rw-r--r--src/core/Makefile.sub29
-rwxr-xr-xsrc/core/configure60
-rw-r--r--src/modules/Makefile49
-rw-r--r--src/modules/Makefile.sub28
-rwxr-xr-xsrc/modules/configure65
-rw-r--r--src/protocol/Makefile51
-rw-r--r--src/protocol/Makefile.sub32
-rwxr-xr-xsrc/protocol/configure60
-rw-r--r--src/tools/Makefile39
14 files changed, 743 insertions, 4 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2a8c01d0e..2d6518f5b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -6,6 +6,10 @@ set(SRC_SRCS ${SRC_SRCS_C} ${SRC_SRCS_CPP})
if(NOT MSVC)
list(REMOVE_ITEM SRC_SRCS win32_memory.cpp)
endif(NOT MSVC)
+# If not using Windows, don't include windows.cpp, as it's Windows-specific
+if(NOT WIN32)
+ list(REMOVE_ITEM SRC_SRCS windows.cpp)
+endif(NOT WIN32)
if(CMAKE244_OR_BETTER)
list(SORT SRC_SRCS)
endif(CMAKE244_OR_BETTER)
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 000000000..6395963bb
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,135 @@
+OBJS = actions.o base64.o bots.o botserv.o channels.o chanserv.o commands.o compat.o \
+ config.o datafiles.o encrypt.o events.o hashcomp.o helpserv.o hostserv.o init.o ircd.o language.o log.o mail.o main.o \
+ memory.o memoserv.o messages.o misc.o modules.o news.o nickserv.o operserv.o \
+ process.o send.o servers.o sessions.o slist.o sockutil.o timeout.o users.o module.o modulemanager.o configreader.o
+
+INCLUDES = ../include/commands.h ../include/defs.h ../include/language.h \
+ ../include/pseudo.h ../include/sysconf.h ../include/config.h \
+ ../include/encrypt.h ../include/messages.h ../include/services.h \
+ ../include/timeout.h ../include/datafiles.h ../include/extern.h \
+ ../include/modules.h ../include/slist.h ../include/hashcomp.h
+
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'INSTDIR=${INSTDIR}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' \
+ 'RUNGROUP=${RUNGROUP}' \
+ 'SHARED=${SHARED}' 'MODULEFLAGS=${MODULEFLAGS}' \
+ 'MAKEBIN=${MAKEBIN}'
+
+.c.o:
+ @$(MAKEBIN) $(CC) $(CFLAGS) -I../include/ -c $<
+
+.cpp.o:
+ @$(MAKEBIN) $(CC) $(CFLAGS) -I../include/ -c $<
+
+all: services
+
+distclean: spotless
+distclean_modules: clean_modules spotless
+
+services: $(OBJS) mod_version
+ @$(MAKEBIN) $(CC) $(CFLAGS) $(OBJS) $(ANOPELIBS) $(MLIBS) -o $@ $(LDFLAGS)
+
+$(OBJS): Makefile
+actions.o: actions.c $(INCLUDES)
+base64.o: base64.c $(INCLUDES)
+bots.o: bots.cpp $(INCLUDES)
+botserv.o: botserv.c $(INCLUDES)
+channels.o: channels.c $(INCLUDES)
+chanserv.o: chanserv.c $(INCLUDES)
+commands.o: commands.c $(INCLUDES)
+compat.o: compat.c $(INCLUDES)
+config.o: config.c $(INCLUDES)
+datafiles.o: datafiles.c $(INCLUDES)
+encrypt.o: encrypt.c $(INCLUDES)
+events.o: events.c $(INCLUDES)
+init.o: init.c $(INCLUDES)
+ircd.o: ircd.c $(INCLUDES)
+helpserv.o: helpserv.c $(INCLUDES)
+hostserv.o: hostserv.c $(INCLUDES)
+language.o: language.c $(INCLUDES)
+log.o: log.c $(INCLUDES)
+mail.o: mail.c $(INCLUDES)
+main.o: main.c $(INCLUDES)
+memory.o: memory.c $(INCLUDES)
+memoserv.o: memoserv.c $(INCLUDES)
+messages.o: messages.c $(INCLUDES)
+modules.o: modules.c $(INCLUDES)
+module.o: module.cpp $(INCLUDES)
+modulemanager.o: modulemanager.cpp $(INCLUDES)
+misc.o: misc.c $(INCLUDES)
+news.o: news.c $(INCLUDES)
+nickserv.o: nickserv.c $(INCLUDES)
+operserv.o: operserv.c $(INCLUDES)
+process.o: process.c $(INCLUDES)
+send.o: send.c $(INCLUDES)
+servers.o: servers.c $(INCLUDES)
+sessions.o: sessions.c $(INCLUDES)
+slist.o: slist.c $(INCLUDES)
+sockutil.o: sockutil.c $(INCLUDES)
+timeout.o: timeout.c $(INCLUDES)
+users.o: users.c $(INCLUDES)
+vsnprintf.o: vsnprintf.c $(INCLUDES)
+
+mod_version: mod_version.c $(INCLUDES)
+ @$(MAKEBIN) $(CC) $(CDEFS) $(CFLAGS) $(MODULEFLAGS) -I../include/ -c mod_version.c
+
+modules: DUMMY
+ @modules/configure modules
+ @${MAKE} -C modules ${MAKEARGS} all
+
+protocols: DUMMY
+ @protocol/configure protocol
+ @${MAKE} -C protocol ${MAKEARGS} all
+
+core: DUMMY
+ @core/configure core
+ @${MAKE} -C core ${MAKEARGS} all
+
+clean: clean_modules clean_protocols clean_core
+ rm -f *.o services a.out
+
+clean_modules:
+ @touch modules/Makefile.inc # Horribly ugly...
+ @${MAKE} -C modules clean
+
+clean_protocols:
+ @touch protocol/Makefile.inc
+ @${MAKE} -C protocol clean
+
+clean_core:
+ @touch core/Makefile.inc
+ @${MAKE} -C core clean
+
+spotless:
+ @${MAKE} -C modules distclean
+ @${MAKE} -C protocol distclean
+ @${MAKE} -C core distclean
+
+install: services
+ test -d ${INSTDIR} || mkdir ${INSTDIR}
+ $(INSTALL) services $(INSTDIR)/services
+ $(INSTALL) bin/anoperc $(INSTDIR)/anoperc
+ (cd ../lang ; $(MAKE) install)
+ $(CP) ../data/* $(INSTDIR)/data
+ $(INSTALL) bin/mydbgen $(INSTDIR)/data/mydbgen
+ test -d $(INSTDIR)/data/backups || mkdir $(INSTDIR)/data/backups
+ test -d $(INSTDIR)/data/logs || mkdir $(INSTDIR)/data/logs
+ @if [ "$(INSTDIR)/data/modules" ] ; then \
+ test -d ${INSTDIR}/data/modules || mkdir ${INSTDIR}/data/modules ; \
+ test -d ${INSTDIR}/data/modules/runtime || mkdir ${INSTDIR}/data/modules/runtime ; \
+ (cd modules ; $(MAKE) install) ; \
+ (cd protocol ; ${MAKE} install) ; \
+ (cd core ; ${MAKE} install) ; \
+ fi
+ @if [ "$(RUNGROUP)" ] ; then \
+ echo chgrp -R $(RUNGROUP) $(INSTDIR)/data ; \
+ chgrp -R $(RUNGROUP) $(INSTDIR)/data ; \
+ echo chmod -R g+rw $(INSTDIR)/data ; \
+ chmod -R g+rw $(INSTDIR)/data ; \
+ echo find $(INSTDIR)/data -type d -exec chmod g+xs \'\{\}\' \\\; ; \
+ find $(INSTDIR)/data -type d -exec chmod g+xs '{}' \; ; \
+ fi
+
+DUMMY:
diff --git a/src/bin/anoperc.cmake b/src/bin/anoperc.cmake
index 02c5bf18e..3e7cbec62 100644
--- a/src/bin/anoperc.cmake
+++ b/src/bin/anoperc.cmake
@@ -15,9 +15,9 @@
-ANOPEPID="@DATADIR@/services.pid"
-ANOPROG="@BINDIR@/services"
-LOG="@DATADIR@/logs/"
+ANOPEPID="@INSTDIR@/data/services.pid"
+ANOPROG="@INSTDIR@/services"
+LOG="@INSTDIR@/data/logs/"
ARCVERSION="1.2"
isAnopeRunning () {
@@ -134,7 +134,7 @@ elif [ "$1" = "help" ] ; then
echo "folder or make use of our extensive online support at"
echo "http://www.anope.org/"
fi
-
+
else
echo "Anope Remote Control ($ARCVERSION)"
echo "Usage: $0 [start|stop|status|restart|rehash|version|help]"
diff --git a/src/bin/anoperc.in b/src/bin/anoperc.in
new file mode 100644
index 000000000..3e7cbec62
--- /dev/null
+++ b/src/bin/anoperc.in
@@ -0,0 +1,141 @@
+#!/bin/sh
+#
+# Configuration script for Services
+#
+# (C) 2003-2008 Anope Team
+# Contact us at info@anope.org
+#
+# Please read COPYING and README for further details.
+#
+# Based on the original code of Epona by Lara.
+# Based on the original code of Services by Andy Church.
+#
+# $Id$
+#
+
+
+
+ANOPEPID="@INSTDIR@/data/services.pid"
+ANOPROG="@INSTDIR@/services"
+LOG="@INSTDIR@/data/logs/"
+ARCVERSION="1.2"
+
+isAnopeRunning () {
+if [ ! -f $ANOPEPID ] ; then
+ echo "Warning: Anope is not currently running"
+ exit 1
+fi
+
+PID=`cat $ANOPEPID`
+
+if [ ! `ps auxw | grep $ANOPROG | grep $PID | grep -v -c grep` ] ; then
+ echo "Warning: Anope is not currently running"
+ exit 1
+fi
+}
+
+if [ ! -f $ANOPROG ] ; then
+ echo "Error: $ANOPROG cannot be accessed"
+ exit 1
+fi
+
+
+if [ "$UID" = "0" ] ; then
+ echo "######################################";
+ echo "# Warning: Do NOT run Anope as root! #";
+ echo "######################################";
+ exit 1
+fi
+
+if [ "$1" = "start" ] ; then
+
+if [ -f $ANOPEPID ] ; then
+ PID=`cat $ANOPEPID`
+ if [ `ps auxw | grep $ANOPROG | grep $PID | grep -v -c grep` = 1 ] ; then
+ echo "Warning! Anope is already running"
+ exit 1
+ fi
+fi
+ echo "Starting Anope"
+ shift
+ $ANOPROG $*
+ sleep 1
+ if [ ! -f $ANOPEPID ] ; then
+ echo "Unfortunately it seems Anope did not start successfully"
+ echo "This error has been logged in your Anope Log file"
+ echo "Located in "$LOG""
+ echo "This may help you diagnose the problem"
+ echo "Further help may be available from http://www.anope.org/"
+ exit 1
+ fi
+ PID=`cat $ANOPEPID`
+ if [ ! `ps auxw | grep $ANOPROG | grep $PID | grep -v -c grep` ] ; then
+ echo "Unfortunately it seems Anope did not start successfully"
+ echo "This error has been logged in your Anope Log file"
+ echo "Located in "$LOG""
+ echo "This may help you diagnose the problem"
+ echo "Further help may be available from http://www.anope.org/"
+ exit 1
+ fi
+
+elif [ "$1" = "stop" ] ; then
+ isAnopeRunning
+ echo "Terminating Anope"
+ kill -15 `cat $ANOPEPID`
+
+elif [ "$1" = "status" ] ; then
+ if [ -f $ANOPEPID ] ; then
+ PID=`cat $ANOPEPID`
+ if [ `ps auxw | grep $PID | grep -v -c grep` = 1 ] ; then
+ echo "Anope is currently running"
+ exit 1
+ fi
+ fi
+
+ echo "Anope is not currently running"
+
+## :/ SIGUSR2 is ignored after the first restart so we stop / start Anope for now ##
+elif [ "$1" = "restart" ] ; then
+ isAnopeRunning
+ echo "Restarting Anope"
+ kill -15 `cat $ANOPEPID`
+ sleep 1
+ shift
+ $ANOPROG $*
+
+elif [ "$1" = "rehash" ] ; then
+ isAnopeRunning
+ echo "Saving Databases and Rehashing Configuration"
+ kill -12 `cat $ANOPEPID`
+
+elif [ "$1" = "version" ] ; then
+ $ANOPROG -version
+
+elif [ "$1" = "help" ] ; then
+ if [ "$2" = "paramlist" ] ; then
+ $ANOPROG -help
+ else
+ echo "AnopeRC is a remote control script for easy"
+ echo "controlling of Anope from the command console"
+ echo "$0 start Start Anope"
+ echo " Additional parameters may be passed"
+ echo " (e.g. $0 start -nofork)"
+ echo " For a list type $0 $1 paramlist"
+ echo "$0 stop Shutdown Anope"
+ echo "$0 status Show Anope's Status"
+ echo "$0 restart Restart Anope (Databases will be saved)"
+ echo " Additional parameters may be passed"
+ echo " (e.g. $0 restart -logchan)"
+ echo " For a list type $0 $1 paramlist"
+ echo "$0 rehash Rehash Configuration and Save Databases"
+ echo "$0 version Return Anope Version and Build Information"
+ echo "$0 help Show this help menu"
+ echo "If you need further help please check the /docs/"
+ echo "folder or make use of our extensive online support at"
+ echo "http://www.anope.org/"
+ fi
+
+else
+ echo "Anope Remote Control ($ARCVERSION)"
+ echo "Usage: $0 [start|stop|status|restart|rehash|version|help]"
+fi
diff --git a/src/core/Makefile b/src/core/Makefile
new file mode 100644
index 000000000..f4df49581
--- /dev/null
+++ b/src/core/Makefile
@@ -0,0 +1,46 @@
+include ./Makefile.inc
+
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'INSTDIR=${INSTDIR}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' \
+ 'RUNGROUP=${RUNGROUP}' \
+ 'PROFILE=${PROFILE}' 'SHARED=${SHARED}' \
+ 'MODULEFLAGS=${MODULEFLAGS}' 'MAKEBIN=${MAKEBIN}'
+
+OBJECTS= $(SRCS:.c=.o)
+SO_FILES=$(OBJECTS:.o=.s)
+CDEFS= -rdynamic -Wall
+
+all: modules subs
+
+modules: $(OBJECTS) $(SO_FILES)
+
+install:
+ $(CP) ./*.so $(INSTDIR)/data/modules
+
+distclean: spotless
+
+.c.o:
+ @$(MAKEBIN) $(CC) ${CFLAGS} ${CDEFS} ${MODULEFLAGS} -I../${INCLUDEDIR} -c $<
+
+.o.s:
+ @$(MAKEBIN) $(CC) ${SHARED} ../mod_version.o $< -o $*.so ${PROFILE}
+ @$(TOUCH) $*.s
+
+subs:
+ @for i in $(SUBS); do \
+ echo "make all in $$i..."; \
+ (cd $$i; $(MAKE) $(MAKEARGS) all); done
+
+subs_clean:
+ @for i in $(SUBS); do \
+ echo "cleaning in $$i..."; \
+ (cd $$i; $(MAKE) clean); done
+
+clean: subs_clean
+ rm -f *.o *.s *.so *.c~ core
+
+spotless: subs_clean
+ rm -f *.o *.s *.so *.c~ core Makefile.inc
+
diff --git a/src/core/Makefile.sub b/src/core/Makefile.sub
new file mode 100644
index 000000000..7b1099b37
--- /dev/null
+++ b/src/core/Makefile.sub
@@ -0,0 +1,29 @@
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'INSTDIR=${INSTDIR}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
+ 'RUNGROUP=${RUNGROUP}' \
+ 'PROFILE=${PROFILE}' 'SHARED=${SHARED}' 'MODULEFLAGS=${MODULEFLAGS}'
+
+OBJECTS= $(SRCS:.c=.o)
+SO_FILES=$(OBJECTS:.o=.s)
+CDEFS= -rdynamic -Wall
+
+all: module
+
+module: $(OBJECTS) so
+
+distclean: spotless
+
+.c.o:
+ $(CC) $(CC) ${CFLAGS} ${CDEFS} ${MODULEFLAGS} -I../ -I../../${INCLUDEDIR} -c $<
+
+so:
+ $(CC) ${SHARED} $(OBJECTS) -o ../$(TARGET).so ${PROFILE}
+
+clean:
+ rm -f *.o *.so *.c~ core
+
+spotless: clean
+ rm -f *~ *.o *.so *.c~ core
+
diff --git a/src/core/configure b/src/core/configure
new file mode 100755
index 000000000..92efecd41
--- /dev/null
+++ b/src/core/configure
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+oldpath=`pwd`
+
+if [ $1 ]; then
+ cd $1
+fi
+
+echo2 () {
+ $ECHO2 "$*$ECHO2SUF" # these are defined later
+}
+
+ECHO2SUF=''
+if [ "`echo -n a ; echo -n b`" = "ab" ] ; then
+ ECHO2='echo -n'
+elif [ "`echo 'a\c' ; echo 'b\c'`" = "ab" ] ; then
+ ECHO2='echo' ; ECHO2SUF='\c'
+elif [ "`printf 'a' 2>&1 ; printf 'b' 2>&1`" = "ab" ] ; then
+ ECHO2='printf "%s"'
+else
+ # oh well...
+ ECHO2='echo'
+fi
+export ECHO2 ECHO2SUF
+
+
+echo2 "SRCS=" > ./Makefile.inc
+FIRST=1
+for oldfile in *.c
+do
+ if [ "$FIRST" = 1 ] ; then
+ echo2 " "$oldfile >> ./Makefile.inc
+ else
+ echo "\\" >> ./Makefile.inc
+ echo2 " " $oldfile >> ./Makefile.inc
+ fi
+ FIRST=0
+done
+echo "" >> ./Makefile.inc
+
+echo2 "SUBS=" >> ./Makefile.inc
+FIRST=1
+for dir in *
+do
+ if [ -d $dir ] ; then
+ if [ -f $dir/Makefile ] ; then
+ if [ "$FIRST" = 1 ] ; then
+ echo2 " "$dir >> ./Makefile.inc
+ else
+ echo "\\" >> ./Makefile.inc
+ echo2 " " $dir >> ./Makefile.inc
+ fi
+ FIRST=0
+ fi
+ fi
+done
+
+cd $oldpath
+
+exit 0
diff --git a/src/modules/Makefile b/src/modules/Makefile
new file mode 100644
index 000000000..c964439a8
--- /dev/null
+++ b/src/modules/Makefile
@@ -0,0 +1,49 @@
+include ./Makefile.inc
+
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'INSTDIR=${INSTDIR}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' \
+ 'RUNGROUP=${RUNGROUP}' \
+ 'PROFILE=${PROFILE}' 'SHARED=${SHARED}' 'MODULEFLAGS=${MODULEFLAGS}'\
+ 'MAKEBIN=${MAKEBIN}'
+
+OBJECTS= $(SRCS:.c=.o)
+SO_FILES=$(OBJECTS:.o=.s)
+CDEFS= -rdynamic -Wall
+
+all: modules subs
+
+modules: $(OBJECTS) $(SO_FILES)
+
+install:
+ $(CP) ./*.so $(INSTDIR)/data/modules
+ @for i in $(SUBS); do \
+ echo "make install in $$i..."; \
+ (cd $$i; $(MAKE) $(MAKEARGS) install);done
+
+distclean: spotless
+
+.c.o:
+ @$(MAKEBIN) $(CC) ${CFLAGS} ${CDEFS} ${MODULEFLAGS} -I../${INCLUDEDIR} -c $<
+
+.o.s:
+ @$(MAKEBIN) $(CC) ${SHARED} ../mod_version.o $< -o $*.so ${PROFILE}
+ @$(TOUCH) $*.s
+
+subs:
+ @for i in $(SUBS); do \
+ echo "make all in $$i..."; \
+ (cd $$i; $(MAKE) $(MAKEARGS) all); done
+
+subs_clean:
+ @for i in $(SUBS); do \
+ echo "cleaning in $$i..."; \
+ (cd $$i; $(MAKE) $(MAKEARGS) clean); done
+
+clean: subs_clean
+ rm -f *.o *.s *.so *.c~ core
+
+spotless:
+ rm -f *.o *.s *.so *.c~ core *.so Makefile.inc
+
diff --git a/src/modules/Makefile.sub b/src/modules/Makefile.sub
new file mode 100644
index 000000000..d9011d602
--- /dev/null
+++ b/src/modules/Makefile.sub
@@ -0,0 +1,28 @@
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'INSTDIR=${INSTDIR}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
+ 'RUNGROUP=${RUNGROUP}' \
+ 'PROFILE=${PROFILE}' 'SHARED=${SHARED}' 'MODULEFLAGS=${MODULEFLAGS}'
+
+OBJECTS= $(SRCS:.c=.o)
+SO_FILES=$(OBJECTS:.o=.s)
+CDEFS= -rdynamic -Wall
+
+all: module
+
+module: $(OBJECTS) so
+
+distclean: spotless
+
+.c.o:
+ $(CC) ${CFLAGS} ${CDEFS} ${MODULEFLAGS} -I../ -I../../${INCLUDEDIR} -c $<
+
+so:
+ $(CC) ${SHARED} ../../mod_version.o $(OBJECTS) -o ../$(TARGET).so ${PROFILE}
+
+clean:
+ rm -f *.o *.so *.c~ core
+
+spotless:
+ rm -f *~ *.o *.so *.c~ core
diff --git a/src/modules/configure b/src/modules/configure
new file mode 100755
index 000000000..53a745592
--- /dev/null
+++ b/src/modules/configure
@@ -0,0 +1,65 @@
+#!/bin/sh
+
+oldpath=`pwd`
+
+if [ $1 ]; then
+ cd $1
+fi
+
+echo2 () {
+ $ECHO2 "$*$ECHO2SUF" # these are defined later
+}
+
+ECHO2SUF=''
+if [ "`echo -n a ; echo -n b`" = "ab" ] ; then
+ ECHO2='echo -n'
+elif [ "`echo 'a\c' ; echo 'b\c'`" = "ab" ] ; then
+ ECHO2='echo' ; ECHO2SUF='\c'
+elif [ "`printf 'a' 2>&1 ; printf 'b' 2>&1`" = "ab" ] ; then
+ ECHO2='printf "%s"'
+else
+ # oh well...
+ ECHO2='echo'
+fi
+export ECHO2 ECHO2SUF
+
+
+echo2 "SRCS=" > ./Makefile.inc
+FIRST=1
+for oldfile in *.c
+do
+ if [ "$FIRST" = 1 ] ; then
+ echo2 " "$oldfile >> ./Makefile.inc
+ else
+ echo "\\" >> ./Makefile.inc
+ echo2 " " $oldfile >> ./Makefile.inc
+ fi
+ FIRST=0
+done
+echo "" >> ./Makefile.inc
+
+echo2 "SUBS=" >> ./Makefile.inc
+FIRST=1
+for dir in *
+do
+ if [ -d $dir ] ; then
+ if [ -f $dir/configure ] ; then
+ cd $dir
+ ./configure
+ cd ..
+ fi
+ if [ -f $dir/Makefile ] ; then
+ if [ "$FIRST" = 1 ] ; then
+ echo2 " "$dir >> ./Makefile.inc
+ else
+ echo "\\" >> ./Makefile.inc
+ echo2 " " $dir >> ./Makefile.inc
+ fi
+ FIRST=0
+ fi
+ fi
+done
+
+cd $oldpath
+
+exit 0
diff --git a/src/protocol/Makefile b/src/protocol/Makefile
new file mode 100644
index 000000000..1a064000c
--- /dev/null
+++ b/src/protocol/Makefile
@@ -0,0 +1,51 @@
+include ./Makefile.inc
+
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'INSTDIR=${INSTDIR}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' \
+ 'RUNGROUP=${RUNGROUP}' \
+ 'PROFILE=${PROFILE}' 'SHARED=${SHARED}' 'MODULEFLAGS=${MODULEFLAGS}'\
+ 'MAKEBIN=${MAKEBIN}'
+
+OBJECTS= $(SRCS:.c=.o)
+OBJECTS+= $(SRCS:.cpp=.o)
+SO_FILES=$(OBJECTS:.o=.s)
+CDEFS= -rdynamic -Wall
+
+all: modules subs
+
+modules: $(OBJECTS) $(SO_FILES)
+
+install:
+ $(CP) ./*.so $(INSTDIR)/data/modules
+
+distclean: clean spotless
+
+.c.o:
+ @$(MAKEBIN) $(CC) ${CFLAGS} ${CDEFS} ${MODULEFLAGS} -I../${INCLUDEDIR} -c $<
+
+.cpp.o:
+ @$(MAKEBIN) $(CC) ${CFLAGS} ${CDEFS} ${MODULEFLAGS} -I../${INCLUDEDIR} -c $<
+
+.o.s:
+ @$(MAKEBIN) $(CC) ${SHARED} ../mod_version.o $< -o $*.so ${PROFILE}
+ @$(TOUCH) $*.s
+
+subs:
+ @for i in $(SUBS); do \
+ echo "make all in $$i..."; \
+ (cd $$i; $(MAKE) $(MAKEARGS) all); done
+
+subs_clean:
+ @for i in $(SUBS); do \
+ echo "cleaning in $$i..."; \
+ (cd $$i; $(MAKE) clean); done
+
+clean: subs_clean
+ rm -f *.o *.s *.so *.c~ core
+
+spotless: subs_clean
+ rm -f *.o *.s *.so *.c~ core *.so Makefile.inc
+
+
diff --git a/src/protocol/Makefile.sub b/src/protocol/Makefile.sub
new file mode 100644
index 000000000..12502d87e
--- /dev/null
+++ b/src/protocol/Makefile.sub
@@ -0,0 +1,32 @@
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'INSTDIR=${INSTDIR}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
+ 'RUNGROUP=${RUNGROUP}' \
+ 'PROFILE=${PROFILE}' 'SHARED=${SHARED}' 'MODULEFLAGS=${MODULEFLAGS}'
+
+OBJECTS= $(SRCS:.c=.o)
+SO_FILES=$(OBJECTS:.o=.s)
+CDEFS= -rdynamic -Wall
+
+all: module
+
+module: $(OBJECTS) so
+
+distclean: spotless
+
+.c.o:
+ $(CC) ${CFLAGS} ${CDEFS} ${MODULEFLAGS} -I../ -I../../${INCLUDEDIR} -c $<
+
+.cpp.o:
+ $(CC) ${CFLAGS} ${CDEFS} ${MODULEFLAGS} -I../ -I../../${INCLUDEDIR} -c $<
+
+so:
+ $(CC) ${SHARED} $(OBJECTS) -o ../$(TARGET).so ${PROFILE}
+
+clean:
+ rm -f *.o *.so *.c~ core
+
+spotless: clean
+ rm -f *~ *.o *.so *.c~ core
+
diff --git a/src/protocol/configure b/src/protocol/configure
new file mode 100755
index 000000000..63f522d38
--- /dev/null
+++ b/src/protocol/configure
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+oldpath=`pwd`
+
+if [ $1 ]; then
+ cd $1
+fi
+
+echo2 () {
+ $ECHO2 "$*$ECHO2SUF" # these are defined later
+}
+
+ECHO2SUF=''
+if [ "`echo -n a ; echo -n b`" = "ab" ] ; then
+ ECHO2='echo -n'
+elif [ "`echo 'a\c' ; echo 'b\c'`" = "ab" ] ; then
+ ECHO2='echo' ; ECHO2SUF='\c'
+elif [ "`printf 'a' 2>&1 ; printf 'b' 2>&1`" = "ab" ] ; then
+ ECHO2='printf "%s"'
+else
+ # oh well...
+ ECHO2='echo'
+fi
+export ECHO2 ECHO2SUF
+
+
+echo2 "SRCS=" > ./Makefile.inc
+FIRST=1
+for oldfile in `ls -1 *.c *.cpp`
+do
+ if [ "$FIRST" = 1 ] ; then
+ echo2 " "$oldfile >> ./Makefile.inc
+ else
+ echo "\\" >> ./Makefile.inc
+ echo2 " " $oldfile >> ./Makefile.inc
+ fi
+ FIRST=0
+done
+echo "" >> ./Makefile.inc
+
+echo2 "SUBS=" >> ./Makefile.inc
+FIRST=1
+for dir in *
+do
+ if [ -d $dir ] ; then
+ if [ -f $dir/Makefile ] ; then
+ if [ "$FIRST" = 1 ] ; then
+ echo2 " "$dir >> ./Makefile.inc
+ else
+ echo "\\" >> ./Makefile.inc
+ echo2 " " $dir >> ./Makefile.inc
+ fi
+ FIRST=0
+ fi
+ fi
+done
+
+cd $oldpath
+
+exit 0
diff --git a/src/tools/Makefile b/src/tools/Makefile
new file mode 100644
index 000000000..5e8ec178c
--- /dev/null
+++ b/src/tools/Makefile
@@ -0,0 +1,39 @@
+SRCS = anopesmtp.c db-merger.c db-convert.c
+OBJS = $(SRCS:.c=.o)
+
+INCLUDES = ../../include/services.h
+
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'INSTDIR=${INSTDIR}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' \
+ 'RUNGROUP=${RUNGROUP}' 'MAKEBIN=${MAKEBIN}'
+
+.c.o:
+ @$(MAKEBIN) $(CC) $(CFLAGS) -I../../include/ -c $<
+
+all: ${OBJS}
+
+distclean: spotless
+
+anopesmpt: $(OBJS)
+ $(CC) $(CFLAGS) $(OBJS) $(ANOPELIBS) $(MLIBS) -o $@ $(LDFLAGS)
+
+$(OBJS): Makefile
+anopesmtp.o: anopesmtp.c $(INCLUDES)
+db-merger.o: db-merger.c $(INCLUDES)
+db-convert.o: db-convert.c $(INCLUDES)
+
+clean:
+ rm -f *.o anopesmtp a.out db-merger db-convert
+
+spotless: clean
+
+install: anopesmtp db-merger db-convert
+ test -d ${INSTDIR} || mkdir ${INSTDIR}
+ test -d $(INSTDIR)/tools || mkdir $(INSTDIR)/tools
+ $(INSTALL) anopesmtp $(INSTDIR)/tools/anopesmtp
+ $(INSTALL) db-merger $(INSTDIR)/tools/db-merger
+ $(INSTALL) db-convert $(INSTDIR)/tools/db-convert
+
+DUMMY: