summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2008-11-26 22:13:01 +0000
committercyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2008-11-26 22:13:01 +0000
commit2e41f43ace799691e42a8a2cdd01be44fe6bc1aa (patch)
tree346c52d7f8cf80fe4da06510b937e3f66fad26df
parent797edb40bab66cec3fe3bee20aa6f6bcb88dcde6 (diff)
A few more Win32 fixes, Anope 1.9 compiles and runs under Windows now.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1799 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r--include/extern.h14
-rw-r--r--include/services.h11
-rw-r--r--install.js2
-rw-r--r--makefile.inc.win322
-rw-r--r--src/makefile.win326
-rw-r--r--src/mod_version.c17
6 files changed, 23 insertions, 29 deletions
diff --git a/include/extern.h b/include/extern.h
index eb29fce8a..f1b86c7c6 100644
--- a/include/extern.h
+++ b/include/extern.h
@@ -15,18 +15,8 @@
#ifndef EXTERN_H
#define EXTERN_H
-#ifndef _WIN32
-#define E extern
-#define EI extern
-#else
-#ifndef MODULE_COMPILE
-#define E extern __declspec(dllexport)
-#define EI extern __declspec(dllimport)
-#else
-#define E extern __declspec(dllimport)
-#define EI extern __declspec(dllexport)
-#endif
-#endif
+#define E extern CoreExport
+#define EI extern DllExport
#include "slist.h"
diff --git a/include/services.h b/include/services.h
index 163d620fa..782f46e0e 100644
--- a/include/services.h
+++ b/include/services.h
@@ -305,7 +305,7 @@ class CoreExport ModuleException : public CoreException
/** Class with the ability to be extended with key:value pairs.
* Thanks to InspIRCd for this.
*/
-class Extensible
+class CoreExport Extensible
{
private:
std::map<std::string, void *> Extension_Items;
@@ -360,7 +360,14 @@ class Extensible
* you provide a nonexistent key (case is important) then the function will return false.
* @return Returns true on success.
*/
- bool Shrink(const std::string &key);
+ bool Shrink(const std::string &key)
+ {
+ /* map::size_type map::erase( const key_type& key );
+ * returns the number of elements removed, std::map
+ * is single-associative so this should only be 0 or 1
+ */
+ return this->Extension_Items.erase(key);
+ }
/** Get an extension item.
*
diff --git a/install.js b/install.js
index 678d3bb69..477f65b2f 100644
--- a/install.js
+++ b/install.js
@@ -364,7 +364,7 @@ var buildPackages = [
f.WriteLine("CC=cl");
f.WriteLine("RC=rc");
f.WriteLine("MAKE=nmake -f Makefile.win32");
- f.WriteLine("BASE_CFLAGS=$(VC6) /O2 /MD /TP /GR /EHsc $(INCFLAGS)");
+ f.WriteLine("BASE_CFLAGS=$(VC6) /Zi /MD /TP /GR /EHs $(INCFLAGS)");
f.WriteLine("RC_FLAGS="+path_line_rc);
f.WriteLine("LIBS=wsock32.lib advapi32.lib /NODEFAULTLIB:libcmtd.lib");
f.WriteLine("LFLAGS=$(LIBPATH)");
diff --git a/makefile.inc.win32 b/makefile.inc.win32
index f9b06845a..7d430d672 100644
--- a/makefile.inc.win32
+++ b/makefile.inc.win32
@@ -9,7 +9,7 @@ DATDEST=data
CC=cl
RC=rc
MAKE=nmake -f Makefile.win32
-BASE_CFLAGS=$(VC6) /O2 /MD /TP /GR /EHsc $(INCFLAGS)
+BASE_CFLAGS=$(VC6) /Zi /MD /TP /GR /EHs $(INCFLAGS)
RC_FLAGS=/i "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\Include" /i "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\Include"
LIBS=wsock32.lib advapi32.lib /NODEFAULTLIB:libcmtd.lib
LFLAGS=$(LIBPATH)
diff --git a/src/makefile.win32 b/src/makefile.win32
index 8490ee507..7558c1ad6 100644
--- a/src/makefile.win32
+++ b/src/makefile.win32
@@ -22,13 +22,13 @@ OBJS = actions.obj base64.obj bots.obj botserv.obj channels.obj chanserv.obj co
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
+ 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
+ slist.c sockutil.c timeout.c users.c module.cpp modulemanager.cpp hashcomp.cpp configreader.cpp
###########################################################################
@@ -42,7 +42,7 @@ SRCS = actions.c base64.c botserv.c bots.cpp channels.c chanserv.c commands.c c
all: $(PROGRAM)
$(PROGRAM): $(OBJS) win32.res
- $(CC) $(OBJS) win32.res /link /out:$(PROGRAM) /implib:anope.lib $(LIBS) $(LFLAGS) $(MLIBS) $(ELIBS)
+ $(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
diff --git a/src/mod_version.c b/src/mod_version.c
index deff53f97..98c27d259 100644
--- a/src/mod_version.c
+++ b/src/mod_version.c
@@ -1,16 +1,13 @@
#include "version.h"
-#ifndef _WIN32
-#define E extern
-#define I extern
+#ifdef _WIN32
+# ifdef MODULE_COMPILE
+# define E extern __declspec(dllexport)
+# else
+# define E extern __declspec(dllimport)
+# endif
#else
-#ifndef MODULE_COMPILE
-#define E extern __declspec(dllexport)
-#define I extern __declspec(dllimport)
-#else
-#define E extern __declspec(dllimport)
-#define I extern __declspec(dllexport)
-#endif
+# define E extern
#endif
extern "C"