diff --git a/core/Makefile b/core/Makefile
index c7ac052c..3fcae6a3 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -1,21 +1,16 @@
-#(C)2004-2008 Metamod:Source Development Team
+# (C)2004-2008 SourceMod Development Team
# Makefile written by David "BAILOPAN" Anderson
-#Local paths
+SMSDK = ..
+SRCDS_BASE = ~/srcds
HL2SDK_ORIG = ../../hl2sdk
HL2SDK_OB = ../../hl2sdk-ob
SOURCEMM14 = ../../sourcemm-1.4
SOURCEMM16 = ../../sourcemm-1.6
-SRCDS_BASE = ~/srcds
-SMSDK = ..
-
-#Project options
-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
-GCC4_FLAGS = -fvisibility=hidden
-GCC4_CPP_FLAGS = -fvisibility-inlines-hidden
-DEBUG_FLAGS = -g -ggdb3
-CPP = gcc-4.1
+#####################################
+### EDIT BELOW FOR OTHER PROJECTS ###
+#####################################
OBJECTS = AdminCache.cpp CDataPack.cpp ConCmdManager.cpp ConVarManager.cpp CoreConfig.cpp \
Database.cpp DebugReporter.cpp EventManager.cpp GameConfigs.cpp HalfLife2.cpp Logger.cpp \
@@ -33,101 +28,120 @@ OBJECTS += smn_admin.cpp smn_bitbuffer.cpp smn_console.cpp smn_core.cpp \
smn_adt_trie.cpp smn_hudtext.cpp
OBJECTS += systems/ExtensionSys.cpp systems/ForwardSys.cpp systems/HandleSys.cpp \
systems/LibrarySys.cpp systems/PluginInfoDatabase.cpp systems/PluginSys.cpp \
- systems/ShareSys.cpp vm/sp_vm_basecontext.cpp vm/sp_vm_function.cpp
+ systems/ShareSys.cpp vm/sp_vm_basecontext.cpp vm/sp_vm_engine.cpp \
+ vm/sp_vm_function.cpp
OBJECTS += thread/ThreadWorker.cpp thread/BaseWorker.cpp thread/PosixThreads.cpp ThreadSupport.cpp
-OBJECTS_C = zlib/adler32.c zlib/compress.c zlib/crc32.c zlib/deflate.c zlib/gzio.c \
+OBJECTS += zlib/adler32.c zlib/compress.c zlib/crc32.c zlib/deflate.c zlib/gzio.c \
zlib/infback.c zlib/inffast.c zlib/inflate.c zlib/inftrees.c zlib/trees.c \
zlib/uncompr.c zlib/zutil.c
-OBJECTS_SM16 = vm/sp_vm_engine.cpp
+##############################################
+### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
+##############################################
+
+C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -s -pipe -fno-strict-aliasing
+C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
+C_GCC4_FLAGS = -fvisibility=hidden
+CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
+CPP = gcc-4.1
+
+override ENGSET = false
ifeq "$(ENGINE)" "original"
HL2SDK = $(HL2SDK_ORIG)
HL2PUB = $(HL2SDK_ORIG)/public
- HL2LIB = $(HL2SDK)/linux_sdk
+ HL2LIB = $(HL2SDK_ORIG)/linux_sdk
METAMOD = $(SOURCEMM14)
- INCLUDE += -I$(HL2PUB)/dlls
+ INCLUDE += -I$(HL2SDK)/public/dlls
SRCDS = $(SRCDS_BASE)
BINARY = sourcemod.1.ep1.so
+ override ENGSET = true
endif
ifeq "$(ENGINE)" "orangebox"
HL2SDK = $(HL2SDK_OB)
HL2PUB = $(HL2SDK_OB)/public
- HL2LIB = $(HL2SDK)/linux_sdk
+ HL2LIB = $(HL2SDK_OB)/linux_sdk
CFLAGS += -DORANGEBOX_BUILD
METAMOD = $(SOURCEMM16)
- INCLUDE += -I$(HL2PUB)/game/server
+ INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/orangebox
BINARY = sourcemod.2.ep2.so
-endif
-ifeq "$(BINARY)" ""
- echo "You must supply ENGINE=orangebox or ENGINE=original"
- false
+ override ENGSET = true
endif
LINK += $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so \
tier0_i486.so -lpthread -static-libgcc
-INCLUDE_SMSDK = -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SMSDK)/public/extensions
+INCLUDE_SMSDK = -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn
-INCLUDE += -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
- -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(METAMOD)/sourcemm \
- -I$(HL2PUB)/mathlib -Isystems $(INCLUDE_SMSDK)
+INCLUDE_SM16 = -I. -I.. -I$(SOURCEMM16)/sourcehook $(INCLUDE_SMSDK)
+
+INCLUDE += -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/mathlib -I$(HL2PUB)/vstdlib \
+ -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 -I$(METAMOD) -I$(METAMOD)/sourcehook \
+ -I$(METAMOD)/sourcemm -Isystems $(INCLUDE_SMSDK)
-SM16_INCLUDE = -I. -I.. -I$(SOURCEMM16)/sourcehook $(INCLUDE_SMSDK)
+CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
+ -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror \
+ -Wno-uninitialized -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -DSM_DEFAULT_THREADER -m32
+CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
+
+################################################
+### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
+################################################
ifeq "$(DEBUG)" "true"
BIN_DIR = Debug.$(ENGINE)
- CFLAGS += $(DEBUG_FLAGS)
+ CFLAGS += $(C_DEBUG_FLAGS)
else
BIN_DIR = Release.$(ENGINE)
- CFLAGS += $(OPT_FLAGS)
+ CFLAGS += $(C_OPT_FLAGS)
endif
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
-
-CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \
- -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \
- -Dstrcmpi=strcasecmp -Wall -Wno-uninitialized -Werror -mfpmath=sse -msse \
- -DSOURCEMOD_BUILD -DSM_DEFAULT_THREADER -m32
-CPPFLAGS = -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
-
ifeq "$(GCC_VERSION)" "4"
- CFLAGS += $(GCC4_FLAGS)
- CPPFLAGS += $(GCC4_CPP_FLAGS)
+ CFLAGS += $(C_GCC4_FLAGS)
+ CPPFLAGS += $(CPP_GCC4_FLAGS)
endif
-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.ox)
-OBJ_LINUX_C := $(OBJECTS_C:%.c=$(BIN_DIR)/%.oc)
-OBJ_LINUX_SM16 := $(OBJECTS_SM16:%.cpp=$(BIN_DIR)/%.ok)
+OBJ_LINUX := $(OBJECTS:%vm_engine.cpp=$(BIN_DIR)/%vm_engine.o)
+OBJ_LINUX := $(OBJ_LINUX:%.cpp=$(BIN_DIR)/%.o)
+OBJ_LINUX := $(OBJ_LINUX:%.c=$(BIN_DIR)/%.o)
-$(BIN_DIR)/%.ox: %.cpp
+$(BIN_DIR)/%vm_engine.o: %vm_engine.cpp
+ $(CPP) $(INCLUDE_SM16) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
+
+$(BIN_DIR)/%.o: %.cpp
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
-$(BIN_DIR)/%.oc: %.c
+$(BIN_DIR)/%.o: %.c
$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
-$(BIN_DIR)/%.ok: %.cpp
- $(CPP) $(SM16_INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
-
-all:
+all: check
mkdir -p $(BIN_DIR)/systems
mkdir -p $(BIN_DIR)/vm
mkdir -p $(BIN_DIR)/zlib
mkdir -p $(BIN_DIR)/thread
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
+ ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so;
+ ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so;
$(MAKE) -f Makefile sourcemod
-sourcemod: $(OBJ_LINUX) $(OBJ_LINUX_C) $(OBJ_LINUX_SM16)
- $(CPP) $(OBJ_LINUX) $(OBJ_LINUX_C) $(OBJ_LINUX_SM16) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+check:
+ if [ "$(ENGSET)" == "false" ]; then \
+ echo "You must supply ENGINE=orangebox or ENGINE=original"; \
+ exit 1; \
+ fi
+
+sourcemod: check $(OBJ_LINUX)
+ $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+
+debug:
+ $(MAKE) -f Makefile all DEBUG=true
default: all
-clean:
- rm -rf $(BIN_DIR)/*.ox
- rm -rf $(BIN_DIR)/systems/*.ox
- rm -rf $(BIN_DIR)/zlib/*.oc
- rm -rf $(BIN_DIR)/vm/*.ox
- rm -rf $(BIN_DIR)/thread/*.ox
+clean: check
+ rm -rf $(BIN_DIR)/*.o
+ rm -rf $(BIN_DIR)/systems/*.o
+ rm -rf $(BIN_DIR)/zlib/*.o
+ rm -rf $(BIN_DIR)/vm/*.o
+ rm -rf $(BIN_DIR)/thread/*.o
rm -rf $(BIN_DIR)/$(BINARY)
-
diff --git a/core/msvc8/sourcemod_mm.sln b/core/msvc8/sourcemod_mm.sln
index 980aa0c5..780f496a 100644
--- a/core/msvc8/sourcemod_mm.sln
+++ b/core/msvc8/sourcemod_mm.sln
@@ -9,11 +9,9 @@ Global
Debug - Episode 1|Win32 = Debug - Episode 1|Win32
Debug - Old Metamod|Win32 = Debug - Old Metamod|Win32
Debug - Orange Box|Win32 = Debug - Orange Box|Win32
- Debug|Win32 = Debug|Win32
Release - Episode 1|Win32 = Release - Episode 1|Win32
Release - Old Metamod|Win32 = Release - Old Metamod|Win32
Release - Orange Box|Win32 = Release - Orange Box|Win32
- Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E39527CD-7CAB-4420-97CC-DA1B93B260BC}.CrazyDebug|Win32.ActiveCfg = CrazyDebug|Win32
@@ -24,16 +22,12 @@ Global
{E39527CD-7CAB-4420-97CC-DA1B93B260BC}.Debug - Old Metamod|Win32.Build.0 = Debug - Old Metamod|Win32
{E39527CD-7CAB-4420-97CC-DA1B93B260BC}.Debug - Orange Box|Win32.ActiveCfg = Debug - Orange Box|Win32
{E39527CD-7CAB-4420-97CC-DA1B93B260BC}.Debug - Orange Box|Win32.Build.0 = Debug - Orange Box|Win32
- {E39527CD-7CAB-4420-97CC-DA1B93B260BC}.Debug|Win32.ActiveCfg = CrazyDebug|Win32
- {E39527CD-7CAB-4420-97CC-DA1B93B260BC}.Debug|Win32.Build.0 = CrazyDebug|Win32
{E39527CD-7CAB-4420-97CC-DA1B93B260BC}.Release - Episode 1|Win32.ActiveCfg = Release - Episode 1|Win32
{E39527CD-7CAB-4420-97CC-DA1B93B260BC}.Release - Episode 1|Win32.Build.0 = Release - Episode 1|Win32
{E39527CD-7CAB-4420-97CC-DA1B93B260BC}.Release - Old Metamod|Win32.ActiveCfg = Release - Old Metamod|Win32
{E39527CD-7CAB-4420-97CC-DA1B93B260BC}.Release - Old Metamod|Win32.Build.0 = Release - Old Metamod|Win32
{E39527CD-7CAB-4420-97CC-DA1B93B260BC}.Release - Orange Box|Win32.ActiveCfg = Release - Orange Box|Win32
{E39527CD-7CAB-4420-97CC-DA1B93B260BC}.Release - Orange Box|Win32.Build.0 = Release - Orange Box|Win32
- {E39527CD-7CAB-4420-97CC-DA1B93B260BC}.Release|Win32.ActiveCfg = Debug - Old Metamod|Win32
- {E39527CD-7CAB-4420-97CC-DA1B93B260BC}.Release|Win32.Build.0 = Debug - Old Metamod|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/core/msvc8/sourcemod_mm.vcproj b/core/msvc8/sourcemod_mm.vcproj
index 08bdf03d..42b3a6c8 100644
--- a/core/msvc8/sourcemod_mm.vcproj
+++ b/core/msvc8/sourcemod_mm.vcproj
@@ -16,7 +16,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -637,6 +637,24 @@
+
+
+
+
+
+
@@ -655,24 +673,6 @@
AssemblerOutput="0"
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1205,6 +1181,14 @@
AdditionalIncludeDirectories=""$(SOURCEMM16)\sourcehook""
/>
+
+
+
-
-
-
-
-
-
diff --git a/extensions/batsupport/BATInterface.h b/extensions/batsupport/BATInterface.h
deleted file mode 100644
index f89e1de5..00000000
--- a/extensions/batsupport/BATInterface.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* ======== Basic Admin tool ========
-* Copyright (C) 2004-2008 Erling K. Sæterdal
-* No warranties of any kind
-*
-* License: zlib/libpng
-*
-* Author(s): Erling K. Sæterdal ( EKS )
-* Credits:
-* Menu code based on code from CSDM ( http://www.tcwonline.org/~dvander/cssdm ) Created by BAILOPAN
-* Helping on misc errors/functions: BAILOPAN,LDuke,sslice,devicenull,PMOnoTo,cybermind ( most who idle in #sourcemod on GameSurge realy )
-* ============================ */
-
-#ifndef _INCLUDE_BATINTERFACE
-#define _INCLUDE_BATINTERFACE
-#include
-
-#define ADMININTERFACE_VERSION 0
-#define ADMININTERFACE_MAXACCESSLENGTHTEXT 50 // This is the maximum length of a "flag" access text.
-
-//#include "BATMenu.h"
-
-//extern menuId g_AdminMenu;
-class AdminInterfaceListner
-{
-public:
- virtual void OnAdminInterfaceUnload()=0;
- virtual void Client_Authorized(int id)=0;
-};
-
-class AdminInterface
-{
-public:
- virtual bool RegisterFlag(const char *Class,const char *Flag,const char *Description) = 0; // Registers a new admin access
- virtual bool IsClient(int id) = 0; // returns false if client is bot, or NOT connected
- virtual bool HasFlag(int id,const char *Flag) = 0; // returns true if the player has this access flag, lower case only
- virtual int GetInterfaceVersion() = 0 ; // Returns the interface version of the admin mod
- virtual const char* GetModName() = 0; // Returns the name of the current admin mod
- virtual void AddEventListner(AdminInterfaceListner *ptr) = 0; // You should ALLWAYS set this, so you know when the "server" plugin gets unloaded
- virtual void RemoveListner(AdminInterfaceListner *ptr) = 0; // You MUST CALL this function in your plugin unloads function, or the admin plugin will crash on next client connect.
-};
-
-class BATAdminInterface : public AdminInterface
-{
-public:
- bool RegisterFlag(const char *Class,const char *Flag,const char *Description); // Max 1 admin access at the time, returns true if done successfully
- bool IsClient(int id); // returns false if client is bot, or NOT connected
- bool HasFlag(int id,const char *Flag); // returns true if the player has this access flag
- int GetInterfaceVersion() { return ADMININTERFACE_VERSION; } // Returns the interface version of the admin mod
- const char* GetModName() { return "BAT"; } // Returns the name of the current admin mod
- void AddEventListner(AdminInterfaceListner *ptr); // You should ALLWAYS set this, so you know when the "server" plugin gets unloaded
- void RemoveListner(AdminInterfaceListner *ptr);
-private:
- char GetFlagFromInt(int CharIndex);
- bool CustomAccessExistence(const char *Flag);
-};
-class MyListener : public IMetamodListener
-{
-public:
- virtual void *OnMetamodQuery(const char *iface, int *ret);
-};
-#endif
-
diff --git a/extensions/batsupport/Makefile b/extensions/batsupport/Makefile
deleted file mode 100644
index bfebba58..00000000
--- a/extensions/batsupport/Makefile
+++ /dev/null
@@ -1,87 +0,0 @@
-#(C)2004-2008 Metamod:Source Development Team
-# Makefile written by David "BAILOPAN" Anderson
-
-SMSDK = ../..
-SRCDS = ~/srcds
-SOURCEMM = ../../../../sourcemm
-
-#####################################
-### EDIT BELOW FOR OTHER PROJECTS ###
-#####################################
-
-PROJECT = batsupport
-
-#Uncomment for SourceMM-enabled extensions
-LINK_HL2 = $(HL2LIB)/tier1_i486.a vstdlib_i486.so tier0_i486.so
-
-OBJECTS = sdk/smsdk_ext.cpp extension.cpp
-
-##############################################
-### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
-##############################################
-
-C_OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
-C_DEBUG_FLAGS = -g -ggdb3
-CPP_GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
-CPP = gcc-4.1
-
-HL2PUB = $(HL2SDK)/public
-HL2LIB = $(HL2SDK)/linux_sdk
-HL2SDK = $(SOURCEMM)/hl2sdk
-SMM_TRUNK = $(SOURCEMM)/trunk
-
-LINK = $(LINK_HL2) -static-libgcc
-
-INCLUDE = -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
- -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SMM_TRUNK) -I$(SMM_TRUNK)/sourcehook -I$(SMM_TRUNK)/sourcemm \
- -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SMSDK)/public/extensions \
-
-CFLAGS = -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror -fPIC -msse -DSOURCEMOD_BUILD
-CPPFLAGS = -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
-
-################################################
-### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
-################################################
-
-ifeq "$(DEBUG)" "true"
- BIN_DIR = Debug
- CFLAGS += $(C_DEBUG_FLAGS)
-else
- BIN_DIR = Release
- CFLAGS += $(C_OPT_FLAGS)
-endif
-
-
-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
-ifeq "$(GCC_VERSION)" "4"
- CPPFLAGS += $(CPP_GCC4_FLAGS)
-endif
-
-BINARY = $(PROJECT).ext.so
-
-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
-
-$(BIN_DIR)/%.o: %.cpp
- $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
-
-all:
- mkdir -p $(BIN_DIR)/sdk
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
- $(MAKE) extension
-
-extension: $(OBJ_LINUX)
- $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
-
-debug:
- $(MAKE) all DEBUG=true
-
-default: all
-
-clean:
- rm -rf Release/*.o
- rm -rf Release/sdk/*.o
- rm -rf Release/$(BINARY)
- rm -rf Debug/*.o
- rm -rf Debug/sdk/*.o
- rm -rf Debug/$(BINARY)
diff --git a/extensions/batsupport/extension.cpp b/extensions/batsupport/extension.cpp
deleted file mode 100644
index 10a3f8f4..00000000
--- a/extensions/batsupport/extension.cpp
+++ /dev/null
@@ -1,270 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod BAT Support Extension
- * Copyright (C) 2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#include
-#include
-#include "extension.h"
-
-/**
- * @file extension.cpp
- * @brief Implements BAT Support extension code.
- */
-
-BatSupport g_BatSupport; /**< Global singleton for your extension's main interface */
-IAdminSystem *admins = NULL;
-IPlayerManager *players = NULL;
-SMEXT_LINK(&g_BatSupport);
-
-bool BatSupport::SDK_OnLoad(char *error, size_t maxlength, bool late)
-{
- SM_GET_IFACE(ADMINSYS, admins);
- SM_GET_IFACE(PLAYERMANAGER, players);
-
- players->AddClientListener(this);
-
- return true;
-}
-
-void BatSupport::SDK_OnUnload()
-{
- players->RemoveClientListener(this);
-
- List::iterator iter;
- AdminInterfaceListner *hook;
-
- for (iter=m_hooks.begin(); iter!=m_hooks.end(); iter++)
- {
- hook = (*iter);
- hook->OnAdminInterfaceUnload();
- }
-
- /* In case plugins don't do this */
- m_hooks.clear();
-}
-
-bool BatSupport::SDK_OnMetamodLoad(char *error, size_t maxlength, bool late)
-{
- g_SMAPI->AddListener(this, this);
-
- return true;
-}
-
-void BatSupport::OnClientAuthorized(int client, const char *authstring)
-{
- List::iterator iter;
- AdminInterfaceListner *hook;
-
- for (iter=m_hooks.begin(); iter!=m_hooks.end(); iter++)
- {
- hook = (*iter);
- hook->Client_Authorized(client);
- }
-}
-
-const char *BatSupport::GetModName()
-{
- return "SourceMod";
-}
-
-int BatSupport::GetInterfaceVersion()
-{
- return ADMININTERFACE_VERSION;
-}
-
-void *BatSupport::OnMetamodQuery(const char *iface, int *ret)
-{
- if (strcmp(iface, "AdminInterface") == 0)
- {
- AdminInterface *pThis = this;
- if (ret)
- {
- *ret = IFACE_OK;
- }
- return pThis;
- }
-
- if (ret)
- {
- *ret = IFACE_FAILED;
- }
-
- return NULL;
-}
-
-bool BatSupport::RegisterFlag(const char *Class,const char *Flag,const char *Description)
-{
- /* No empty flags */
- if (Flag[0] == '\0')
- {
- g_pSM->LogError(myself, "BAT AdminInterface support tried to register a blank flag");
- return false;
- }
-
- /* We only support up to 6 custom flags for SourceMod */
- if (m_flags.size() >= 6)
- {
- g_pSM->LogError(myself, "BAT AdminInterface support reached maximum number of custom flags");
- return false;
- }
-
- List::iterator iter;
- for (iter=m_flags.begin(); iter!=m_flags.end(); iter++)
- {
- CustomFlag &cf = (*iter);
- /* Ignore already registered, in case plugin is reloading */
- if (cf.name.compare(Flag) == 0)
- {
- return true;
- }
- }
-
- g_pSM->LogMessage(myself,
- "BAT AdminInterface support registered Admin_Custom%d (class \"%s\") (flag \"%s\") (descr \"%s\")",
- m_flags.size() + 1,
- Class,
- Flag,
- Description);
-
- unsigned int f = (unsigned int)Admin_Custom1;
- f += m_flags.size();
-
- CustomFlag cf;
- cf.bit = (1<GetGamePlayer(id);
-
- if (!pPlayer)
- {
- return false;
- }
-
- if (!pPlayer->IsConnected())
- {
- return false;
- }
-
- if (pPlayer->IsFakeClient())
- {
- return false;
- }
-
- return true;
-}
-
-void BatSupport::AddEventListner(AdminInterfaceListner *ptr)
-{
- m_hooks.push_back(ptr);
-}
-
-void BatSupport::RemoveListner(AdminInterfaceListner *ptr)
-{
- m_hooks.remove(ptr);
-}
-
-bool BatSupport::HasFlag(int id,const char *Flag)
-{
- IGamePlayer *pPlayer = players->GetGamePlayer(id);
-
- if (!pPlayer || !pPlayer->IsConnected())
- {
- return false;
- }
-
- AdminId admin = pPlayer->GetAdminId();
- if (admin == INVALID_ADMIN_ID)
- {
- return false;
- }
-
- FlagBits bits = admins->GetAdminFlags(admin, Access_Effective);
-
- /* Root has it all... except for immunity */
- if ((strcmp(Flag, "immunity") != 0)
- && ((bits & ADMFLAG_ROOT) == ADMFLAG_ROOT))
- {
- return true;
- }
-
- if (!strcmp(Flag, "any"))
- {
- return ((bits & ~ADMFLAG_RESERVATION) != 0);
- } else if (!strcmp(Flag, "kick")) {
- return ((bits & ADMFLAG_KICK) == ADMFLAG_KICK);
- } else if (!strcmp(Flag, "slap")) {
- return ((bits & ADMFLAG_SLAY) == ADMFLAG_SLAY);
- } else if (!strcmp(Flag, "slay")) {
- return ((bits & ADMFLAG_SLAY) == ADMFLAG_SLAY);
- } else if (!strcmp(Flag, "ban")) {
- return ((bits & ADMFLAG_BAN) == ADMFLAG_BAN);
- } else if (!strcmp(Flag, "chat")) {
- return ((bits & ADMFLAG_CHAT) == ADMFLAG_CHAT);
- } else if (!strcmp(Flag, "rcon")) {
- return ((bits & ADMFLAG_RCON) == ADMFLAG_RCON);
- } else if (!strcmp(Flag, "map")) {
- return ((bits & ADMFLAG_CHANGEMAP) == ADMFLAG_CHANGEMAP);
- } else if (!strcmp(Flag, "reservedslots")) {
- return ((bits & ADMFLAG_RESERVATION) == ADMFLAG_RESERVATION);
- } else if (!strcmp(Flag, "immunuty")) {
- /* This is a bit different... */
- unsigned int count = admins->GetAdminGroupCount(admin);
- for (unsigned int i=0; iGetAdminGroup(admin, i, NULL);
- if (admins->GetGroupGenericImmunity(gid, Immunity_Default)
- || admins->GetGroupGenericImmunity(gid, Immunity_Global))
- {
- return true;
- }
- }
- return false;
- }
-
- List::iterator iter;
- for (iter=m_flags.begin(); iter!=m_flags.end(); iter++)
- {
- CustomFlag &cf = (*iter);
- if (cf.name.compare(Flag) == 0)
- {
- return ((bits & cf.bit) == cf.bit);
- }
- }
-
- return false;
-}
diff --git a/extensions/batsupport/extension.h b/extensions/batsupport/extension.h
deleted file mode 100644
index 4e4015e2..00000000
--- a/extensions/batsupport/extension.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod BAT Support Extension
- * Copyright (C) 2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#ifndef _INCLUDE_SOURCEMOD_EXTENSION_PROPER_H_
-#define _INCLUDE_SOURCEMOD_EXTENSION_PROPER_H_
-
-/**
- * @file extension.h
- * @brief BAT Support extension code header.
- */
-
-#include "smsdk_ext.h"
-#include "BATInterface.h"
-#include
-#include
-
-using namespace SourceHook;
-
-struct CustomFlag
-{
- String name;
- AdminFlag flag;
- FlagBits bit;
-};
-
-/**
- * @brief Implementation of the BAT Support extension.
- * Note: Uncomment one of the pre-defined virtual functions in order to use it.
- */
-class BatSupport :
- public SDKExtension,
- public IMetamodListener,
- public AdminInterface,
- public IClientListener
-{
-public: // SDKExtension
- bool SDK_OnLoad(char *error, size_t maxlength, bool late);
- void SDK_OnUnload();
- bool SDK_OnMetamodLoad(char *error, size_t maxlength, bool late);
-public: // IMetamodListener
- void *OnMetamodQuery(const char *iface, int *ret);
-public: // AdminInterface
- bool RegisterFlag(const char *Class, const char *Flag, const char *Description);
- bool IsClient(int id);
- bool HasFlag(int id, const char *Flag);
- int GetInterfaceVersion();
- const char* GetModName();
- void AddEventListner(AdminInterfaceListner *ptr);
- void RemoveListner(AdminInterfaceListner *ptr);
-public: // IClientListener
- void OnClientAuthorized(int client, const char *authstring);
-private:
- List m_hooks;
- List m_flags;
-};
-
-#endif // _INCLUDE_SOURCEMOD_EXTENSION_PROPER_H_
diff --git a/extensions/batsupport/msvc8/batsupport.sln b/extensions/batsupport/msvc8/batsupport.sln
deleted file mode 100644
index cabbd260..00000000
--- a/extensions/batsupport/msvc8/batsupport.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BatSupport", "BatSupport.vcproj", "{E2FDA25A-3F36-46CE-A4EB-F4AB60011386}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {E2FDA25A-3F36-46CE-A4EB-F4AB60011386}.Debug|Win32.ActiveCfg = Debug|Win32
- {E2FDA25A-3F36-46CE-A4EB-F4AB60011386}.Debug|Win32.Build.0 = Debug|Win32
- {E2FDA25A-3F36-46CE-A4EB-F4AB60011386}.Release|Win32.ActiveCfg = Release|Win32
- {E2FDA25A-3F36-46CE-A4EB-F4AB60011386}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/extensions/batsupport/msvc8/batsupport.vcproj b/extensions/batsupport/msvc8/batsupport.vcproj
deleted file mode 100644
index 1a8d15a5..00000000
--- a/extensions/batsupport/msvc8/batsupport.vcproj
+++ /dev/null
@@ -1,229 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/extensions/batsupport/sdk/smsdk_config.h b/extensions/batsupport/sdk/smsdk_config.h
deleted file mode 100644
index d34dc0db..00000000
--- a/extensions/batsupport/sdk/smsdk_config.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod BAT Support Extension
- * Copyright (C) 2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#ifndef _INCLUDE_SOURCEMOD_EXTENSION_CONFIG_H_
-#define _INCLUDE_SOURCEMOD_EXTENSION_CONFIG_H_
-
-/**
- * @file smsdk_config.h
- * @brief Contains macros for configuring basic extension information.
- */
-
-/* Basic information exposed publicly */
-#define SMEXT_CONF_NAME "BAT Support"
-#define SMEXT_CONF_DESCRIPTION "Adds support for BAT's AdminInterface"
-#define SMEXT_CONF_VERSION "1.0.0.0"
-#define SMEXT_CONF_AUTHOR "AlliedModders LLC"
-#define SMEXT_CONF_URL "http://www.sourcemod.net/"
-#define SMEXT_CONF_LOGTAG "BATSUPPORT"
-#define SMEXT_CONF_LICENSE "GPL"
-#define SMEXT_CONF_DATESTRING __DATE__
-
-/**
- * @brief Exposes plugin's main interface.
- */
-#define SMEXT_LINK(name) SDKExtension *g_pExtensionIface = name;
-
-/**
- * @brief Sets whether or not this plugin required Metamod.
- * NOTE: Uncomment to enable, comment to disable.
- */
-#define SMEXT_CONF_METAMOD
-
-#endif // _INCLUDE_SOURCEMOD_EXTENSION_CONFIG_H_
diff --git a/extensions/batsupport/sdk/smsdk_ext.cpp b/extensions/batsupport/sdk/smsdk_ext.cpp
deleted file mode 100644
index 6e4c84e6..00000000
--- a/extensions/batsupport/sdk/smsdk_ext.cpp
+++ /dev/null
@@ -1,347 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod Base Extension Code
- * Copyright (C) 2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#include
-#include
-#include "smsdk_ext.h"
-
-/**
- * @file smsdk_ext.cpp
- * @brief Contains wrappers for making Extensions easier to write.
- */
-
-IShareSys *g_pShareSys = NULL; /**< Share system */
-IExtension *myself = NULL; /**< Ourself */
-IHandleSys *g_pHandleSys = NULL; /**< Handle system */
-ISourceMod *g_pSM = NULL; /**< SourceMod helpers */
-IForwardManager *g_pForwards = NULL; /**< Forward system */
-
-/** Exports the main interface */
-PLATFORM_EXTERN_C IExtensionInterface *GetSMExtAPI()
-{
- return g_pExtensionIface;
-}
-
-SDKExtension::SDKExtension()
-{
-#if defined SMEXT_CONF_METAMOD
- m_SourceMMLoaded = false;
- m_WeAreUnloaded = false;
- m_WeGotPauseChange = false;
-#endif
-}
-
-bool SDKExtension::OnExtensionLoad(IExtension *me, IShareSys *sys, char *error, size_t maxlength, bool late)
-{
- g_pShareSys = sys;
- myself = me;
-
-#if defined SMEXT_CONF_METAMOD
- m_WeAreUnloaded = true;
-
- if (!m_SourceMMLoaded)
- {
- if (error)
- {
- snprintf(error, maxlength, "Metamod attach failed");
- }
- return false;
- }
-#endif
-
- SM_GET_IFACE(HANDLESYSTEM, g_pHandleSys);
- SM_GET_IFACE(SOURCEMOD, g_pSM);
- SM_GET_IFACE(FORWARDMANAGER, g_pForwards);
-
- if (SDK_OnLoad(error, maxlength, late))
- {
-#if defined SMEXT_CONF_METAMOD
- m_WeAreUnloaded = true;
-#endif
- return true;
- }
-
- return false;
-}
-
-bool SDKExtension::IsMetamodExtension()
-{
-#if defined SMEXT_CONF_METAMOD
- return true;
-#else
- return false;
-#endif
-}
-
-void SDKExtension::OnExtensionPauseChange(bool state)
-{
-#if defined SMEXT_CONF_METAMOD
- m_WeGotPauseChange = true;
-#endif
- SDK_OnPauseChange(state);
-}
-
-void SDKExtension::OnExtensionsAllLoaded()
-{
- SDK_OnAllLoaded();
-}
-
-void SDKExtension::OnExtensionUnload()
-{
-#if defined SMEXT_CONF_METAMOD
- m_WeAreUnloaded = true;
-#endif
- SDK_OnUnload();
-}
-
-const char *SDKExtension::GetExtensionAuthor()
-{
- return SMEXT_CONF_AUTHOR;
-}
-
-const char *SDKExtension::GetExtensionDateString()
-{
- return SMEXT_CONF_DATESTRING;
-}
-
-const char *SDKExtension::GetExtensionDescription()
-{
- return SMEXT_CONF_DESCRIPTION;
-}
-
-const char *SDKExtension::GetExtensionVerString()
-{
- return SMEXT_CONF_VERSION;
-}
-
-const char *SDKExtension::GetExtensionName()
-{
- return SMEXT_CONF_NAME;
-}
-
-const char *SDKExtension::GetExtensionTag()
-{
- return SMEXT_CONF_LOGTAG;
-}
-
-const char *SDKExtension::GetExtensionURL()
-{
- return SMEXT_CONF_URL;
-}
-
-bool SDKExtension::SDK_OnLoad(char *error, size_t maxlength, bool late)
-{
- return true;
-}
-
-void SDKExtension::SDK_OnUnload()
-{
-}
-
-void SDKExtension::SDK_OnPauseChange(bool paused)
-{
-}
-
-void SDKExtension::SDK_OnAllLoaded()
-{
-}
-
-#if defined SMEXT_CONF_METAMOD
-
-PluginId g_PLID = 0; /**< Metamod plugin ID */
-ISmmPlugin *g_PLAPI = NULL; /**< Metamod plugin API */
-SourceHook::ISourceHook *g_SHPtr = NULL; /**< SourceHook pointer */
-ISmmAPI *g_SMAPI = NULL; /**< SourceMM API pointer */
-
-IVEngineServer *engine = NULL; /**< IVEngineServer pointer */
-IServerGameDLL *gamedll = NULL; /**< IServerGameDLL pointer */
-
-/** Exposes the extension to Metamod */
-SMM_API void *PL_EXPOSURE(const char *name, int *code)
-{
- if (name && !strcmp(name, PLAPI_NAME))
- {
- if (code)
- {
- *code = IFACE_OK;
- }
- return static_cast(g_pExtensionIface);
- }
-
- if (code)
- {
- *code = IFACE_FAILED;
- }
-
- return NULL;
-}
-
-bool SDKExtension::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late)
-{
- PLUGIN_SAVEVARS();
-
- GET_V_IFACE_ANY(serverFactory, gamedll, IServerGameDLL, INTERFACEVERSION_SERVERGAMEDLL);
- GET_V_IFACE_CURRENT(engineFactory, engine, IVEngineServer, INTERFACEVERSION_VENGINESERVER);
-
- m_SourceMMLoaded = true;
-
- return SDK_OnMetamodLoad(ismm, error, maxlen, late);
-}
-
-bool SDKExtension::Unload(char *error, size_t maxlen)
-{
- if (!m_WeAreUnloaded)
- {
- if (error)
- {
- snprintf(error, maxlen, "This extension must be unloaded by SourceMod.");
- }
- return false;
- }
-
- return SDK_OnMetamodUnload(error, maxlen);
-}
-
-bool SDKExtension::Pause(char *error, size_t maxlen)
-{
- if (!m_WeGotPauseChange)
- {
- if (error)
- {
- snprintf(error, maxlen, "This extension must be paused by SourceMod.");
- }
- return false;
- }
-
- m_WeGotPauseChange = false;
-
- return SDK_OnMetamodPauseChange(true, error, maxlen);
-}
-
-bool SDKExtension::Unpause(char *error, size_t maxlen)
-{
- if (!m_WeGotPauseChange)
- {
- if (error)
- {
- snprintf(error, maxlen, "This extension must be unpaused by SourceMod.");
- }
- return false;
- }
-
- m_WeGotPauseChange = false;
-
- return SDK_OnMetamodPauseChange(false, error, maxlen);
-}
-
-const char *SDKExtension::GetAuthor()
-{
- return GetExtensionAuthor();
-}
-
-const char *SDKExtension::GetDate()
-{
- return GetExtensionDateString();
-}
-
-const char *SDKExtension::GetDescription()
-{
- return GetExtensionDescription();
-}
-
-const char *SDKExtension::GetLicense()
-{
- return SMEXT_CONF_LICENSE;
-}
-
-const char *SDKExtension::GetLogTag()
-{
- return GetExtensionTag();
-}
-
-const char *SDKExtension::GetName()
-{
- return GetExtensionName();
-}
-
-const char *SDKExtension::GetURL()
-{
- return GetExtensionURL();
-}
-
-const char *SDKExtension::GetVersion()
-{
- return GetExtensionVerString();
-}
-
-bool SDKExtension::SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlength, bool late)
-{
- return true;
-}
-
-bool SDKExtension::SDK_OnMetamodUnload(char *error, size_t maxlength)
-{
- return true;
-}
-
-bool SDKExtension::SDK_OnMetamodPauseChange(bool paused, char *error, size_t maxlength)
-{
- return true;
-}
-
-#endif
-
-/* Overload a few things to prevent libstdc++ linking */
-#if defined __linux__
-extern "C" void __cxa_pure_virtual(void)
-{
-}
-
-void *operator new(size_t size)
-{
- return malloc(size);
-}
-
-void *operator new[](size_t size)
-{
- return malloc(size);
-}
-
-void operator delete(void *ptr)
-{
- free(ptr);
-}
-
-void operator delete[](void * ptr)
-{
- free(ptr);
-}
-#endif
diff --git a/extensions/batsupport/sdk/smsdk_ext.h b/extensions/batsupport/sdk/smsdk_ext.h
deleted file mode 100644
index f7b5a066..00000000
--- a/extensions/batsupport/sdk/smsdk_ext.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod Base Extension Code
- * Copyright (C) 2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#ifndef _INCLUDE_SOURCEMOD_EXTENSION_BASESDK_H_
-#define _INCLUDE_SOURCEMOD_EXTENSION_BASESDK_H_
-
-/**
- * @file smsdk_ext.h
- * @brief Contains wrappers for making Extensions easier to write.
- */
-
-#include "smsdk_config.h"
-#include
-#include
-#include
-#include
-#include
-#include
-
-#if defined SMEXT_CONF_METAMOD
-#include
-#include
-#endif
-
-using namespace SourceMod;
-using namespace SourcePawn;
-
-class SDKExtension :
-#if defined SMEXT_CONF_METAMOD
- public ISmmPlugin,
-#endif
- public IExtensionInterface
-{
-public:
- /** Constructor */
- SDKExtension();
-public:
- /**
- * @brief This is called after the initial loading sequence has been processed.
- *
- * @param error Error message buffer.
- * @param maxlength Size of error message buffer.
- * @param late Whether or not the module was loaded after map load.
- * @return True to succeed loading, false to fail.
- */
- virtual bool SDK_OnLoad(char *error, size_t maxlength, bool late);
-
- /**
- * @brief This is called right before the extension is unloaded.
- */
- virtual void SDK_OnUnload();
-
- /**
- * @brief This is called once all known extensions have been loaded.
- */
- virtual void SDK_OnAllLoaded();
-
- /**
- * @brief Called when the pause state is changed.
- */
- virtual void SDK_OnPauseChange(bool paused);
-
-#if defined SMEXT_CONF_METAMOD
- /**
- * @brief Called when Metamod is attached, before the extension version is called.
- *
- * @param error Error buffer.
- * @param maxlength Maximum size of error buffer.
- * @param late Whether or not Metamod considers this a late load.
- * @return True to succeed, false to fail.
- */
- virtual bool SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlength, bool late);
-
- /**
- * @brief Called when Metamod is detaching, after the extension version is called.
- * NOTE: By default this is blocked unless sent from SourceMod.
- *
- * @param error Error buffer.
- * @param maxlength Maximum size of error buffer.
- * @return True to succeed, false to fail.
- */
- virtual bool SDK_OnMetamodUnload(char *error, size_t maxlength);
-
- /**
- * @brief Called when Metamod's pause state is changing.
- * NOTE: By default this is blocked unless sent from SourceMod.
- *
- * @param paused Pause state being set.
- * @param error Error buffer.
- * @param maxlength Maximum size of error buffer.
- * @return True to succeed, false to fail.
- */
- virtual bool SDK_OnMetamodPauseChange(bool paused, char *error, size_t maxlength);
-#endif
-
-public: // IExtensionInterface
- virtual bool OnExtensionLoad(IExtension *me, IShareSys *sys, char *error, size_t maxlength, bool late);
- virtual void OnExtensionUnload();
- virtual void OnExtensionsAllLoaded();
-
- /** Returns whether or not this is a Metamod-based extension */
- virtual bool IsMetamodExtension();
-
- /**
- * @brief Called when the pause state changes.
- *
- * @param state True if being paused, false if being unpaused.
- */
- virtual void OnExtensionPauseChange(bool state);
-
- /** Returns name */
- virtual const char *GetExtensionName();
- /** Returns URL */
- virtual const char *GetExtensionURL();
- /** Returns log tag */
- virtual const char *GetExtensionTag();
- /** Returns author */
- virtual const char *GetExtensionAuthor();
- /** Returns version string */
- virtual const char *GetExtensionVerString();
- /** Returns description string */
- virtual const char *GetExtensionDescription();
- /** Returns date string */
- virtual const char *GetExtensionDateString();
-#if defined SMEXT_CONF_METAMOD
-public: // ISmmPlugin
- /** Called when the extension is attached to Metamod. */
- virtual bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late);
- /** Returns the author to MM */
- virtual const char *GetAuthor();
- /** Returns the name to MM */
- virtual const char *GetName();
- /** Returns the description to MM */
- virtual const char *GetDescription();
- /** Returns the URL to MM */
- virtual const char *GetURL();
- /** Returns the license to MM */
- virtual const char *GetLicense();
- /** Returns the version string to MM */
- virtual const char *GetVersion();
- /** Returns the date string to MM */
- virtual const char *GetDate();
- /** Returns the logtag to MM */
- virtual const char *GetLogTag();
- /** Called on unload */
- virtual bool Unload(char *error, size_t maxlen);
- /** Called on pause */
- virtual bool Pause(char *error, size_t maxlen);
- /** Called on unpause */
- virtual bool Unpause(char *error, size_t maxlen);
-private:
- bool m_SourceMMLoaded;
- bool m_WeAreUnloaded;
- bool m_WeGotPauseChange;
-#endif
-};
-
-extern SDKExtension *g_pExtensionIface;
-
-extern IShareSys *g_pShareSys;
-extern IExtension *myself;
-extern IHandleSys *g_pHandleSys;
-extern ISourceMod *g_pSM;
-extern IForwardManager *g_pForwards;
-
-#if defined SMEXT_CONF_METAMOD
-PLUGIN_GLOBALVARS();
-extern IVEngineServer *engine;
-extern IServerGameDLL *gamedll;
-#endif
-
-/** Creates a SourceMod interface macro pair */
-#define SM_MKIFACE(name) SMINTERFACE_##name##_NAME, SMINTERFACE_##name##_VERSION
-/** Automates retrieving SourceMod interfaces */
-#define SM_GET_IFACE(prefix, addr) \
- if (!g_pShareSys->RequestInterface(SM_MKIFACE(prefix), myself, (SMInterface **)&addr)) \
- { \
- if (error) \
- { \
- snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \
- return false; \
- } \
- }
-/** Automates retrieving SourceMod interfaces when needed outside of SDK_OnLoad() */
-#define SM_GET_LATE_IFACE(prefix, addr) \
- g_pShareSys->RequestInterface(SM_MKIFACE(prefix), myself, (SMInterface **)&addr)
-/** Validates a SourceMod interface pointer */
-#define SM_CHECK_IFACE(prefix, addr) \
- if (!addr) \
- { \
- if (error) \
- { \
- snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \
- return false; \
- } \
- }
-
-#endif // _INCLUDE_SOURCEMOD_EXTENSION_BASESDK_H_
diff --git a/extensions/bintools/Makefile b/extensions/bintools/Makefile
index eb85ca4f..c875e6af 100644
--- a/extensions/bintools/Makefile
+++ b/extensions/bintools/Makefile
@@ -1,9 +1,12 @@
-#(C)2004-2008 Metamod:Source Development Team
+# (C)2004-2008 SourceMod Development Team
# Makefile written by David "BAILOPAN" Anderson
SMSDK = ../..
-SRCDS = ~/srcds
-SOURCEMM = ../../../sourcemm
+SRCDS_BASE = ~/srcds
+HL2SDK_ORIG = ../../../hl2sdk
+HL2SDK_OB = ../../../hl2sdk-ob
+SOURCEMM14 = ../../../sourcemm-1.4
+SOURCEMM16 = ../../../sourcemm-1.6
#####################################
### EDIT BELOW FOR OTHER PROJECTS ###
@@ -11,8 +14,8 @@ SOURCEMM = ../../../sourcemm
PROJECT = bintools
-#Uncomment for SourceMM-enabled extensions
-#LINK_HL2 = $(HL2LIB)/tier1_i486.a vstdlib_i486.so tier0_i486.so
+#Uncomment for Metamod: Source enabled extension
+#USEMETA = true
OBJECTS = sdk/smsdk_ext.cpp extension.cpp jit_call.cpp CallWrapper.cpp CallMaker.cpp
@@ -20,28 +23,52 @@ OBJECTS = sdk/smsdk_ext.cpp extension.cpp jit_call.cpp CallWrapper.cpp CallMaker
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
##############################################
-C_OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
-C_DEBUG_FLAGS = -g -ggdb3
-CPP_GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
+C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -s -pipe -fno-strict-aliasing
+C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
+C_GCC4_FLAGS = -fvisibility=hidden
+CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
CPP = gcc-4.1
-HL2PUB = $(HL2SDK)/public
-HL2LIB = $(HL2SDK)/linux_sdk
-HL2SDK = $(SOURCEMM)/hl2sdk
-SMM_TRUNK = $(SOURCEMM)/trunk
+override ENGSET = false
+ifeq "$(ENGINE)" "original"
+ HL2SDK = $(HL2SDK_ORIG)
+ HL2PUB = $(HL2SDK_ORIG)/public
+ HL2LIB = $(HL2SDK_ORIG)/linux_sdk
+ METAMOD = $(SOURCEMM14)
+ INCLUDE += -I$(HL2SDK)/public/dlls
+ SRCDS = $(SRCDS_BASE)
+ override ENGSET = true
+endif
+ifeq "$(ENGINE)" "orangebox"
+ HL2SDK = $(HL2SDK_OB)
+ HL2PUB = $(HL2SDK_OB)/public
+ HL2LIB = $(HL2SDK_OB)/linux_sdk
+ CFLAGS += -DORANGEBOX_BUILD
+ METAMOD = $(SOURCEMM16)
+ INCLUDE += -I$(HL2SDK)/public/game/server
+ SRCDS = $(SRCDS_BASE)/orangebox
+ override ENGSET = true
+endif
-LINK = $(LINK_HL2) -static-libgcc
+ifeq "$(USEMETA)" "true"
+ LINK_HL2 = $(HL2LIB)/tier1_i486.a vstdlib_i486.so tier0_i486.so
-INCLUDE = -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
- -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SMM_TRUNK) -I$(SMM_TRUNK)/sourcehook -I$(SMM_TRUNK)/sourcemm \
- -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SMSDK)/public/extensions -I$(SMSDK)/public/jit \
- -I$(SMSDK)/public/jit/x86
+ LINK += $(LINK_HL2)
-CFLAGS = -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \
- -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \
- -Dstrcmpi=strcasecmp -Wall -Werror -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H \
- -m32
-CPPFLAGS = -Wno-non-virtual-dtor -fno-exceptions -fno-rtti -m32
+ INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
+ -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(METAMOD)/sourcemm -I$(SMSDK)/public \
+ -I$(SMSDK)/public/sourcepawn
+else
+ INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/extensions -I$(SMSDK)/public/jit \
+ -I$(SMSDK)/public/jit/x86 -I$(SMSDK)/public/sourcepawn
+endif
+
+LINK += -static-libgcc
+
+CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
+ -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror -mfpmath=sse \
+ -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32
+CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
################################################
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
@@ -55,9 +82,13 @@ else
CFLAGS += $(C_OPT_FLAGS)
endif
+ifeq "$(USEMETA)" "true"
+ BIN_DIR := $(BIN_DIR).$(ENGINE)
+endif
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
CPPFLAGS += $(CPP_GCC4_FLAGS)
endif
@@ -68,24 +99,29 @@ OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
$(BIN_DIR)/%.o: %.cpp
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
-all:
+all: check
mkdir -p $(BIN_DIR)/sdk
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
- $(MAKE) extension
+ if [ "$(USEMETA)" == "true" ]; then \
+ ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; \
+ ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; \
+ fi
+ $(MAKE) -f Makefile extension
-extension: $(OBJ_LINUX)
- $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+check:
+ if [ "$(USEMETA)" == "true" ] && [ "$(ENGSET)" == "false" ]; then \
+ echo "You must supply ENGINE=orangebox or ENGINE=original"; \
+ exit 1; \
+ fi
-debug:
- $(MAKE) all DEBUG=true
+extension: check $(OBJ_LINUX)
+ $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+
+debug:
+ $(MAKE) -f Makefile all DEBUG=true
default: all
-clean:
- rm -rf Release/*.o
- rm -rf Release/sdk/*.o
- rm -rf Release/$(BINARY)
- rm -rf Debug/*.o
- rm -rf Debug/sdk/*.o
- rm -rf Debug/$(BINARY)
+clean: check
+ rm -rf $(BIN_DIR)/*.o
+ rm -rf $(BIN_DIR)/sdk/*.o
+ rm -rf $(BIN_DIR)/$(BINARY)
diff --git a/extensions/cstrike/Makefile b/extensions/cstrike/Makefile
index 78c71e63..49e13715 100644
--- a/extensions/cstrike/Makefile
+++ b/extensions/cstrike/Makefile
@@ -1,12 +1,12 @@
-#(C)2004-2008 Metamod:Source Development Team
+# (C)2004-2008 SourceMod Development Team
# Makefile written by David "BAILOPAN" Anderson
+SMSDK = ../..
+SRCDS_BASE = ~/srcds
HL2SDK_ORIG = ../../../hl2sdk
HL2SDK_OB = ../../../hl2sdk-ob
SOURCEMM14 = ../../../sourcemm-1.4
SOURCEMM16 = ../../../sourcemm-1.6
-SRCDS_BASE = ~/srcds
-SMSDK = ../..
#####################################
### EDIT BELOW FOR OTHER PROJECTS ###
@@ -14,17 +14,22 @@ SMSDK = ../..
PROJECT = game.cstrike
+#Uncomment for Metamod: Source enabled extension
+USEMETA = true
+
OBJECTS = sdk/smsdk_ext.cpp extension.cpp natives.cpp RegNatives.cpp timeleft.cpp
##############################################
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
##############################################
-C_OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
-C_DEBUG_FLAGS = -g -ggdb3
-CPP_GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
+C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -s -pipe -fno-strict-aliasing
+C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
+C_GCC4_FLAGS = -fvisibility=hidden
+CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
CPP = gcc-4.1
+override ENGSET = false
ifeq "$(ENGINE)" "original"
HL2SDK = $(HL2SDK_ORIG)
HL2PUB = $(HL2SDK_ORIG)/public
@@ -32,6 +37,7 @@ ifeq "$(ENGINE)" "original"
METAMOD = $(SOURCEMM14)
INCLUDE += -I$(HL2SDK)/public/dlls
SRCDS = $(SRCDS_BASE)
+ override ENGSET = true
endif
ifeq "$(ENGINE)" "orangebox"
HL2SDK = $(HL2SDK_OB)
@@ -41,40 +47,47 @@ ifeq "$(ENGINE)" "orangebox"
METAMOD = $(SOURCEMM16)
INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/orangebox
-endif
-ifeq "$(ENGINE)" ""
- echo "You must supply ENGINE=orangebox or ENGINE=original"
- false
+ override ENGSET = true
endif
-LINK_HL2 = $(HL2LIB)/tier1_i486.a vstdlib_i486.so tier0_i486.so
+ifeq "$(USEMETA)" "true"
+ LINK_HL2 = $(HL2LIB)/tier1_i486.a tier0_i486.so
-LINK += $(LINK_HL2) -static-libgcc
+ LINK += $(LINK_HL2)
-INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
- -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(METAMOD)/sourcemm \
- -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SMSDK)/public/extensions
+ INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
+ -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(METAMOD)/sourcemm -I$(SMSDK)/public \
+ -I$(SMSDK)/public/extensions -I$(SMSDK)/public/sourcepawn
+else
+ INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn
+endif
-CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \
- -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp \
- -Wall -Werror -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32
-CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
+LINK += -static-libgcc
+
+CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
+ -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror -mfpmath=sse \
+ -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32
+CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
################################################
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
################################################
ifeq "$(DEBUG)" "true"
- BIN_DIR = Debug.$(ENGINE)
+ BIN_DIR = Debug
CFLAGS += $(C_DEBUG_FLAGS)
else
- BIN_DIR = Release.$(ENGINE)
+ BIN_DIR = Release
CFLAGS += $(C_OPT_FLAGS)
endif
+ifeq "$(USEMETA)" "true"
+ BIN_DIR := $(BIN_DIR).$(ENGINE)
+endif
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
CPPFLAGS += $(CPP_GCC4_FLAGS)
endif
@@ -85,19 +98,28 @@ OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
$(BIN_DIR)/%.o: %.cpp
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
-all:
+all: check
mkdir -p $(BIN_DIR)/sdk
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
+ if [ "$(USEMETA)" == "true" ]; then \
+ ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; \
+ fi
$(MAKE) -f Makefile extension
-extension: $(OBJ_LINUX)
- $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+check:
+ if [ "$(USEMETA)" == "true" ] && [ "$(ENGSET)" == "false" ]; then \
+ echo "You must supply ENGINE=orangebox or ENGINE=original"; \
+ exit 1; \
+ fi
+
+extension: check $(OBJ_LINUX)
+ $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+
+debug:
+ $(MAKE) -f Makefile all DEBUG=true
default: all
-clean:
+clean: check
rm -rf $(BIN_DIR)/*.o
rm -rf $(BIN_DIR)/sdk/*.o
rm -rf $(BIN_DIR)/$(BINARY)
-
diff --git a/extensions/cstrike/msvc8/cstrike.vcproj b/extensions/cstrike/msvc8/cstrike.vcproj
index 3ef10185..9a7b98a3 100644
--- a/extensions/cstrike/msvc8/cstrike.vcproj
+++ b/extensions/cstrike/msvc8/cstrike.vcproj
@@ -203,7 +203,7 @@
&1 | cut -b1)
ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
CPPFLAGS += $(CPP_GCC4_FLAGS)
endif
BINARY = $(PROJECT).ext.so
OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
-OBJ_LINUX := $(OBJ_LINUX:%.c=$(BIN_DIR)/%.o)
$(BIN_DIR)/%.o: %.cpp
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
-$(BIN_DIR)/%.o: %.c
- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
-
-all:
+all: check
mkdir -p $(BIN_DIR)/sdk
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
- $(MAKE) extension
+ if [ "$(USEMETA)" == "true" ]; then \
+ ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; \
+ ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; \
+ fi
+ $(MAKE) -f Makefile extension
-extension: $(OBJ_LINUX)
- $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+check:
+ if [ "$(USEMETA)" == "true" ] && [ "$(ENGSET)" == "false" ]; then \
+ echo "You must supply ENGINE=orangebox or ENGINE=original"; \
+ exit 1; \
+ fi
-debug:
- $(MAKE) all DEBUG=true
+extension: check $(OBJ_LINUX)
+ $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+
+debug:
+ $(MAKE) -f Makefile all DEBUG=true
default: all
-clean:
- rm -rf Release/*.o
- rm -rf Release/sdk/*.o
- rm -rf Release/$(BINARY)
- rm -rf Debug/*.o
- rm -rf Debug/sdk/*.o
- rm -rf Debug/$(BINARY)
+clean: check
+ rm -rf $(BIN_DIR)/*.o
+ rm -rf $(BIN_DIR)/sdk/*.o
+ rm -rf $(BIN_DIR)/$(BINARY)
diff --git a/extensions/mysql/Makefile b/extensions/mysql/Makefile
index be18bc06..f258d1e8 100644
--- a/extensions/mysql/Makefile
+++ b/extensions/mysql/Makefile
@@ -1,9 +1,12 @@
-#(C)2004-2008 Metamod:Source Development Team
+# (C)2004-2008 SourceMod Development Team
# Makefile written by David "BAILOPAN" Anderson
SMSDK = ../..
-SRCDS = ~/srcds
-SOURCEMM = ../../../sourcemm-1.6
+SRCDS_BASE = ~/srcds
+HL2SDK_ORIG = ../../../hl2sdk
+HL2SDK_OB = ../../../hl2sdk-ob
+SOURCEMM14 = ../../../sourcemm-1.4
+SOURCEMM16 = ../../../sourcemm-1.6
MYSQL = ../../../mysql-5.0
#####################################
@@ -12,8 +15,8 @@ MYSQL = ../../../mysql-5.0
PROJECT = dbi.mysql
-#Uncomment for SourceMM-enabled extensions
-#LINK_HL2 = $(HL2LIB)/tier1_i486.a vstdlib_i486.so tier0_i486.so
+#Uncomment for Metamod: Source enabled extension
+#USEMETA = true
OBJECTS = sdk/smsdk_ext.cpp extension.cpp \
mysql/MyBasicResults.cpp mysql/MyDatabase.cpp \
@@ -24,28 +27,52 @@ OBJECTS = sdk/smsdk_ext.cpp extension.cpp \
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
##############################################
-C_OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
-C_DEBUG_FLAGS = -g -ggdb3
-CPP_GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
+C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -s -pipe -fno-strict-aliasing
+C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
+C_GCC4_FLAGS = -fvisibility=hidden
+CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
CPP = gcc-4.1
-HL2PUB = $(HL2SDK)/public
-HL2LIB = $(HL2SDK)/linux_sdk
-HL2SDK = $(SOURCEMM)/hl2sdk
+override ENGSET = false
+ifeq "$(ENGINE)" "original"
+ HL2SDK = $(HL2SDK_ORIG)
+ HL2PUB = $(HL2SDK_ORIG)/public
+ HL2LIB = $(HL2SDK_ORIG)/linux_sdk
+ METAMOD = $(SOURCEMM14)
+ INCLUDE += -I$(HL2SDK)/public/dlls
+ SRCDS = $(SRCDS_BASE)
+ override ENGSET = true
+endif
+ifeq "$(ENGINE)" "orangebox"
+ HL2SDK = $(HL2SDK_OB)
+ HL2PUB = $(HL2SDK_OB)/public
+ HL2LIB = $(HL2SDK_OB)/linux_sdk
+ CFLAGS += -DORANGEBOX_BUILD
+ METAMOD = $(SOURCEMM16)
+ INCLUDE += -I$(HL2SDK)/public/game/server
+ SRCDS = $(SRCDS_BASE)/orangebox
+ override ENGSET = true
+endif
-LINK = $(LINK_HL2) $(MYSQL)/lib/libmysqlclient_r.a -lz -static-libgcc -lpthread
+ifeq "$(USEMETA)" "true"
+ LINK_HL2 = $(HL2LIB)/tier1_i486.a vstdlib_i486.so tier0_i486.so
-INCLUDE = -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine \
- -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 \
- -I$(SOURCEMM) -I$(SOURCEMM)/sourcehook -I$(SOURCEMM)/sourcemm \
- -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SMSDK)/public/extensions \
- -I$(MYSQL)/include
+ LINK += $(LINK_HL2)
-CFLAGS = -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \
- -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \
- -Dstrcmpi=strcasecmp -Wall -Werror -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H \
- -Wno-switch -m32
-CPPFLAGS = -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
+ INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
+ -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(METAMOD)/sourcemm -I$(SMSDK)/public \
+ -I$(SMSDK)/public/sourcepawn
+else
+ INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SOURCEMM16)/sourcehook \
+ -I$(MYSQL)/include
+endif
+
+LINK += $(MYSQL)/lib/libmysqlclient_r.a -lz -static-libgcc -lpthread
+
+CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
+ -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror -Wno-switch \
+ -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32
+CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
################################################
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
@@ -59,9 +86,13 @@ else
CFLAGS += $(C_OPT_FLAGS)
endif
+ifeq "$(USEMETA)" "true"
+ BIN_DIR := $(BIN_DIR).$(ENGINE)
+endif
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
CPPFLAGS += $(CPP_GCC4_FLAGS)
endif
@@ -72,28 +103,31 @@ OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
$(BIN_DIR)/%.o: %.cpp
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
-all:
+all: check
mkdir -p $(BIN_DIR)/sdk
mkdir -p $(BIN_DIR)/mysql
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
- $(MAKE) extension
+ if [ "$(USEMETA)" == "true" ]; then \
+ ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; \
+ ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; \
+ fi
+ $(MAKE) -f Makefile extension
-extension: $(OBJ_LINUX)
- $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+check:
+ if [ "$(USEMETA)" == "true" ] && [ "$(ENGSET)" == "false" ]; then \
+ echo "You must supply ENGINE=orangebox or ENGINE=original"; \
+ exit 1; \
+ fi
-debug:
- $(MAKE) all DEBUG=true
+extension: check $(OBJ_LINUX)
+ $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+
+debug:
+ $(MAKE) -f Makefile all DEBUG=true
default: all
-clean:
- rm -rf Release/*.o
- rm -rf Release/sdk/*.o
- rm -rf Release/mysql/*.o
- rm -rf Release/$(BINARY)
- rm -rf Debug/*.o
- rm -rf Debug/sdk/*.o
- rm -rf Debug/mysql/*.o
- rm -rf Debug/$(BINARY)
-
+clean: check
+ rm -rf $(BIN_DIR)/*.o
+ rm -rf $(BIN_DIR)/sdk/*.o
+ rm -rf $(BIN_DIR)/mysql/*.o
+ rm -rf $(BIN_DIR)/$(BINARY)
diff --git a/extensions/regex/Makefile b/extensions/regex/Makefile
index 0c0274fa..fc4dac57 100644
--- a/extensions/regex/Makefile
+++ b/extensions/regex/Makefile
@@ -1,10 +1,12 @@
-#(C)2004-2008 Metamod:Source Development Team
+# (C)2004-2008 SourceMod Development Team
# Makefile written by David "BAILOPAN" Anderson
SMSDK = ../..
-SRCDS = ~/srcds
-SOURCEMM = ../../../sourcemm-1.6
-HL2SDK = ../../../hl2sdk
+SRCDS_BASE = ~/srcds
+HL2SDK_ORIG = ../../../hl2sdk
+HL2SDK_OB = ../../../hl2sdk-ob
+SOURCEMM14 = ../../../sourcemm-1.4
+SOURCEMM16 = ../../../sourcemm-1.6
#####################################
### EDIT BELOW FOR OTHER PROJECTS ###
@@ -12,34 +14,60 @@ HL2SDK = ../../../hl2sdk
PROJECT = regex
-#Uncomment for SourceMM-enabled extensions
-#LINK_HL2 = $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so tier0_i486.so
+#Uncomment for Metamod: Source enabled extension
+#USEMETA = true
-OBJECTS = extension.cpp CRegEx.cpp sdk/smsdk_ext.cpp
+OBJECTS = sdk/smsdk_ext.cpp extension.cpp CRegEx.cpp
##############################################
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
##############################################
-C_OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
-C_DEBUG_FLAGS = -g -ggdb3
-CPP_GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
+C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -s -pipe -fno-strict-aliasing
+C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
+C_GCC4_FLAGS = -fvisibility=hidden
+CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
CPP = gcc-4.1
-HL2PUB = $(HL2SDK)/public
-HL2LIB = $(HL2SDK)/linux_sdk
+override ENGSET = false
+ifeq "$(ENGINE)" "original"
+ HL2SDK = $(HL2SDK_ORIG)
+ HL2PUB = $(HL2SDK_ORIG)/public
+ HL2LIB = $(HL2SDK_ORIG)/linux_sdk
+ METAMOD = $(SOURCEMM14)
+ INCLUDE += -I$(HL2SDK)/public/dlls
+ SRCDS = $(SRCDS_BASE)
+ override ENGSET = true
+endif
+ifeq "$(ENGINE)" "orangebox"
+ HL2SDK = $(HL2SDK_OB)
+ HL2PUB = $(HL2SDK_OB)/public
+ HL2LIB = $(HL2SDK_OB)/linux_sdk
+ CFLAGS += -DORANGEBOX_BUILD
+ METAMOD = $(SOURCEMM16)
+ INCLUDE += -I$(HL2SDK)/public/game/server
+ SRCDS = $(SRCDS_BASE)/orangebox
+ override ENGSET = true
+endif
-LINK = $(LINK_HL2) lib_linux/libpcre.a -static-libgcc
+ifeq "$(USEMETA)" "true"
+ LINK_HL2 = $(HL2LIB)/tier1_i486.a vstdlib_i486.so tier0_i486.so
-INCLUDE = -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
- -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SOURCEMM) -I$(SOURCEMM)/sourcehook -I$(SOURCEMM)/sourcemm \
- -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SMSDK)/public/extensions \
+ LINK += $(LINK_HL2)
-CFLAGS = -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \
- -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \
- -Dstrcmpi=strcasecmp -Wall -Werror -Wno-switch -Wno-unused -mfpmath=sse -msse \
- -DSOURCEMOD_BUILD -DHAVE_STDINT_H -Wno-uninitialized -m32
-CPPFLAGS = -Wno-non-virtual-dtor -fno-exceptions -fno-rtti -fno-threadsafe-statics
+ INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
+ -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(METAMOD)/sourcemm -I$(SMSDK)/public \
+ -I$(SMSDK)/public/sourcepawn
+else
+ INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SOURCEMM16)/sourcehook
+endif
+
+LINK += lib_linux/libpcre.a -static-libgcc
+
+CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
+ -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror -mfpmath=sse \
+ -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32
+CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
################################################
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
@@ -53,9 +81,13 @@ else
CFLAGS += $(C_OPT_FLAGS)
endif
+ifeq "$(USEMETA)" "true"
+ BIN_DIR := $(BIN_DIR).$(ENGINE)
+endif
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
CPPFLAGS += $(CPP_GCC4_FLAGS)
endif
@@ -66,24 +98,29 @@ OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
$(BIN_DIR)/%.o: %.cpp
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
-all:
+all: check
mkdir -p $(BIN_DIR)/sdk
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
- $(MAKE) extension
+ if [ "$(USEMETA)" == "true" ]; then \
+ ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; \
+ ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; \
+ fi
+ $(MAKE) -f Makefile extension
-extension: $(OBJ_LINUX)
- $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+check:
+ if [ "$(USEMETA)" == "true" ] && [ "$(ENGSET)" == "false" ]; then \
+ echo "You must supply ENGINE=orangebox or ENGINE=original"; \
+ exit 1; \
+ fi
+
+extension: check $(OBJ_LINUX)
+ $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
debug:
- $(MAKE) all DEBUG=true
+ $(MAKE) -f Makefile all DEBUG=true
default: all
-clean:
- rm -rf Release/*.o
- rm -rf Release/sdk/*.o
- rm -rf Release/$(BINARY)
- rm -rf Debug/*.o
- rm -rf Debug/sdk/*.o
- rm -rf Debug/$(BINARY)
+clean: check
+ rm -rf $(BIN_DIR)/*.o
+ rm -rf $(BIN_DIR)/sdk/*.o
+ rm -rf $(BIN_DIR)/$(BINARY)
diff --git a/extensions/sdktools/Makefile b/extensions/sdktools/Makefile
index 71b4e669..4459d9a3 100644
--- a/extensions/sdktools/Makefile
+++ b/extensions/sdktools/Makefile
@@ -1,12 +1,12 @@
-#(C)2004-2008 Metamod:Source Development Team
+# (C)2004-2008 SourceMod Development Team
# Makefile written by David "BAILOPAN" Anderson
+SMSDK = ../..
+SRCDS_BASE = ~/srcds
HL2SDK_ORIG = ../../../hl2sdk
HL2SDK_OB = ../../../hl2sdk-ob
SOURCEMM14 = ../../../sourcemm-1.4
SOURCEMM16 = ../../../sourcemm-1.6
-SRCDS_BASE = ~/srcds
-SMSDK = ../..
#####################################
### EDIT BELOW FOR OTHER PROJECTS ###
@@ -14,6 +14,9 @@ SMSDK = ../..
PROJECT = sdktools
+#Uncomment for Metamod: Source enabled extension
+USEMETA = true
+
OBJECTS = sdk/smsdk_ext.cpp extension.cpp vdecoder.cpp vcallbuilder.cpp vcaller.cpp \
vnatives.cpp vsound.cpp tenatives.cpp trnatives.cpp tempents.cpp vstringtable.cpp \
vhelpers.cpp vglobals.cpp voice.cpp inputnatives.cpp teamnatives.cpp output.cpp \
@@ -23,11 +26,13 @@ OBJECTS = sdk/smsdk_ext.cpp extension.cpp vdecoder.cpp vcallbuilder.cpp vcaller.
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
##############################################
-C_OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
-C_DEBUG_FLAGS = -g -ggdb3
-CPP_GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
+C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -s -pipe -fno-strict-aliasing
+C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
+C_GCC4_FLAGS = -fvisibility=hidden
+CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
CPP = gcc-4.1
+override ENGSET = false
ifeq "$(ENGINE)" "original"
HL2SDK = $(HL2SDK_ORIG)
HL2PUB = $(HL2SDK_ORIG)/public
@@ -35,6 +40,7 @@ ifeq "$(ENGINE)" "original"
METAMOD = $(SOURCEMM14)
INCLUDE += -I$(HL2SDK)/public/dlls
SRCDS = $(SRCDS_BASE)
+ override ENGSET = true
endif
ifeq "$(ENGINE)" "orangebox"
HL2SDK = $(HL2SDK_OB)
@@ -44,39 +50,47 @@ ifeq "$(ENGINE)" "orangebox"
METAMOD = $(SOURCEMM16)
INCLUDE += -I$(HL2SDK)/public/game/server -I$(HL2SDK)/common
SRCDS = $(SRCDS_BASE)/orangebox
-endif
-ifeq "$(ENGINE)" ""
- echo "You must supply ENGINE=orangebox or ENGINE=original"
- false
+ override ENGSET = true
endif
-LINK_HL2 = $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so tier0_i486.so
+ifeq "$(USEMETA)" "true"
+ LINK_HL2 = $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so tier0_i486.so
-LINK += $(LINK_HL2) -static-libgcc
+ LINK += $(LINK_HL2)
-INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
- -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(METAMOD)/sourcemm \
- -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SMSDK)/public/extensions \
+ INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/mathlib -I$(HL2PUB)/tier0 \
+ -I$(HL2PUB)/tier1 -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(METAMOD)/sourcemm -I$(SMSDK)/public \
+ -I$(SMSDK)/public/extensions -I$(SMSDK)/public/sourcepawn
+else
+ INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn
+endif
-CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
+LINK += -static-libgcc
+
+CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
-D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror -Wno-switch \
-Wno-unused -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32
-CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti -fno-threadsafe-statics
+CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti -fno-threadsafe-statics
################################################
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
################################################
ifeq "$(DEBUG)" "true"
- BIN_DIR = Debug.$(ENGINE)
+ BIN_DIR = Debug
CFLAGS += $(C_DEBUG_FLAGS)
else
- BIN_DIR = Release.$(ENGINE)
+ BIN_DIR = Release
CFLAGS += $(C_OPT_FLAGS)
endif
+ifeq "$(USEMETA)" "true"
+ BIN_DIR := $(BIN_DIR).$(ENGINE)
+endif
+
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
CPPFLAGS += $(CPP_GCC4_FLAGS)
endif
@@ -87,13 +101,21 @@ OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
$(BIN_DIR)/%.o: %.cpp
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
-all:
+all: check
mkdir -p $(BIN_DIR)/sdk
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
+ if [ "$(USEMETA)" == "true" ]; then \
+ ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; \
+ ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; \
+ fi
$(MAKE) -f Makefile extension
-extension: $(OBJ_LINUX)
+check:
+ if [ "$(USEMETA)" == "true" ] && [ "$(ENGSET)" == "false" ]; then \
+ echo "You must supply ENGINE=orangebox or ENGINE=original"; \
+ exit 1; \
+ fi
+
+extension: check $(OBJ_LINUX)
$(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
debug:
@@ -101,7 +123,7 @@ debug:
default: all
-clean:
+clean: check
rm -rf $(BIN_DIR)/*.o
rm -rf $(BIN_DIR)/sdk/*.o
rm -rf $(BIN_DIR)/$(BINARY)
diff --git a/extensions/sdktools/msvc8/sdktools.vcproj b/extensions/sdktools/msvc8/sdktools.vcproj
index cd0c00ea..bbdb742a 100644
--- a/extensions/sdktools/msvc8/sdktools.vcproj
+++ b/extensions/sdktools/msvc8/sdktools.vcproj
@@ -40,7 +40,7 @@
&1 | cut -b1)
ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
CPPFLAGS += $(CPP_GCC4_FLAGS)
endif
@@ -89,31 +122,34 @@ $(BIN_DIR)/%.o: %.cpp
$(BIN_DIR)/%.o: %.c
$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
-
-all:
+
+all: check
mkdir -p $(BIN_DIR)/sdk
mkdir -p $(BIN_DIR)/driver
mkdir -p $(BIN_DIR)/sqlite-source
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
- $(MAKE) extension
+ if [ "$(USEMETA)" == "true" ]; then \
+ ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; \
+ ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; \
+ fi
+ $(MAKE) -f Makefile extension
-extension: $(OBJ_LINUX)
- $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+check:
+ if [ "$(USEMETA)" == "true" ] && [ "$(ENGSET)" == "false" ]; then \
+ echo "You must supply ENGINE=orangebox or ENGINE=original"; \
+ exit 1; \
+ fi
-debug:
- $(MAKE) all DEBUG=true
+extension: check $(OBJ_LINUX)
+ $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+
+debug:
+ $(MAKE) -f Makefile all DEBUG=true
default: all
-clean:
- rm -rf Release/*.o
- rm -rf Release/sdk/*.o
- rm -rf Release/sqlite-source/*.o
- rm -rf Release/driver/*.o
- rm -rf Release/$(BINARY)
- rm -rf Debug/*.o
- rm -rf Debug/sdk/*.o
- rm -rf Debug/sqlite-source/*.o
- rm -rf Debug/driver/*.o
- rm -rf Debug/$(BINARY)
+clean: check
+ rm -rf $(BIN_DIR)/*.o
+ rm -rf $(BIN_DIR)/sdk/*.o
+ rm -rf $(BIN_DIR)/driver/*.o
+ rm -rf $(BIN_DIR)/sqlite-source/*.o
+ rm -rf $(BIN_DIR)/$(BINARY)
diff --git a/extensions/tf2/Makefile b/extensions/tf2/Makefile
index bbce9bec..6256d6ab 100644
--- a/extensions/tf2/Makefile
+++ b/extensions/tf2/Makefile
@@ -1,12 +1,12 @@
-#(C)2004-2008 Metamod:Source Development Team
+# (C)2004-2008 SourceMod Development Team
# Makefile written by David "BAILOPAN" Anderson
+SMSDK = ../..
+SRCDS_BASE = ~/srcds
HL2SDK_ORIG = ../../../hl2sdk
HL2SDK_OB = ../../../hl2sdk-ob
SOURCEMM14 = ../../../sourcemm-1.4
SOURCEMM16 = ../../../sourcemm-1.6
-SRCDS_BASE = ~/srcds
-SMSDK = ../..
#####################################
### EDIT BELOW FOR OTHER PROJECTS ###
@@ -14,17 +14,22 @@ SMSDK = ../..
PROJECT = game.tf2
-OBJECTS = extension.cpp natives.cpp RegNatives.cpp util.cpp sdk/smsdk_ext.cpp
+#Uncomment for Metamod: Source enabled extension
+USEMETA = true
+
+OBJECTS = sdk/smsdk_ext.cpp extension.cpp natives.cpp RegNatives.cpp
##############################################
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
##############################################
-C_OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
-C_DEBUG_FLAGS = -g -ggdb3
-CPP_GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
+C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -s -pipe -fno-strict-aliasing
+C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
+C_GCC4_FLAGS = -fvisibility=hidden
+CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
CPP = gcc-4.1
+override ENGSET = false
ifeq "$(ENGINE)" "original"
HL2SDK = $(HL2SDK_ORIG)
HL2PUB = $(HL2SDK_ORIG)/public
@@ -32,6 +37,7 @@ ifeq "$(ENGINE)" "original"
METAMOD = $(SOURCEMM14)
INCLUDE += -I$(HL2SDK)/public/dlls
SRCDS = $(SRCDS_BASE)
+ override ENGSET = true
endif
ifeq "$(ENGINE)" "orangebox"
HL2SDK = $(HL2SDK_OB)
@@ -39,42 +45,49 @@ ifeq "$(ENGINE)" "orangebox"
HL2LIB = $(HL2SDK_OB)/linux_sdk
CFLAGS += -DORANGEBOX_BUILD
METAMOD = $(SOURCEMM16)
- INCLUDE += -I$(HL2SDK)/public/game/server -I$(HL2SDK)/common
+ INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/orangebox
-endif
-ifeq "$(ENGINE)" ""
- echo "You must supply ENGINE=orangebox or ENGINE=original"
- false
+ override ENGSET = true
endif
-LINK_HL2 = $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so tier0_i486.so
+ifeq "$(USEMETA)" "true"
+ LINK_HL2 = $(HL2LIB)/tier1_i486.a tier0_i486.so
-LINK += $(LINK_HL2) -static-libgcc
+ LINK += $(LINK_HL2)
-INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
- -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(METAMOD)/sourcemm \
- -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SMSDK)/public/extensions \
+ INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
+ -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(METAMOD)/sourcemm -I$(SMSDK)/public \
+ -I$(SMSDK)/public/extensions -I$(SMSDK)/public/sourcepawn
+else
+ INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn
+endif
-CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
+LINK += -static-libgcc
+
+CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
-D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror -Wno-switch \
- -Wno-unused -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32 \
- -Wno-uninitialized
-CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti -fno-threadsafe-statics
+ -Wno-unused -Wno-uninitialized -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32
+CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
################################################
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
################################################
ifeq "$(DEBUG)" "true"
- BIN_DIR = Debug.$(ENGINE)
+ BIN_DIR = Debug
CFLAGS += $(C_DEBUG_FLAGS)
else
- BIN_DIR = Release.$(ENGINE)
+ BIN_DIR = Release
CFLAGS += $(C_OPT_FLAGS)
endif
+ifeq "$(USEMETA)" "true"
+ BIN_DIR := $(BIN_DIR).$(ENGINE)
+endif
+
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
CPPFLAGS += $(CPP_GCC4_FLAGS)
endif
@@ -85,13 +98,20 @@ OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
$(BIN_DIR)/%.o: %.cpp
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
-all:
+all: check
mkdir -p $(BIN_DIR)/sdk
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
+ if [ "$(USEMETA)" == "true" ]; then \
+ ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; \
+ fi
$(MAKE) -f Makefile extension
-extension: $(OBJ_LINUX)
+check:
+ if [ "$(USEMETA)" == "true" ] && [ "$(ENGSET)" == "false" ]; then \
+ echo "You must supply ENGINE=orangebox or ENGINE=original"; \
+ exit 1; \
+ fi
+
+extension: check $(OBJ_LINUX)
$(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
debug:
@@ -99,7 +119,7 @@ debug:
default: all
-clean:
+clean: check
rm -rf $(BIN_DIR)/*.o
rm -rf $(BIN_DIR)/sdk/*.o
rm -rf $(BIN_DIR)/$(BINARY)
diff --git a/extensions/tf2/msvc8/tf2.sln b/extensions/tf2/msvc8/tf2.sln
index 5aa5277e..02dbd658 100644
--- a/extensions/tf2/msvc8/tf2.sln
+++ b/extensions/tf2/msvc8/tf2.sln
@@ -5,24 +5,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tf2", "tf2.vcproj", "{B3E79
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug - Episode1|Win32 = Debug - Episode1|Win32
- Debug - Old Metamod|Win32 = Debug - Old Metamod|Win32
Debug - Orange Box|Win32 = Debug - Orange Box|Win32
- Release - Episode 1|Win32 = Release - Episode 1|Win32
- Release - Old Metamod|Win32 = Release - Old Metamod|Win32
Release - Orange Box|Win32 = Release - Orange Box|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Episode1|Win32.ActiveCfg = Debug - Episode1|Win32
- {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Episode1|Win32.Build.0 = Debug - Episode1|Win32
- {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Old Metamod|Win32.ActiveCfg = Debug - Old Metamod|Win32
- {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Old Metamod|Win32.Build.0 = Debug - Old Metamod|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Orange Box|Win32.ActiveCfg = Debug - Orange Box|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Orange Box|Win32.Build.0 = Debug - Orange Box|Win32
- {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Episode 1|Win32.ActiveCfg = Release - Episode 1|Win32
- {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Episode 1|Win32.Build.0 = Release - Episode 1|Win32
- {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Old Metamod|Win32.ActiveCfg = Release - Old Metamod|Win32
- {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Old Metamod|Win32.Build.0 = Release - Old Metamod|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Orange Box|Win32.ActiveCfg = Release - Orange Box|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Orange Box|Win32.Build.0 = Release - Orange Box|Win32
EndGlobalSection
diff --git a/extensions/tf2/msvc8/tf2.vcproj b/extensions/tf2/msvc8/tf2.vcproj
index 320051c1..81d60d27 100644
--- a/extensions/tf2/msvc8/tf2.vcproj
+++ b/extensions/tf2/msvc8/tf2.vcproj
@@ -15,246 +15,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
&1 | cut -b1)
ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
CPPFLAGS += $(CPP_GCC4_FLAGS)
endif
@@ -67,24 +100,29 @@ OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
$(BIN_DIR)/%.o: %.cpp
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
-all:
+all: check
mkdir -p $(BIN_DIR)/sdk
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
- $(MAKE) extension
+ if [ "$(USEMETA)" == "true" ]; then \
+ ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; \
+ ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; \
+ fi
+ $(MAKE) -f Makefile extension
-extension: $(OBJ_LINUX)
- $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+check:
+ if [ "$(USEMETA)" == "true" ] && [ "$(ENGSET)" == "false" ]; then \
+ echo "You must supply ENGINE=orangebox or ENGINE=original"; \
+ exit 1; \
+ fi
+
+extension: check $(OBJ_LINUX)
+ $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
debug:
- $(MAKE) all DEBUG=true
+ $(MAKE) -f Makefile all DEBUG=true
default: all
-clean:
- rm -rf Release/*.o
- rm -rf Release/sdk/*.o
- rm -rf Release/$(BINARY)
- rm -rf Debug/*.o
- rm -rf Debug/sdk/*.o
- rm -rf Debug/$(BINARY)
+clean: check
+ rm -rf $(BIN_DIR)/*.o
+ rm -rf $(BIN_DIR)/sdk/*.o
+ rm -rf $(BIN_DIR)/$(BINARY)
diff --git a/loader/Makefile b/loader/Makefile
index 06645536..ee02c339 100644
--- a/loader/Makefile
+++ b/loader/Makefile
@@ -1,11 +1,7 @@
-#(C)2004-2008 AlliedModders LLC
-#
-# This sample Makefile is designed for SourceMod extensions that
-# do not need to be built against HL2SDK, and do not require
-# running against Metamod:Source.
+# (C)2004-2008 SourceMod Development Team
+# Makefile written by David "BAILOPAN" Anderson
-SMSDK = ..
-SOURCEMM = ../../sourcemm-1.6
+SOURCEMM16 = ../../sourcemm-1.6
#####################################
### EDIT BELOW FOR OTHER PROJECTS ###
@@ -19,21 +15,20 @@ OBJECTS = loader.cpp
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
##############################################
-C_OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
-C_DEBUG_FLAGS = -g -ggdb3
-CPP_GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
+C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -s -pipe -fno-strict-aliasing
+C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
+C_GCC4_FLAGS = -fvisibility=hidden
+CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
CPP = gcc-4.1
LINK = -static-libgcc
-INCLUDE = -I. -I.. -Isdk -I$(SOURCEMM) -I$(SOURCEMM)/sourcehook -I$(SOURCEMM)/sourcemm \
- -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SMSDK)/public/extensions \
+INCLUDE = -I$(SOURCEMM16) -I$(SOURCEMM16)/sourcehook -I$(SOURCEMM16)/sourcemm
-CFLAGS = -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \
- -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \
- -Dstrcmpi=strcasecmp -Wall -Werror -fPIC -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H \
- -Wno-uninitialized -m32
-CPPFLAGS = -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
+CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
+ -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Wno-uninitialized \
+ -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32
+CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
################################################
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
@@ -47,9 +42,9 @@ else
CFLAGS += $(C_OPT_FLAGS)
endif
-
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
CPPFLAGS += $(CPP_GCC4_FLAGS)
endif
@@ -61,21 +56,17 @@ $(BIN_DIR)/%.o: %.cpp
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
all:
- mkdir -p $(BIN_DIR)/sdk
- $(MAKE) extension
+ mkdir -p $(BIN_DIR)
+ $(MAKE) -f Makefile loader
-extension: $(OBJ_LINUX)
- $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+loader: $(OBJ_LINUX)
+ $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
-debug:
- $(MAKE) all DEBUG=true
+debug:
+ $(MAKE) -f Makefile all DEBUG=true
default: all
clean:
- rm -rf Release/*.o
- rm -rf Release/sdk/*.o
- rm -rf Release/$(BINARY)
- rm -rf Debug/*.o
- rm -rf Debug/sdk/*.o
- rm -rf Debug/$(BINARY)
+ rm -rf $(BIN_DIR)/*.o
+ rm -rf $(BIN_DIR)/$(BINARY)
diff --git a/loader/msvc8/loader.vcproj b/loader/msvc8/loader.vcproj
index 1188ff0e..334cdc46 100644
--- a/loader/msvc8/loader.vcproj
+++ b/loader/msvc8/loader.vcproj
@@ -40,7 +40,7 @@
-
-
&1 | cut -b1)
+ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
+ CPPFLAGS += $(CPP_GCC4_FLAGS)
+endif
+
+BINARY = $(PROJECT)_i486.so
+
+OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
+
+$(BIN_DIR)/%.o: %.cpp
+ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
+
+all: check
+ mkdir -p $(BIN_DIR)
+ ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so;
+ ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so;
+ $(MAKE) -f Makefile mms_ext
+
+check:
+ if [ "$(ENGSET)" == "false" ]; then \
+ echo "You must supply ENGINE=orangebox or ENGINE=original"; \
+ exit 1; \
+ fi
+
+mms_ext: check $(OBJ_LINUX)
+ $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+
+debug:
+ $(MAKE) -f Makefile all DEBUG=true
+
+default: all
+
+clean: check
+ rm -rf $(BIN_DIR)/*.o
+ rm -rf $(BIN_DIR)/$(BINARY)
diff --git a/public/mms_sample_ext/Makefile.ep2 b/public/mms_sample_ext/Makefile.ep2
deleted file mode 100644
index 18893901..00000000
--- a/public/mms_sample_ext/Makefile.ep2
+++ /dev/null
@@ -1,73 +0,0 @@
-#(C)2004-2008 Metamod:Source Development Team
-# Makefile written by David "BAILOPAN" Anderson
-
-HL2SDK = ../../../hl2sdk-ob
-SMM_ROOT = ../../../sourcemm-1.6.0
-SRCDS = ~/srcds/orangebox
-SMSDK = ..
-
-### EDIT BELOW FOR OTHER PROJECTS ###
-
-OPT_FLAGS = -O3 -funroll-loops -s -pipe
-GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
-DEBUG_FLAGS = -g -ggdb3
-CPP = gcc-4.1
-BINARY = stub_mm_i486.so
-
-HL2PUB = $(HL2SDK)/public
-
-OBJECTS = stub_mm.cpp sm_ext.cpp sm_sdk_config.cpp stub_util.cpp
-
-LINK = vstdlib_i486.so tier0_i486.so -static-libgcc
-
-INCLUDE = -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 \
- -I$(HL2PUB)/tier1 -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SMM_ROOT) -I$(SMM_ROOT)/sourcehook \
- -I$(SMM_ROOT)/sourcemm -I$(SMSDK) -I$(SMSDK)/jit -I$(SMSDK)/jit/x86 -I$(SMSDK)/extensions \
- -I$(SMSDK)/sourcepawn
-
-ifeq "$(DEBUG)" "true"
- BIN_DIR = Debug
- CFLAGS = $(DEBUG_FLAGS)
-else
- BIN_DIR = Release
- CFLAGS = $(OPT_FLAGS)
-endif
-
-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
-
-CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \
- -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \
- -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Werror -fPIC -fno-exceptions -fno-rtti -msse \
- -fno-strict-aliasing -DORANGEBOX_BUILD
-
-ifeq "$(GCC_VERSION)" "4"
- CFLAGS += $(GCC4_FLAGS)
-endif
-
-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
-
-$(BIN_DIR)/%.o: %.cpp
- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
-
-all:
- mkdir -p $(BIN_DIR)
- rm -f vstdlib_i486.so
- rm -f tier0_i486.so
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
- $(MAKE) -f Makefile.orig stub_mm
- rm -rf $(BINARY)
-
-stub_mm: $(OBJ_LINUX)
- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
-
-debug:
- $(MAKE) -f Makefile.orig all DEBUG=true
-
-default: all
-
-clean:
- rm -rf Release/*.o
- rm -rf Release/$(BINARY)
- rm -rf Debug/*.o
- rm -rf Debug/$(BINARY)
diff --git a/public/mms_sample_ext/Makefile.orig b/public/mms_sample_ext/Makefile.orig
deleted file mode 100644
index 62b17db7..00000000
--- a/public/mms_sample_ext/Makefile.orig
+++ /dev/null
@@ -1,73 +0,0 @@
-#(C)2004-2008 Metamod:Source Development Team
-# Makefile written by David "BAILOPAN" Anderson
-
-HL2SDK = ../../../hl2sdk
-SMM_ROOT = ../../../sourcemm-1.4.2
-SRCDS = ~/srcds
-SMSDK = ..
-
-### EDIT BELOW FOR OTHER PROJECTS ###
-
-OPT_FLAGS = -O3 -funroll-loops -s -pipe
-GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
-DEBUG_FLAGS = -g -ggdb3
-CPP = gcc-4.1
-BINARY = stub_mm_i486.so
-
-HL2PUB = $(HL2SDK)/public
-
-OBJECTS = stub_mm.cpp sm_ext.cpp sm_sdk_config.cpp stub_util.cpp
-
-LINK = vstdlib_i486.so tier0_i486.so -static-libgcc
-
-INCLUDE = -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 \
- -I$(HL2PUB)/tier1 -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SMM_ROOT) -I$(SMM_ROOT)/sourcehook \
- -I$(SMM_ROOT)/sourcemm -I$(SMSDK) -I$(SMSDK)/jit -I$(SMSDK)/jit/x86 -I$(SMSDK)/extensions \
- -I$(SMSDK)/sourcepawn
-
-ifeq "$(DEBUG)" "true"
- BIN_DIR = Debug
- CFLAGS = $(DEBUG_FLAGS)
-else
- BIN_DIR = Release
- CFLAGS = $(OPT_FLAGS)
-endif
-
-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
-
-CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \
- -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \
- -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Werror -fPIC -fno-exceptions -fno-rtti -msse \
- -fno-strict-aliasing
-
-ifeq "$(GCC_VERSION)" "4"
- CFLAGS += $(GCC4_FLAGS)
-endif
-
-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
-
-$(BIN_DIR)/%.o: %.cpp
- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
-
-all:
- mkdir -p $(BIN_DIR)
- rm -f vstdlib_i486.so
- rm -f tier0_i486.so
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
- $(MAKE) -f Makefile.orig stub_mm
- rm -rf $(BINARY)
-
-stub_mm: $(OBJ_LINUX)
- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
-
-debug:
- $(MAKE) -f Makefile.orig all DEBUG=true
-
-default: all
-
-clean:
- rm -rf Release/*.o
- rm -rf Release/$(BINARY)
- rm -rf Debug/*.o
- rm -rf Debug/$(BINARY)
diff --git a/public/sample_ext/Makefile b/public/sample_ext/Makefile
index 748cc788..b52a489e 100644
--- a/public/sample_ext/Makefile
+++ b/public/sample_ext/Makefile
@@ -1,12 +1,12 @@
-#(C)2004-2008 Metamod:Source Development Team
+# (C)2004-2008 SourceMod Development Team
# Makefile written by David "BAILOPAN" Anderson
+SMSDK = ../..
+SRCDS_BASE = ~/srcds
HL2SDK_ORIG = ../../../hl2sdk
HL2SDK_OB = ../../../hl2sdk-ob
SOURCEMM14 = ../../../sourcemm-1.4
SOURCEMM16 = ../../../sourcemm-1.6
-SRCDS_BASE = ~/srcds
-SMSDK = ../..
#####################################
### EDIT BELOW FOR OTHER PROJECTS ###
@@ -25,7 +25,8 @@ OBJECTS = sdk/smsdk_ext.cpp extension.cpp
C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -s -pipe -fno-strict-aliasing
C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
-CPP_GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
+C_GCC4_FLAGS = -fvisibility=hidden
+CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
CPP = gcc-4.1
override ENGSET = false
@@ -44,7 +45,7 @@ ifeq "$(ENGINE)" "orangebox"
HL2LIB = $(HL2SDK_OB)/linux_sdk
CFLAGS += -DORANGEBOX_BUILD
METAMOD = $(SOURCEMM16)
- INCLUDE += -I$(HL2SDK)/public/game/server -I$(HL2SDK)/common
+ INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/orangebox
override ENGSET = true
endif
@@ -55,10 +56,10 @@ ifeq "$(USEMETA)" "true"
LINK += $(LINK_HL2)
INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
- -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(METAMOD)/sourcemm \
- -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SMSDK)/public/extensions
+ -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(METAMOD)/sourcemm -I$(SMSDK)/public \
+ -I$(SMSDK)/public/sourcepawn
else
- INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SMSDK)/public/extensions
+ INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn
endif
LINK += -static-libgcc
@@ -66,7 +67,7 @@ LINK += -static-libgcc
CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
-D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror -Wno-switch \
-Wno-unused -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32
-CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti -fno-threadsafe-statics
+CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
################################################
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
@@ -86,6 +87,7 @@ endif
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
CPPFLAGS += $(CPP_GCC4_FLAGS)
endif
diff --git a/public/sample_ext/msvc8/sdk.vcproj b/public/sample_ext/msvc8/sdk.vcproj
index d733f71e..d0ad2229 100644
--- a/public/sample_ext/msvc8/sdk.vcproj
+++ b/public/sample_ext/msvc8/sdk.vcproj
@@ -201,7 +201,7 @@
&1 | cut -b1)
-
-ifeq "$(GCC_VERSION)" "4"
- OPT_CPP_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
-endif
-
-ifeq "$(DEBUG)" "true"
- BIN_DIR = Debug
- CFLAGS = $(DEBUG_C_FLAGS)
-else
- BIN_DIR = Release
- CFLAGS = $(OPT_C_FLAGS)
- CPPFLAGS += $(OPT_CPP_FLAGS)
-endif
-
-CFLAGS += -DLINUX -DNDEBUG -DHAVE_STDINT_H -DAMX_ANSIONLY -DENABLE_BINRELOC -m32
-CPPFLAGS += -Wno-deprecated -fno-exceptions -fno-rtti
-
-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
-OBJ_LINUX := $(OBJECTS:%.c=$(BIN_DIR)/%.o)
-
-$(BIN_DIR)/%.o: %.cpp
- $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
-
-$(BIN_DIR)/%.o: %.c
- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
-
-all:
- mkdir -p $(BIN_DIR)/zlib
- $(MAKE) spcomp
-
-spcomp: $(OBJ_LINUX)
- $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) $(OBJ_LINUX) $(LINK) -m32 -ldl -lm -o$(BIN_DIR)/$(BINARY)
-
-debug:
- $(MAKE) all DEBUG=true
-
-default: all
-
-clean:
- rm -rf Release/*.o
- rm -rf Release/$(BINARY)
- rm -rf Debug/*.o
- rm -rf Debug/$(BINARY)
-
+# (C)2004-2008 SourceMod Development Team
+# Makefile written by David "BAILOPAN" Anderson
+
+SMSDK = ../..
+
+#####################################
+### EDIT BELOW FOR OTHER PROJECTS ###
+#####################################
+
+BINARY = spcomp
+
+OBJECTS = binreloc.c libpawnc.c lstring.c memfile.c pawncc.c sc1.c sc2.c sc3.c sc4.c \
+ sc5.c sc6.c sc7.c scexpand.c sci18n.c sclist.c scmemfil.c scstate.c sctracker.c \
+ scvars.c sp_file.c
+OBJECTS += zlib/adler32.c zlib/compress.c zlib/crc32.c zlib/deflate.c zlib/gzio.c \
+ zlib/infback.c zlib/inffast.c zlib/inflate.c zlib/inftrees.c zlib/trees.c \
+ zlib/uncompr.c zlib/zutil.c
+
+##############################################
+### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
+##############################################
+
+C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer
+C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
+C_GCC4_FLAGS = -fvisibility=hidden
+CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
+CPP = gcc-4.1
+
+LINK = -lgcc -static-libgcc
+
+INCLUDE = -I. -I$(SMSDK)/public/sourcepawn
+
+CFLAGS += -DLINUX -DNDEBUG -DHAVE_STDINT_H -DAMX_ANSIONLY -DENABLE_BINRELOC -m32
+CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
+
+################################################
+### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
+################################################
+
+ifeq "$(DEBUG)" "true"
+ BIN_DIR = Debug
+ CFLAGS += $(C_DEBUG_FLAGS)
+else
+ BIN_DIR = Release
+ CFLAGS += $(C_OPT_FLAGS)
+endif
+
+GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
+ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
+ CPPFLAGS += $(CPP_GCC4_FLAGS)
+endif
+
+OBJ_LINUX := $(OBJECTS:%.c=$(BIN_DIR)/%.o)
+
+$(BIN_DIR)/%.o: %.c
+ $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
+
+all:
+ mkdir -p $(BIN_DIR)/zlib
+ $(MAKE) -f Makefile compiler
+
+compiler: $(OBJ_LINUX)
+ $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -ldl -lm -o$(BIN_DIR)/$(BINARY)
+
+debug:
+ $(MAKE) -f Makefile all DEBUG=true
+
+default: all
+
+clean:
+ rm -rf $(BIN_DIR)/*.o
+ rm -rf $(BIN_DIR)/zlib/*.o
+ rm -rf $(BIN_DIR)/$(BINARY)
diff --git a/sourcepawn/jit/x86/Makefile b/sourcepawn/jit/x86/Makefile
index 9ba72d91..2a5cf89f 100644
--- a/sourcepawn/jit/x86/Makefile
+++ b/sourcepawn/jit/x86/Makefile
@@ -1,69 +1,73 @@
-#(C)2004-2008 Metamod:Source Development Team
-# Makefile written by David "BAILOPAN" Anderson
-
-SRCDS = ~/srcds
-SMSDK = ../../..
-
-### EDIT BELOW FOR OTHER PROJECTS ###
-
-OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
-GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
-DEBUG_FLAGS = -g -ggdb3
-CPP = gcc-4.1
-BINARY = sourcepawn.jit.x86.so
-
-HL2PUB = $(HL2SDK)/public
-HL2LIB = $(HL2SDK)/linux_sdk
-
-OBJECTS = dll_exports.cpp jit_x86.cpp opcode_helpers.cpp
-
-LINK = -static-libgcc
-
-INCLUDE = -I. -I.. -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn \
- -I$(SMSDK)/public/jit -I$(SMSDK)/public/jit/x86
-
-ifeq "$(DEBUG)" "true"
- BIN_DIR = Debug
- CFLAGS = $(DEBUG_FLAGS)
-else
- BIN_DIR = Release
- CFLAGS = $(OPT_FLAGS)
-endif
-
-GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
-
-CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \
- -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \
- -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -fno-rtti \
- -DHAVE_STDINT_H -m32
-
-ifeq "$(GCC_VERSION)" "4"
- CFLAGS += $(GCC4_FLAGS)
-endif
-
-OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
-
-$(BIN_DIR)/%.o: %.cpp
- $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
-
-all:
- mkdir -p $(BIN_DIR)
- ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
- ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
- $(MAKE) binary
- rm -rf $(BINARY)
- ln -sf $(BIN_DIR)/$(BINARY) $(BINARY)
-
-binary: $(OBJ_LINUX)
- $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
-
-debug:
- $(MAKE) all DEBUG=true
-
-default: all
-
-clean:
- rm -rf Release/*.o
- rm -rf Release/$(BINARY)
- rm -rf Debug/*.o
- rm -rf Debug/$(BINARY)
+# (C)2004-2008 SourceMod Development Team
+# Makefile written by David "BAILOPAN" Anderson
+
+SMSDK = ../../..
+
+#####################################
+### EDIT BELOW FOR OTHER PROJECTS ###
+#####################################
+
+PROJECT = sourcepawn.jit.x86
+
+OBJECTS = dll_exports.cpp jit_x86.cpp opcode_helpers.cpp
+
+##############################################
+### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
+##############################################
+
+C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -s -pipe -fno-strict-aliasing
+C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
+C_GCC4_FLAGS = -fvisibility=hidden
+CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
+CPP = gcc-4.1
+
+LINK = -static-libgcc
+
+INCLUDE = -I. -I.. -I$(SMSDK)/public -I$(SMSDK)/public/jit -I$(SMSDK)/public/jit/x86 \
+ -I$(SMSDK)/public/sourcepawn
+
+CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
+ -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -DHAVE_STDINT_H \
+ -m32
+CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
+
+################################################
+### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
+################################################
+
+ifeq "$(DEBUG)" "true"
+ BIN_DIR = Debug
+ CFLAGS += $(C_DEBUG_FLAGS)
+else
+ BIN_DIR = Release
+ CFLAGS += $(C_OPT_FLAGS)
+endif
+
+GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
+ifeq "$(GCC_VERSION)" "4"
+ CFLAGS += $(C_GCC4_FLAGS)
+ CPPFLAGS += $(CPP_GCC4_FLAGS)
+endif
+
+BINARY = $(PROJECT).so
+
+OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
+
+$(BIN_DIR)/%.o: %.cpp
+ $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
+
+all:
+ mkdir -p $(BIN_DIR)
+ $(MAKE) -f Makefile jit
+
+jit: $(OBJ_LINUX)
+ $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
+
+debug:
+ $(MAKE) -f Makefile all DEBUG=true
+
+default: all
+
+clean:
+ rm -rf $(BIN_DIR)/*.o
+ rm -rf $(BIN_DIR)/$(BINARY)