diff options
author | cyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-12-29 06:57:30 +0000 |
---|---|---|
committer | cyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-12-29 06:57:30 +0000 |
commit | 432edbf68f41a3257e421427ee33c6634b030e77 (patch) | |
tree | 8ca9f0ca5d7d9e3074111ce281b2cc30af0bb4e2 /src | |
parent | f5209be18aa0ca53715aa7bb6244804b3913cfad (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.txt | 4 | ||||
-rw-r--r-- | src/Makefile | 135 | ||||
-rw-r--r-- | src/bin/anoperc.cmake | 8 | ||||
-rw-r--r-- | src/bin/anoperc.in | 141 | ||||
-rw-r--r-- | src/core/Makefile | 46 | ||||
-rw-r--r-- | src/core/Makefile.sub | 29 | ||||
-rwxr-xr-x | src/core/configure | 60 | ||||
-rw-r--r-- | src/modules/Makefile | 49 | ||||
-rw-r--r-- | src/modules/Makefile.sub | 28 | ||||
-rwxr-xr-x | src/modules/configure | 65 | ||||
-rw-r--r-- | src/protocol/Makefile | 51 | ||||
-rw-r--r-- | src/protocol/Makefile.sub | 32 | ||||
-rwxr-xr-x | src/protocol/configure | 60 | ||||
-rw-r--r-- | src/tools/Makefile | 39 |
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: |