diff --git a/public/mms_sample_ext/Makefile b/public/mms_sample_ext/Makefile index 4f370014..cacedf23 100644 --- a/public/mms_sample_ext/Makefile +++ b/public/mms_sample_ext/Makefile @@ -2,7 +2,6 @@ # Makefile written by David "BAILOPAN" Anderson SMSDK = .. -SRCDS_BASE = ~/srcds HL2SDK_ORIG = ../../../hl2sdk HL2SDK_OB = ../../../hl2sdk-ob HL2SDK_OB_VALVE = ../../../hl2sdk-ob-valve @@ -15,7 +14,6 @@ MMSOURCE18 = ../../../mmsource-1.8 ##################################### PROJECT = stub_mm - OBJECTS = stub_mm.cpp sm_ext.cpp sm_sdk_config.cpp stub_util.cpp ############################################## @@ -28,63 +26,68 @@ C_GCC4_FLAGS = -fvisibility=hidden CPP_GCC4_FLAGS = -fvisibility-inlines-hidden CPP = gcc +########################## +### SDK CONFIGURATIONS ### +########################## + override ENGSET = false + +# Check for valid list of engines +ifneq (,$(filter original orangebox orangeboxvalve left4dead left4dead2,$(ENGINE))) + override ENGSET = true +endif + ifeq "$(ENGINE)" "original" HL2SDK = $(HL2SDK_ORIG) - HL2PUB = $(HL2SDK)/public - HL2LIB = $(HL2SDK)/linux_sdk CFLAGS += -DSOURCE_ENGINE=1 - METAMOD = $(MMSOURCE18)/core-legacy - INCLUDE += -I$(HL2SDK)/public/dlls - SRCDS = $(SRCDS_BASE) - LIB_SUFFIX = _i486.so - override ENGSET = true endif ifeq "$(ENGINE)" "orangebox" HL2SDK = $(HL2SDK_OB) - HL2PUB = $(HL2SDK)/public - HL2LIB = $(HL2SDK)/lib/linux CFLAGS += -DSOURCE_ENGINE=3 - METAMOD = $(MMSOURCE18)/core - INCLUDE += -I$(HL2SDK)/public/game/server - SRCDS = $(SRCDS_BASE)/orangebox - LIB_SUFFIX = _i486.so - override ENGSET = true endif ifeq "$(ENGINE)" "orangeboxvalve" HL2SDK = $(HL2SDK_OB_VALVE) - HL2PUB = $(HL2SDK)/public - HL2LIB = $(HL2SDK)/lib/linux CFLAGS += -DSOURCE_ENGINE=4 - METAMOD = $(MMSOURCE18)/core - INCLUDE += -I$(HL2SDK)/public/game/server - SRCDS = $(SRCDS_BASE)/orangebox - LIB_PREFIX = lib - LIB_SUFFIX = .so - override ENGSET = true endif ifeq "$(ENGINE)" "left4dead" HL2SDK = $(HL2SDK_L4D) - HL2PUB = $(HL2SDK)/public - HL2LIB = $(HL2SDK)/lib/linux CFLAGS += -DSOURCE_ENGINE=5 - METAMOD = $(MMSOURCE18)/core - INCLUDE += -I$(HL2SDK)/public/game/server - SRCDS = $(SRCDS_BASE)/l4d - LIB_SUFFIX = _i486.so - override ENGSET = true endif ifeq "$(ENGINE)" "left4dead2" HL2SDK = $(HL2SDK_L4D2) - HL2PUB = $(HL2SDK)/public - HL2LIB = $(HL2SDK)/lib/linux CFLAGS += -DSOURCE_ENGINE=6 - METAMOD = $(MMSOURCE18)/core +endif + +HL2PUB = $(HL2SDK)/public + +ifeq "$(ENGINE)" "original" + INCLUDE += -I$(HL2SDK)/public/dlls + METAMOD = $(MMSOURCE18)/core-legacy +else INCLUDE += -I$(HL2SDK)/public/game/server - SRCDS = $(SRCDS_BASE)/left4dead2 + METAMOD = $(MMSOURCE18)/core +endif + +OS := $(shell uname -s) + +ifeq "$(OS)" "Darwin" + LIB_EXT = dylib + HL2LIB = $(HL2SDK)/lib/mac +else + LIB_EXT = so + ifeq "$(ENGINE)" "original" + HL2LIB = $(HL2SDK)/linux_sdk + else + HL2LIB = $(HL2SDK)/lib/linux + endif +endif + +# if ENGINE is orig, OB, or L4D +ifneq (,$(filter original orangebox left4dead,$(ENGINE))) + LIB_SUFFIX = _i486.$(LIB_EXT) +else LIB_PREFIX = lib - LIB_SUFFIX = .so - override ENGSET = true + LIB_SUFFIX = .$(LIB_EXT) endif CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 \ @@ -96,15 +99,17 @@ INCLUDE += -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB) -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(SMSDK) -I$(SMSDK)/jit -I$(SMSDK)/jit/x86 \ -I$(SMSDK)/extensions -I$(SMSDK)/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 -Werror -mfpmath=sse \ - -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32 +CFLAGS += -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 ### ################################################ +BINARY = $(PROJECT).$(LIB_EXT) + ifeq "$(DEBUG)" "true" BIN_DIR = Debug.$(ENGINE) CFLAGS += $(C_DEBUG_FLAGS) @@ -113,13 +118,14 @@ else CFLAGS += $(C_OPT_FLAGS) endif -OS := $(shell uname -s) ifeq "$(OS)" "Darwin" - LINK += -dynamiclib - BINARY = $(PROJECT).dylib + LIB_EXT = dylib + CFLAGS += -isysroot /Developer/SDKs/MacOSX10.5.sdk + LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 else - LINK += -static-libgcc -shared - BINARY = $(PROJECT)_i486.so + LIB_EXT = so + CFLAGS += -D_LINUX + LINK += -shared endif GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) @@ -128,7 +134,7 @@ ifeq "$(GCC_VERSION)" "4" CPPFLAGS += $(CPP_GCC4_FLAGS) endif -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) $(BIN_DIR)/%.o: %.cpp $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< @@ -146,8 +152,8 @@ check: exit 1; \ fi -mms_ext: check $(OBJ_LINUX) - $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -o $(BIN_DIR)/$(BINARY) +mms_ext: check $(OBJ_BIN) + $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) debug: $(MAKE) -f Makefile all DEBUG=true diff --git a/public/sample_ext/Makefile b/public/sample_ext/Makefile index 9a3aaf11..ff3f50ea 100644 --- a/public/sample_ext/Makefile +++ b/public/sample_ext/Makefile @@ -1,8 +1,11 @@ # (C)2004-2010 SourceMod Development Team # Makefile written by David "BAILOPAN" Anderson +########################################### +### EDIT THESE PATHS FOR YOUR OWN SETUP ### +########################################### + SMSDK = ../.. -SRCDS_BASE = ~/srcds HL2SDK_ORIG = ../../../hl2sdk HL2SDK_OB = ../../../hl2sdk-ob HL2SDK_OB_VALVE = ../../../hl2sdk-ob-valve @@ -31,89 +34,96 @@ C_GCC4_FLAGS = -fvisibility=hidden CPP_GCC4_FLAGS = -fvisibility-inlines-hidden CPP = gcc +########################## +### SDK CONFIGURATIONS ### +########################## + override ENGSET = false + +# Check for valid list of engines +ifneq (,$(filter original orangebox orangeboxvalve left4dead left4dead2,$(ENGINE))) + override ENGSET = true +endif + ifeq "$(ENGINE)" "original" HL2SDK = $(HL2SDK_ORIG) - HL2PUB = $(HL2SDK)/public - HL2LIB = $(HL2SDK)/linux_sdk CFLAGS += -DSOURCE_ENGINE=1 - METAMOD = $(MMSOURCE18)/core-legacy - INCLUDE += -I$(HL2SDK)/public/dlls - SRCDS = $(SRCDS_BASE) - LIB_SUFFIX = _i486.so - override ENGSET = true endif ifeq "$(ENGINE)" "orangebox" HL2SDK = $(HL2SDK_OB) - HL2PUB = $(HL2SDK)/public - HL2LIB = $(HL2SDK)/lib/linux CFLAGS += -DSOURCE_ENGINE=3 - METAMOD = $(MMSOURCE18)/core - INCLUDE += -I$(HL2SDK)/public/game/server - SRCDS = $(SRCDS_BASE)/orangebox - LIB_SUFFIX = _i486.so - override ENGSET = true endif ifeq "$(ENGINE)" "orangeboxvalve" HL2SDK = $(HL2SDK_OB_VALVE) - HL2PUB = $(HL2SDK)/public - HL2LIB = $(HL2SDK)/lib/linux CFLAGS += -DSOURCE_ENGINE=4 - METAMOD = $(MMSOURCE18)/core - INCLUDE += -I$(HL2SDK)/public/game/server - SRCDS = $(SRCDS_BASE)/orangebox - LIB_PREFIX = lib - LIB_SUFFIX = .so - override ENGSET = true endif ifeq "$(ENGINE)" "left4dead" HL2SDK = $(HL2SDK_L4D) - HL2PUB = $(HL2SDK)/public - HL2LIB = $(HL2SDK)/lib/linux CFLAGS += -DSOURCE_ENGINE=5 - METAMOD = $(MMSOURCE18)/core - INCLUDE += -I$(HL2SDK)/public/game/server - SRCDS = $(SRCDS_BASE)/l4d - LIB_SUFFIX = _i486.so - override ENGSET = true endif ifeq "$(ENGINE)" "left4dead2" HL2SDK = $(HL2SDK_L4D2) - HL2PUB = $(HL2SDK)/public - HL2LIB = $(HL2SDK)/lib/linux CFLAGS += -DSOURCE_ENGINE=6 - METAMOD = $(MMSOURCE18)/core - INCLUDE += -I$(HL2SDK)/public/game/server - SRCDS = $(SRCDS_BASE)/left4dead2 - LIB_PREFIX = lib - LIB_SUFFIX = .so - override ENGSET = true endif +HL2PUB = $(HL2SDK)/public + +ifeq "$(ENGINE)" "original" + INCLUDE += -I$(HL2SDK)/public/dlls + METAMOD = $(MMSOURCE18)/core-legacy +else + INCLUDE += -I$(HL2SDK)/public/game/server + METAMOD = $(MMSOURCE18)/core +endif + +OS := $(shell uname -s) + +ifeq "$(OS)" "Darwin" + LIB_EXT = dylib + HL2LIB = $(HL2SDK)/lib/mac +else + LIB_EXT = so + ifeq "$(ENGINE)" "original" + HL2LIB = $(HL2SDK)/linux_sdk + else + HL2LIB = $(HL2SDK)/lib/linux + endif +endif + +# if ENGINE is orig, OB, or L4D +ifneq (,$(filter original orangebox left4dead,$(ENGINE))) + LIB_SUFFIX = _i486.$(LIB_EXT) +else + LIB_PREFIX = lib + LIB_SUFFIX = .$(LIB_EXT) +endif + +INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn + ifeq "$(USEMETA)" "true" LINK_HL2 = $(HL2LIB)/tier1_i486.a $(LIB_PREFIX)vstdlib$(LIB_SUFFIX) $(LIB_PREFIX)tier0$(LIB_SUFFIX) LINK += $(LINK_HL2) - INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \ - -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn + INCLUDE += -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 -I$(METAMOD) \ + -I$(METAMOD)/sourcehook CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 \ -DSE_LEFT4DEAD=5 -DSE_LEFT4DEAD2=6 -else - INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn endif LINK += -m32 -lm -ldl -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 +CFLAGS += -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 ################################################ ### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ################################################ +BINARY = $(PROJECT).ext.$(LIB_EXT) + ifeq "$(DEBUG)" "true" BIN_DIR = Debug CFLAGS += $(C_DEBUG_FLAGS) @@ -126,13 +136,14 @@ ifeq "$(USEMETA)" "true" BIN_DIR := $(BIN_DIR).$(ENGINE) endif -OS := $(shell uname -s) ifeq "$(OS)" "Darwin" - LINK += -dynamiclib - BINARY = $(PROJECT).ext.dylib + LIB_EXT = dylib + CFLAGS += -isysroot /Developer/SDKs/MacOSX10.5.sdk + LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 else - LINK += -static-libgcc -shared - BINARY = $(PROJECT).ext.so + LIB_EXT = so + CFLAGS += -D_LINUX + LINK += -shared endif GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) @@ -141,7 +152,7 @@ ifeq "$(GCC_VERSION)" "4" CPPFLAGS += $(CPP_GCC4_FLAGS) endif -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) $(BIN_DIR)/%.o: %.cpp $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< @@ -161,8 +172,8 @@ check: exit 1; \ fi -extension: check $(OBJ_LINUX) - $(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -o $(BIN_DIR)/$(BINARY) +extension: check $(OBJ_BIN) + $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY) debug: $(MAKE) -f Makefile all DEBUG=true @@ -173,3 +184,4 @@ clean: check rm -rf $(BIN_DIR)/*.o rm -rf $(BIN_DIR)/sdk/*.o rm -rf $(BIN_DIR)/$(BINARY) +