1
0
mirror of https://github.com/alliedmodders/metamod-source.git synced 2025-02-26 19:54:14 +01:00

Update stub and sample Makefiles to build 64-bit binaries for CSGO on macOS.

This commit is contained in:
Scott Ehlert 2017-09-15 02:58:57 -05:00
parent 9e3cd1b824
commit 70fb7e2d68
2 changed files with 64 additions and 22 deletions

View File

@ -85,7 +85,11 @@ OS := $(shell uname -s)
ifeq "$(OS)" "Darwin" ifeq "$(OS)" "Darwin"
LIB_EXT = dylib LIB_EXT = dylib
HL2LIB = $(HL2SDK)/lib/mac ifeq "$(ENGINE)" "csgo"
HL2LIB = $(HL2SDK)/lib/osx64
else
HL2LIB = $(HL2SDK)/lib/mac
endif
else else
LIB_EXT = so LIB_EXT = so
ifeq "$(ENGINE)" "original" ifeq "$(ENGINE)" "original"
@ -111,14 +115,25 @@ else
endif endif
endif endif
ifeq "$(OS)" "Darwin"
ifeq "$(ENGINE)" "csgo"
STATIC_SUFFIX =
LIB_SUFFIX = .x64.$(LIB_EXT)
else
STATIC_SUFFIX = _i486
endif
else
STATIC_SUFFIX = _i486
endif
CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_BLOODYGOODTIME=4 -DSE_EYE=5 \ CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_BLOODYGOODTIME=4 -DSE_EYE=5 \
-DSE_CSS=6 -DSE_ORANGEBOXVALVE=7 -DSE_LEFT4DEAD=8 -DSE_LEFT4DEAD2=9 -DSE_ALIENSWARM=10 \ -DSE_CSS=6 -DSE_ORANGEBOXVALVE=7 -DSE_LEFT4DEAD=8 -DSE_LEFT4DEAD2=9 -DSE_ALIENSWARM=10 \
-DSE_PORTAL2=11 -DSE_CSGO=12 -DSE_PORTAL2=11 -DSE_CSGO=12
LINK += $(HL2LIB)/tier1_i486.a $(LIB_PREFIX)vstdlib$(LIB_SUFFIX) $(LIB_PREFIX)tier0$(LIB_SUFFIX) LINK += $(HL2LIB)/tier1$(STATIC_SUFFIX).a $(LIB_PREFIX)vstdlib$(LIB_SUFFIX) $(LIB_PREFIX)tier0$(LIB_SUFFIX)
ifeq "$(ENGINE)" "csgo" ifeq "$(ENGINE)" "csgo"
LINK += $(HL2LIB)/interfaces_i486.a LINK += $(HL2LIB)/interfaces$(STATIC_SUFFIX).a
endif endif
INCLUDE += -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/mathlib -I$(HL2PUB)/vstdlib \ INCLUDE += -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/mathlib -I$(HL2PUB)/vstdlib \
@ -141,12 +156,19 @@ endif
ifeq "$(OS)" "Darwin" ifeq "$(OS)" "Darwin"
CPP = $(CPP_OSX) CPP = $(CPP_OSX)
LIB_EXT = dylib LIB_EXT = dylib
CFLAGS += -DOSX -D_OSX CFLAGS += -DOSX -D_OSX -mmacosx-version-min=10.9
LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 LINK += -dynamiclib -lc++ -mmacosx-version-min=10.9
ifeq "$(ENGINE)" "csgo"
CFLAGS += -m64 -DX64BITS -DPLATFORM_64BITS
LINK += -m64
else
CFLAGS += -m32
LINK += -m32
endif
else else
LIB_EXT = so LIB_EXT = so
CFLAGS += -D_LINUX CFLAGS += -D_LINUX -m32
LINK += -shared LINK += -shared -m32
endif endif
IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
@ -162,7 +184,7 @@ endif
CFLAGS += -DPOSIX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \ CFLAGS += -DPOSIX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \
-Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \ -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \
-Dstrcmpi=strcasecmp -DCOMPILER_GCC -Wall -Wno-non-virtual-dtor -Wno-overloaded-virtual \ -Dstrcmpi=strcasecmp -DCOMPILER_GCC -Wall -Wno-non-virtual-dtor -Wno-overloaded-virtual \
-Werror -fPIC -fno-exceptions -fno-rtti -msse -m32 -fno-strict-aliasing -Werror -fPIC -fno-exceptions -fno-rtti -msse -fno-strict-aliasing
# Clang || GCC >= 4 # Clang || GCC >= 4
ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
@ -171,7 +193,7 @@ endif
# Clang >= 3 || GCC >= 4.7 # Clang >= 3 || GCC >= 4.7
ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
CFLAGS += -Wno-delete-non-virtual-dtor CFLAGS += -Wno-delete-non-virtual-dtor -Wno-unused-private-field -Wno-deprecated-register
endif endif
# OS is Linux and not using clang # OS is Linux and not using clang
@ -198,7 +220,7 @@ check:
fi fi
sample_mm: check $(OBJ_BIN) sample_mm: check $(OBJ_BIN)
$(CPP) $(INCLUDE) -m32 $(OBJ_BIN) $(LINK) -ldl -lm -o $(BIN_DIR)/$(BINARY) $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -ldl -lm -o $(BIN_DIR)/$(BINARY)
default: all default: all

View File

@ -26,7 +26,7 @@ OBJECTS = stub_mm.cpp
############################################## ##############################################
OPT_FLAGS = -O3 -funroll-loops -pipe OPT_FLAGS = -O3 -funroll-loops -pipe
GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden -std=c++11
DEBUG_FLAGS = -g -ggdb3 -D_DEBUG DEBUG_FLAGS = -g -ggdb3 -D_DEBUG
CPP = gcc CPP = gcc
CPP_OSX = clang CPP_OSX = clang
@ -85,7 +85,11 @@ OS := $(shell uname -s)
ifeq "$(OS)" "Darwin" ifeq "$(OS)" "Darwin"
LIB_EXT = dylib LIB_EXT = dylib
HL2LIB = $(HL2SDK)/lib/mac ifeq "$(ENGINE)" "csgo"
HL2LIB = $(HL2SDK)/lib/osx64
else
HL2LIB = $(HL2SDK)/lib/mac
endif
else else
LIB_EXT = so LIB_EXT = so
ifeq "$(ENGINE)" "original" ifeq "$(ENGINE)" "original"
@ -111,14 +115,24 @@ else
endif endif
endif endif
ifeq "$(OS)" "Darwin"
ifeq "$(ENGINE)" "csgo"
STATIC_SUFFIX =
else
STATIC_SUFFIX = _i486
endif
else
STATIC_SUFFIX = _i486
endif
CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_BLOODYGOODTIME=4 -DSE_EYE=5 \ CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_BLOODYGOODTIME=4 -DSE_EYE=5 \
-DSE_CSS=6 -DSE_ORANGEBOXVALVE=7 -DSE_LEFT4DEAD=8 -DSE_LEFT4DEAD2=9 -DSE_ALIENSWARM=10 \ -DSE_CSS=6 -DSE_ORANGEBOXVALVE=7 -DSE_LEFT4DEAD=8 -DSE_LEFT4DEAD2=9 -DSE_ALIENSWARM=10 \
-DSE_PORTAL2=11 -DSE_CSGO=12 -DSE_PORTAL2=11 -DSE_CSGO=12
LINK += $(HL2LIB)/tier1_i486.a $(LIB_PREFIX)vstdlib$(LIB_SUFFIX) $(LIB_PREFIX)tier0$(LIB_SUFFIX) LINK += $(HL2LIB)/tier1$(STATIC_SUFFIX).a $(LIB_PREFIX)vstdlib$(LIB_SUFFIX) $(LIB_PREFIX)tier0$(LIB_SUFFIX)
ifeq "$(ENGINE)" "csgo" ifeq "$(ENGINE)" "csgo"
LINK += $(HL2LIB)/interfaces_i486.a LINK += $(HL2LIB)/interfaces$(STATIC_SUFFIX).a
endif endif
INCLUDE += -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/mathlib -I$(HL2PUB)/vstdlib \ INCLUDE += -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/mathlib -I$(HL2PUB)/vstdlib \
@ -138,16 +152,22 @@ else
CFLAGS += $(OPT_FLAGS) CFLAGS += $(OPT_FLAGS)
endif endif
ifeq "$(OS)" "Darwin" ifeq "$(OS)" "Darwin"
CPP = $(CPP_OSX) CPP = $(CPP_OSX)
LIB_EXT = dylib LIB_EXT = dylib
CFLAGS += -DOSX -D_OSX CFLAGS += -DOSX -D_OSX -mmacosx-version-min=10.9
LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 LINK += -dynamiclib -lc++ -mmacosx-version-min=10.9
ifeq "$(ENGINE)" "csgo"
CFLAGS += -m64 -DX64BITS -DPLATFORM_64BITS
LINK += -m64
else
CFLAGS += -m32
LINK += -m32
endif
else else
LIB_EXT = so LIB_EXT = so
CFLAGS += -D_LINUX CFLAGS += -D_LINUX -m32
LINK += -shared LINK += -shared -m32
endif endif
IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0") IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
@ -163,7 +183,7 @@ endif
CFLAGS += -DPOSIX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \ CFLAGS += -DPOSIX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \
-Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \ -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \
-Dstrcmpi=strcasecmp -DCOMPILER_GCC -Wall -Wno-non-virtual-dtor -Wno-overloaded-virtual \ -Dstrcmpi=strcasecmp -DCOMPILER_GCC -Wall -Wno-non-virtual-dtor -Wno-overloaded-virtual \
-Werror -fPIC -fno-exceptions -fno-rtti -msse -m32 -fno-strict-aliasing -Werror -fPIC -fno-exceptions -fno-rtti -msse -fno-strict-aliasing
# Clang || GCC >= 4 # Clang || GCC >= 4
ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1" ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
@ -172,7 +192,7 @@ endif
# Clang >= 3 || GCC >= 4.7 # Clang >= 3 || GCC >= 4.7
ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1" ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
CFLAGS += -Wno-delete-non-virtual-dtor CFLAGS += -Wno-delete-non-virtual-dtor -Wno-unused-private-field -Wno-deprecated-register
endif endif
# OS is Linux and not using clang # OS is Linux and not using clang
@ -199,7 +219,7 @@ check:
fi fi
stub_mm: check $(OBJ_BIN) stub_mm: check $(OBJ_BIN)
$(CPP) $(INCLUDE) -m32 $(OBJ_BIN) $(LINK) -ldl -lm -o $(BIN_DIR)/$(BINARY) $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -ldl -lm -o $(BIN_DIR)/$(BINARY)
default: all default: all