summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2008-12-29 20:07:38 +0000
committercyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2008-12-29 20:07:38 +0000
commitd6bb55476c9aa4771e2b7f24cee05325a1df4117 (patch)
treeed830d3c2c748f4c1ed6de25922461d701a805de /src
parent0bb13ddf57c968db37a997851650d768641b3528 (diff)
Revived Autotools from the grave, although it'll need some tweaking to work alongside CMake now. (In other words, don't use this commit, I committed this so I don't have to re-add these files again if I screw something up.)
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1876 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r--src/Makefile139
-rw-r--r--src/bin/anoperc.in141
-rw-r--r--src/core/Makefile46
-rw-r--r--src/core/Makefile.sub29
-rw-r--r--src/core/Makefile.win3224
-rwxr-xr-xsrc/core/configure60
-rw-r--r--src/makefile.win32117
-rw-r--r--src/modules/Makefile49
-rw-r--r--src/modules/Makefile.sub28
-rwxr-xr-xsrc/modules/configure65
-rw-r--r--src/modules/makefile.inc.win322
-rw-r--r--src/modules/makefile.sub.win3219
-rw-r--r--src/modules/makefile.win3241
-rw-r--r--src/protocol/Makefile51
-rw-r--r--src/protocol/Makefile.sub32
-rw-r--r--src/protocol/Makefile.win3229
-rwxr-xr-xsrc/protocol/configure60
-rw-r--r--src/tools/Makefile39
-rw-r--r--src/tools/Makefile.win3229
-rw-r--r--src/win32.rc.template90
20 files changed, 1090 insertions, 0 deletions
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 000000000..bde534274
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,139 @@
+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
+SRCS = actions.c base64.c bots.cpp botserv.c channels.c chanserv.c commands.c compat.c \
+ config.c datafiles.c encrypt.c events.c hashcomp.cpp helpserv.c hostserv.c init.c ircd.c language.c log.c mail.c main.c \
+ memory.c memoserv.c messages.c misc.c modules.c news.c nickserv.c operserv.c \
+ process.c send.c servers.c sessions.c s sockutil.c timeout.c users.c module.cpp modulemanager.cpp configreader.cpp
+
+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}' 'BINDEST=${BINDEST}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
+ 'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' \
+ '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 ${BINDEST} || mkdir ${BINDEST}
+ $(INSTALL) services $(BINDEST)/services
+ $(INSTALL) bin/anoperc $(BINDEST)/anoperc
+ (cd ../lang ; $(MAKE) install)
+ $(CP) ../data/* $(DATDEST)
+ $(INSTALL) bin/mydbgen $(DATDEST)/mydbgen
+ test -d $(DATDEST)/backups || mkdir $(DATDEST)/backups
+ test -d $(DATDEST)/logs || mkdir $(DATDEST)/logs
+ @if [ "$(MODULE_PATH)" ] ; then \
+ test -d ${MODULE_PATH} || mkdir ${MODULE_PATH} ; \
+ test -d ${MODULE_PATH}/runtime || mkdir ${MODULE_PATH}/runtime ; \
+ (cd modules ; $(MAKE) install) ; \
+ (cd protocol ; ${MAKE} install) ; \
+ (cd core ; ${MAKE} install) ; \
+ fi
+ @if [ "$(RUNGROUP)" ] ; then \
+ echo chgrp -R $(RUNGROUP) $(DATDEST) ; \
+ chgrp -R $(RUNGROUP) $(DATDEST) ; \
+ echo chmod -R g+rw $(DATDEST) ; \
+ chmod -R g+rw $(DATDEST) ; \
+ echo find $(DATDEST) -type d -exec chmod g+xs \'\{\}\' \\\; ; \
+ find $(DATDEST) -type d -exec chmod g+xs '{}' \; ; \
+ fi
+
+DUMMY:
diff --git a/src/bin/anoperc.in b/src/bin/anoperc.in
new file mode 100644
index 000000000..4f4961c9c
--- /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="@DATDEST@/services.pid"
+ANOPROG="@BINDEST@/services"
+LOG="@DATDEST@/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..1fba36e5e
--- /dev/null
+++ b/src/core/Makefile
@@ -0,0 +1,46 @@
+include ./Makefile.inc
+
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'BINDEST=${BINDEST}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
+ 'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' \
+ '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 $(MODULE_PATH)
+
+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..9fbadf3b0
--- /dev/null
+++ b/src/core/Makefile.sub
@@ -0,0 +1,29 @@
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'BINDEST=${BINDEST}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
+ 'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' \
+ '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/Makefile.win32 b/src/core/Makefile.win32
new file mode 100644
index 000000000..75e629b8d
--- /dev/null
+++ b/src/core/Makefile.win32
@@ -0,0 +1,24 @@
+include ../../Makefile.inc.win32
+
+SRCS=bs_act.c bs_assign.c bs_badwords.c bs_bot.c bs_botlist.c bs_fantasy.c bs_fantasy_kick.c bs_fantasy_kickban.c bs_fantasy_owner.c bs_fantasy_seen.c bs_help.c bs_info.c bs_kick.c bs_say.c bs_set.c bs_unassign.c cs_access.c cs_akick.c cs_ban.c cs_clear.c cs_drop.c cs_forbid.c cs_getkey.c cs_getpass.c cs_help.c cs_identify.c cs_info.c cs_invite.c cs_kick.c cs_list.c cs_logout.c cs_modes.c cs_register.c cs_sendpass.c cs_set.c cs_status.c cs_suspend.c cs_topic.c cs_xop.c enc_none.c enc_md5.c enc_old.c he_help.c hs_del.c hs_delall.c hs_group.c hs_help.c hs_list.c hs_off.c hs_on.c hs_set.c hs_setall.c ms_cancel.c ms_check.c ms_del.c ms_help.c ms_info.c ms_list.c ms_read.c ms_rsend.c ms_send.c ms_sendall.c ms_set.c ms_staff.c ns_access.c ns_alist.c ns_drop.c ns_forbid.c ns_getemail.c ns_getpass.c ns_ghost.c ns_group.c ns_help.c ns_identify.c ns_info.c ns_list.c ns_logout.c ns_recover.c ns_register.c ns_release.c ns_sendpass.c ns_set.c ns_saset.c ns_status.c ns_suspend.c ns_update.c os_admin.c os_akill.c os_chankill.c os_chanlist.c os_clearmodes.c os_defcon.c os_global.c os_help.c os_ignore.c os_jupe.c os_kick.c os_logonnews.c os_mode.c os_modinfo.c os_modlist.c os_modload.c os_modunload.c os_noop.c os_oline.c os_oper.c os_opernews.c os_quit.c os_randomnews.c os_raw.c os_reload.c os_restart.c os_session.c os_set.c os_sgline.c os_shutdown.c os_sqline.c os_staff.c os_stats.c os_svsnick.c os_szline.c os_umode.c os_update.c os_userlist.c ss_main.c
+OBJECTS= $(SRCS:.c=.dll)
+CFLAGS=/LD /MD /D MODULE_COMPILE $(CFLAGS) /I"../../include"
+LFLAGS=/link ../anope.lib wsock32.lib $(LIBS) $(LFLAGS) $(MYSQL_LIB_PATH) /export:init_module /export:destroy_module /VERSION:$(VERSION)
+
+all: $(OBJECTS)
+
+distclean: clean spotless
+
+.c.dll:
+ $(CC) $(CFLAGS) $< ..\mod_version.c $(LFLAGS)
+
+clean:
+ -@del *.obj
+
+spotless: clean
+ -@del *.dll *.lib *.exp *.manifest
+
+install:
+ -@mkdir ..\..\$(DATDEST)\modules
+ -@mkdir ..\..\$(DATDEST)\modules\runtime
+ -@copy *.dll ..\..\$(DATDEST)\modules
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/makefile.win32 b/src/makefile.win32
new file mode 100644
index 000000000..7558c1ad6
--- /dev/null
+++ b/src/makefile.win32
@@ -0,0 +1,117 @@
+# Make file for Win32
+#
+# (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:$
+#
+
+# Source Makefile
+
+include ../Makefile.inc.win32
+
+###########################################################################
+
+OBJS = actions.obj base64.obj bots.obj botserv.obj channels.obj chanserv.obj commands.obj compat.obj \
+ config.obj datafiles.obj encrypt.obj events.obj helpserv.obj hostserv.obj \
+ init.obj ircd.obj language.obj log.obj mail.obj main.obj memory.obj \
+ memoserv.obj messages.obj misc.obj modules.obj mod_version.obj news.obj nickserv.obj operserv.obj \
+ process.obj send.obj servers.obj sessions.obj slist.obj sockutil.obj \
+ timeout.obj users.obj module.obj modulemanager.obj hashcomp.obj configreader.obj
+
+SRCS = actions.c base64.c botserv.c bots.cpp channels.c chanserv.c commands.c compat.c \
+ config.c datafiles.c encrypt.c events.c helpserv.c hostserv.c init.c ircd.c \
+ language.c log.c mail.c main.c memory.c memoserv.c messages.c misc.c \
+ modules.c mod_version.c news.c nickserv.c operserv.c process.c send.c servers.obj sessions.c \
+ slist.c sockutil.c timeout.c users.c module.cpp modulemanager.cpp hashcomp.cpp configreader.cpp
+
+###########################################################################
+
+.c.obj:
+ $(CC) $(CFLAGS) -c $<
+
+.cpp.obj:
+ $(CC) $(CFLAGS) -c $<
+
+
+all: $(PROGRAM)
+
+$(PROGRAM): $(OBJS) win32.res
+ $(CC) $(OBJS) win32.res /link /debug /out:$(PROGRAM) /implib:anope.lib $(LIBS) $(LFLAGS) $(MLIBS) $(ELIBS)
+
+spotless:
+ -@erase *.obj *.exe *.exp *.lib tools\*.exe *.res win32.rc *.manifest
+
+install:
+ -@copy anope.exe ..\anope.exe
+ -@mkdir ..\$(DATDEST)\bin
+ -@copy bin\* ..\$(DATDEST)\bin
+ -@copy anope.exe.manifest ..\anope.exe.manifest
+
+win32.res: win32.rc
+ $(RC) /l 0x409 $(RC_FLAGS) /fowin32.res win32.rc
+
+
+###########################################################################
+
+# Catch any changes in compilation options at the top of this file
+$(OBJS):
+
+actions.obj: actions.c ..\include\services.h
+base64.obj: base64.c ..\include\services.h
+bots.obj: bots.cpp ..\include\services.h
+botserv.obj: botserv.c ..\include\services.h ..\include\pseudo.h ..\include\language.h
+channels.obj: channels.c ..\include\services.h
+chanserv.obj: chanserv.c ..\include\services.h ..\include\pseudo.h
+commands.obj: commands.c ..\include\services.h ..\include\commands.h ..\include\language.h
+compat.obj: compat.c ..\include\services.h
+config.obj: config.c ..\include\services.h
+datafiles.obj: datafiles.c ..\include\services.h ..\include\datafiles.h
+encrypt.obj: encrypt.c ..\include\encrypt.h ..\include\sysconf.h
+events.obj: events.c ..\include\modules.h ..\include\language.h ..\include\version.h
+init.obj: init.c ..\include\services.h
+ircd.obj: ircd.c ..\include\services.h
+hashcomp.obj: hashcomp.cpp ..\include\services.h ..\include\hashcomp.h
+hostserv.obj: hostserv.c ..\include\services.h ..\include\pseudo.h
+language.obj: language.c ..\include\services.h ..\include\language.h
+list.obj: list.c ..\include\services.h
+log.obj: log.c ..\include\services.h ..\include\pseudo.h
+mail.obj: mail.c ..\include\services.h ..\include\language.h
+main.obj: main.c ..\include\services.h ..\include\timeout.h ..\include\version.h
+memory.obj: memory.c ..\include\services.h
+memoserv.obj: memoserv.c ..\include\services.h ..\include\pseudo.h
+messages.obj: messages.c ..\include\services.h ..\include\messages.h ..\include\language.h
+modules.obj: modules.c ..\include\modules.h ..\include\language.h ..\include\version.h
+module.obj: module.cpp ..\include\modules.h ..\include\language.h ..\include\version.h
+modulemanager.obj: modulemanager.cpp ..\include\modules.h ..\include\language.h ..\include\version.h
+mod_version.obj: mod_version.c ..\include\modules.h ..\include\version.h
+misc.obj: misc.c ..\include\services.h ..\include\language.h
+news.obj: news.c ..\include\services.h ..\include\pseudo.h
+nickserv.obj: nickserv.c ..\include\services.h ..\include\pseudo.h
+operserv.obj: operserv.c ..\include\services.h ..\include\pseudo.h
+process.obj: process.c ..\include\services.h ..\include\messages.h
+send.obj: send.c ..\include\services.h
+servers.obj: servers.c ..\include\services.h
+sessions.obj: sessions.c ..\include\services.h ..\include\pseudo.h
+slist.obj: slist.c ..\include\services.h ..\include\slist.h
+sockutil.obj: sockutil.c ..\include\services.h
+timeout.obj: timeout.c ..\include\services.h ..\include\timeout.h
+users.obj: users.c ..\include\services.h
+vsnprintf.obj: vsnprintf.c
+
+###########################################################################
+
+..\include\services.h: ..\include\sysconf.h ..\include\config.h ..\include\extern.h
+
+..\include\extern.h: ..\include\slist.h
+
+..\include\pseudo.h: ..\include\commands.h ..\include\language.h ..\include\timeout.h ..\include\encrypt.h ..\include\datafiles.h ..\include\slist.h
+
+###########################################################################
+
+FRC:
diff --git a/src/modules/Makefile b/src/modules/Makefile
new file mode 100644
index 000000000..dce685230
--- /dev/null
+++ b/src/modules/Makefile
@@ -0,0 +1,49 @@
+include ./Makefile.inc
+
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'BINDEST=${BINDEST}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
+ 'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' \
+ '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 $(MODULE_PATH)
+ @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..7697249bf
--- /dev/null
+++ b/src/modules/Makefile.sub
@@ -0,0 +1,28 @@
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'BINDEST=${BINDEST}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
+ 'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' \
+ '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/modules/makefile.inc.win32 b/src/modules/makefile.inc.win32
new file mode 100644
index 000000000..f6a646329
--- /dev/null
+++ b/src/modules/makefile.inc.win32
@@ -0,0 +1,2 @@
+SRCS=cs_appendtopic.c cs_enforce.c cs_tban.c ns_maxemail.c hs_request.c os_info.c bs_fantasy_unban.c
+SUBS=test
diff --git a/src/modules/makefile.sub.win32 b/src/modules/makefile.sub.win32
new file mode 100644
index 000000000..4a811622e
--- /dev/null
+++ b/src/modules/makefile.sub.win32
@@ -0,0 +1,19 @@
+include ../../../Makefile.inc.win32
+
+OBJECTS= $(SRCS:.c=.obj)
+CFLAGS=/nologo /LD /MD /D MODULE_COMPILE $(CFLAGS) /I"../../../include" /I "../"
+LFLAGS=/nologo ../../anope.lib wsock32.lib $(LIBS) $(LFLAGS) $(MYSQL_LIB_PATH) /export:AnopeInit /export:AnopeFini /OUT:$(TARGET)
+
+all:
+ $(CC) $(SRCS) $(CFLAGS) ..\..\mod_version.c /link $(LFLAGS)
+
+distclean: clean spotless
+
+clean:
+ -@del *.obj
+
+spotless: clean
+ -@del *.dll *.lib *.exp *.manifest
+
+install:
+ -@copy *.dll ..\..\..\$(DATDEST)\modules
diff --git a/src/modules/makefile.win32 b/src/modules/makefile.win32
new file mode 100644
index 000000000..fffa51d74
--- /dev/null
+++ b/src/modules/makefile.win32
@@ -0,0 +1,41 @@
+include ../../Makefile.inc.win32
+include ./Makefile.inc.win32
+
+OBJECTS= $(SRCS:.c=.dll)
+CFLAGS=/LD /MD /D MODULE_COMPILE $(CFLAGS) /I"../../include"
+LFLAGS=/link ../anope.lib wsock32.lib $(LIBS) $(LFLAGS) $(MYSQL_LIB_PATH) /export:init_module /export:destroy_module
+
+all: $(OBJECTS) subs
+
+distclean: clean spotless
+
+.c.dll:
+ $(CC) $(CFLAGS) $(IRCTYPE) $< ..\mod_version.c $(LFLAGS)
+
+subs:
+ @for %i in ( $(SUBS) ); do \
+ @if exist %i; @cd %i && $(MAKE) $(MAKEARGS) && cd ..
+
+clean: subs-clean
+ -@del *.obj
+
+subs-clean:
+ @for %i in ( $(SUBS) ); do \
+ @if exist %i; @cd %i && $(MAKE) $(MAKEARGS) clean && cd ..
+
+spotless: clean subs-spotless
+ -@del *.dll *.lib *.exp *.manifest
+
+subs-spotless:
+ @for %i in ( $(SUBS) ); do \
+ @if exist %i; @cd %i && $(MAKE) $(MAKEARGS) spotless && cd ..
+
+install:
+ -@mkdir ..\..\$(DATDEST)\modules
+ -@mkdir ..\..\$(DATDEST)\modules\runtime
+ -@copy *.dll ..\..\$(DATDEST)\modules
+
+subs-install: install
+ @for %i in ( $(SUBS) ); do \
+ @if exist %i; @cd %i && $(MAKE) $(MAKEARGS) install && cd ..
+
diff --git a/src/protocol/Makefile b/src/protocol/Makefile
new file mode 100644
index 000000000..b1db60771
--- /dev/null
+++ b/src/protocol/Makefile
@@ -0,0 +1,51 @@
+include ./Makefile.inc
+
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'BINDEST=${BINDEST}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
+ 'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' \
+ '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 $(MODULE_PATH)
+
+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..9fd25dc0c
--- /dev/null
+++ b/src/protocol/Makefile.sub
@@ -0,0 +1,32 @@
+MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'ANOPELIBS=${ANOPELIBS}' \
+ 'LDFLAGS=${LDFLAGS}' 'BINDEST=${BINDEST}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
+ 'RUNGROUP=${RUNGROUP}' 'MODULE_PATH=${MODULE_PATH}' \
+ '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/Makefile.win32 b/src/protocol/Makefile.win32
new file mode 100644
index 000000000..aec850976
--- /dev/null
+++ b/src/protocol/Makefile.win32
@@ -0,0 +1,29 @@
+include ../../Makefile.inc.win32
+
+SRCS=bahamut.c inspircd11.c inspircd12.cpp \
+ ratbox.c unreal32.c
+OBJECTS=bahamut.dll inspircd11.dll inspircd12.dll ratbox.dll unreal32.dll
+
+CFLAGS=/LD /MD /D MODULE_COMPILE $(CFLAGS) /I"../../include"
+LFLAGS=/link ../anope.lib wsock32.lib $(LIBS) $(LFLAGS) $(MYSQL_LIB_PATH) /export:init_module /export:destroy_module /VERSION:$(VERSION)
+
+all: $(OBJECTS)
+
+distclean: clean spotless
+
+.c.dll:
+ $(CC) $(CFLAGS) $< ..\mod_version.c $(LFLAGS)
+
+.cpp.dll:
+ $(CC) $(CFLAGS) $< ..\mod_version.c $(LFLAGS)
+
+clean:
+ -@del *.obj
+
+spotless: clean
+ -@del *.dll *.lib *.exp *.manifest
+
+install:
+ -@mkdir ..\..\$(DATDEST)\modules
+ -@mkdir ..\..\$(DATDEST)\modules\runtime
+ -@copy *.dll ..\..\$(DATDEST)\modules
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..a73df423e
--- /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}' 'BINDEST=${BINDEST}' 'INSTALL=${INSTALL}' \
+ 'INCLUDEDIR=${INCLUDEDIR}' 'RM=${RM}' 'CP=${CP}' \
+ 'TOUCH=${TOUCH}' 'SHELL=${SHELL}' 'DATDEST=${DATDEST}' \
+ '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 ${BINDEST} || mkdir ${BINDEST}
+ test -d $(BINDEST)/tools || mkdir $(BINDEST)/tools
+ $(INSTALL) anopesmtp $(BINDEST)/tools/anopesmtp
+ $(INSTALL) db-merger $(BINDEST)/tools/db-merger
+ $(INSTALL) db-convert $(BINDEST)/tools/db-convert
+
+DUMMY:
diff --git a/src/tools/Makefile.win32 b/src/tools/Makefile.win32
new file mode 100644
index 000000000..49cd6b032
--- /dev/null
+++ b/src/tools/Makefile.win32
@@ -0,0 +1,29 @@
+include ../../Makefile.inc.win32
+
+SRCS=anopesmtp.c db-merger.c db-convert.c
+OBJECTS= $(SRCS:.c=.exe)
+CFLAGS=$(CFLAGS) /I"../../include"
+LFLAGS=/link wsock32.lib $(LIBS) $(LFLAGS)
+
+all: $(OBJECTS)
+
+distclean: clean spotless
+
+.c.exe:
+ $(CC) $(CFLAGS) $< $(LFLAGS)
+
+clean:
+ -@del *.obj
+
+spotless: clean
+ -@del *.exe *.lib *.exp
+
+install: exe_install manifest_install
+
+exe_install: FRC
+ -@copy *.exe ..\..\$(DATDEST)\
+
+manifest_install: FRC
+ -@copy *.manifest ..\..\$(DATDEST)\
+
+FRC:
diff --git a/src/win32.rc.template b/src/win32.rc.template
new file mode 100644
index 000000000..7f1ee7e32
--- /dev/null
+++ b/src/win32.rc.template
@@ -0,0 +1,90 @@
+///Microsoft Developer Studio generated resource script.
+//
+#include "../include/resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "windows.h"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+#include "../include/resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifndef _MAC
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VER_ANOPE VERSIONINFO
+ FILEVERSION VERSION_COMMA
+ PRODUCTVERSION VERSION_COMMA
+ FILEFLAGSMASK 0x17L10
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "Anope Team"
+ VALUE "FileDescription", "Anope IRC Services"
+ VALUE "FileVersion", "VERSION_FULL"
+ VALUE "InternalName", "Anope"
+ VALUE "LegalCopyright", "Copyright (C) 2003-2008 Anope Team"
+ VALUE "OriginalFilename", "anope.exe"
+ VALUE "ProductName", "Anope"
+ VALUE "ProductVersion", "VERSION_DOTTED"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif // !_MAC
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+ICON_APP ICON "anope-icon.ico"
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED