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)
+