diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /linux_sdk | |
| download | archived-source-engine-2018-hl2-src-3bf9df6b2785fa6d951086978a3e66f49427166a.tar.xz archived-source-engine-2018-hl2-src-3bf9df6b2785fa6d951086978a3e66f49427166a.zip | |
Diffstat (limited to 'linux_sdk')
| -rw-r--r-- | linux_sdk/Makefile | 104 | ||||
| -rw-r--r-- | linux_sdk/Makefile.mod | 20 | ||||
| -rw-r--r-- | linux_sdk/Makefile.plugin | 61 | ||||
| -rw-r--r-- | linux_sdk/Makefile.vcpm | 60 |
4 files changed, 245 insertions, 0 deletions
diff --git a/linux_sdk/Makefile b/linux_sdk/Makefile new file mode 100644 index 0000000..40f41b3 --- /dev/null +++ b/linux_sdk/Makefile @@ -0,0 +1,104 @@ +# +# SDK Makefile for x86 Linux +# +# + +############################################################################# +# Developer configurable items +############################################################################# + +# the name of the mod binary (_i486.so is appended to the end) +NAME=server +# the location of the vcproj that builds the mod +MOD_PROJ=../dlls/hl_sdk.vcproj +# the name of the mod configuration (typically <proj name>_<build type><build target>) +MOD_CONFIG=hl_ReleaseSDKWin32 + +# the directory the base binaries (tier0_i486.so, etc) are located +#GAME_DIR=../../ +GAME_DIR=~/valve/hl2bin/ + +# compiler options (gcc 3.4.1 or above is required) +CC=/usr/local/bin/gcc +CPLUS=/usr/local/bin/g++ +CLINK=/usr/local/bin/gcc +CPP_LIB="/usr/local/lib/libstdc++.a /usr/local/lib/libgcc_eh.a" + +# put any compiler flags you want passed here +USER_CFLAGS= + +# link flags for your mod, make sure to include any special libraries here +LDFLAGS="-lm -ldl $(GAME_DIR)/bin/tier0_i486.so $(GAME_DIR)/bin/vstdlib_i486.so" + +# XERCES 2.6.0 or above ( http://xml.apache.org/xerces-c/ ) is used by the vcproj to makefile converter +# it must be installed before being able to run this makefile +XERCES_INC_DIR=/home/alfred/tmp/xerces-c-src_2_6_0/include +XERCES_LIB_DIR=/home/alfred/tmp/xerces-c-src_2_6_0/lib +# if you have xerces installed already you should be able to use the two lines below +#XERCES_INC_DIR=/usr/include +#XERCES_LIB_DIR=/usr/lib + + +############################################################################# +# Things below here shouldn't need to be altered +############################################################################# +MAKE=make + +# the dir we want to put binaries we build into +BUILD_DIR=. +# the place to put object files +BUILD_OBJ_DIR=$(BUILD_DIR)/obj + +# the location of the source code +SOURCE_DIR=.. + +# the CPU target for the build, must be i486 for now +ARCH=i486 +ARCH_CFLAGS=-mtune=i686 -march=pentium3 -mmmx -O3 + +# -fpermissive is so gcc 3.4.x doesn't complain about some template stuff +BASE_CFLAGS=-fpermissive -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp +SHLIBEXT=so +SHLIBCFLAGS=-fPIC +SHLIBLDFLAGS=-shared -Wl,-Map,$@_map.txt -Wl + +#flags passed to the c compiler +CFLAGS="$(USER_CFLAGS) $(DEFINES) $(ARCH_CFLAGS) $(BASE_CFLAGS) -Usprintf=use_Q_snprintf_instead_of_sprintf -Ustrncpy=use_Q_strncpy_instead -UPROTECTED_THINGS_ENABLE" + +# define list passed to make for the sub makefile +BASE_DEFINES=CC=$(CC) CPLUS=$(CPLUS) CPP_LIB=$(CPP_LIB) \ + BUILD_DIR=$(BUILD_DIR) BUILD_OBJ_DIR=$(BUILD_OBJ_DIR) \ + SOURCE_DIR=$(SOURCE_DIR) SHLIBLDFLAGS=$(SHLIBLDFLAGS) SHLIBEXT=$(SHLIBEXT) \ + CLINK=$(CLINK) CFLAGS=$(CFLAGS) LDFLAGS=$(LDFLAGS) \ + ARCH=$(ARCH) GAME_DIR=$(GAME_DIR) MOD_CONFIG=$(MOD_CONFIG) NAME=$(NAME) \ + XERCES_INC_DIR=$(XERCES_INC_DIR) XERCES_LIB_DIR=$(XERCES_LIB_DIR) + +# Project Makefile +MAKE_MOD=Makefile.mod +MAKE_VCPM=Makefile.vcpm +MAKE_PLUGIN=Makefile.plugin + +all: check vcpm mod + +check: + if [ -z "$(CC)" ]; then echo "Compiler not defined."; exit; fi + if [ ! -d $(BUILD_DIR) ];then mkdir $(BUILD_DIR);fi + cd $(BUILD_DIR) + +vcpm: + $(MAKE) -f $(MAKE_VCPM) $(BASE_DEFINES) + +mod: vcpm + if [ ! -f "tier0_i486.so" ]; then ln -s $(GAME_DIR)/bin/tier0_i486.so .; fi + if [ ! -f "vstdlib_i486.so" ]; then ln -s $(GAME_DIR)/bin/vstdlib_i486.so .; fi + ./vcpm $(MOD_PROJ) + $(MAKE) -f $(MAKE_MOD) $(BASE_DEFINES) + +plugin: + $(MAKE) -f $(MAKE_PLUGIN) $(BASE_DEFINES) + +clean: + $(MAKE) -f $(MAKE_VCPM) $(BASE_DEFINES) clean + $(MAKE) -f $(MAKE_PLUGIN) $(BASE_DEFINES) clean + $(MAKE) -f $(MAKE_MOD) $(BASE_DEFINES) clean + diff --git a/linux_sdk/Makefile.mod b/linux_sdk/Makefile.mod new file mode 100644 index 0000000..2e11591 --- /dev/null +++ b/linux_sdk/Makefile.mod @@ -0,0 +1,20 @@ +# +# wrapper Makefile for auto-generated make files +# +# + +############################################################################# +# PROJECT MAKEFILES +############################################################################# +MAKE_FILE=Makefile.$(MOD_CONFIG) +include $(MAKE_FILE) + +############################################################################# +# The compiler command lne for each src code file to compile +############################################################################# +DO_CC=$(CPLUS) -w $(INCLUDES) $(CFLAGS) -o $@ -c $< + + +clean: + rm -rf obj/$(NAME) + rm -f $(NAME)_$(ARCH).$(SHLIBEXT) diff --git a/linux_sdk/Makefile.plugin b/linux_sdk/Makefile.plugin new file mode 100644 index 0000000..e2f5d90 --- /dev/null +++ b/linux_sdk/Makefile.plugin @@ -0,0 +1,61 @@ +# +# Sample server plugin for SRC engine +# +# October 2004, [email protected] +# + +PLUGIN_SRC_DIR=$(SOURCE_DIR)/utils/serverplugin_sample +PUBLIC_SRC_DIR=$(SOURCE_DIR)/public +TIER0_PUBLIC_SRC_DIR=$(SOURCE_DIR)/public/tier0 + +PLUGIN_OBJ_DIR=$(BUILD_OBJ_DIR)/plugin +PUBLIC_OBJ_DIR=$(BUILD_OBJ_DIR)/plugin/public +TIER0_OBJ_DIR=$(BUILD_OBJ_DIR)/plugin/tier0 + +CFLAGS=$(BASE_CFLAGS) $(ARCH_CFLAGS) +#DEBUG = -g -ggdb +#CFLAGS+= $(DEBUG) + +INCLUDEDIRS=-I$(PUBLIC_SRC_DIR) -I$(COMMON_SRC_DIR) -Dstrcmpi=strcasecmp -D_alloca=alloca + +DO_CC=$(CPLUS) $(INCLUDEDIRS) -w $(CFLAGS) -DARCH=$(ARCH) -o $@ -c $< + +##################################################################### + +PLUGIN_OBJS = \ + $(PLUGIN_OBJ_DIR)/serverplugin_convar.o \ + $(PLUGIN_OBJ_DIR)/serverplugin_empty.o \ + +PUBLIC_OBJS = \ + $(PUBLIC_OBJ_DIR)/convar.o \ + $(PUBLIC_OBJ_DIR)/interface.o \ + $(PUBLIC_OBJ_DIR)/KeyValues.o \ + $(PUBLIC_OBJ_DIR)/utlbuffer.o \ + +TIER0_OBJS = \ + $(TIER0_OBJ_DIR)/memoverride.o \ + +all: dirs serverplugin_empty_$(ARCH).$(SHLIBEXT) + +dirs: + -mkdir $(BUILD_OBJ_DIR) + -mkdir $(PLUGIN_OBJ_DIR) + -mkdir $(PUBLIC_OBJ_DIR) + -mkdir $(TIER0_OBJ_DIR) + $(CHECK_DSP) $(SOURCE_DSP) + +serverplugin_empty_$(ARCH).$(SHLIBEXT): $(PLUGIN_OBJS) $(PUBLIC_OBJS) $(TIER0_OBJS) + $(CLINK) $(DEBUG) -o $(BUILD_DIR)/$@ $(SHLIBLDFLAGS) $(PLUGIN_OBJS) $(PUBLIC_OBJS) $(TIER0_OBJS) $(CPP_LIB) $(LDFLAGS) $(CPP_LIB) + +$(PLUGIN_OBJ_DIR)/%.o: $(PLUGIN_SRC_DIR)/%.cpp + $(DO_CC) + +$(PUBLIC_OBJ_DIR)/%.o: $(PUBLIC_SRC_DIR)/%.cpp + $(DO_CC) + +$(TIER0_OBJ_DIR)/%.o: $(TIER0_PUBLIC_SRC_DIR)/%.cpp + $(DO_CC) + +clean: + -rm -rf $(PLUGIN_OBJ_DIR) + -rm -f plugin_$(ARCH).$(SHLIBEXT) diff --git a/linux_sdk/Makefile.vcpm b/linux_sdk/Makefile.vcpm new file mode 100644 index 0000000..f3dbfbd --- /dev/null +++ b/linux_sdk/Makefile.vcpm @@ -0,0 +1,60 @@ +# +# VCProject file to Makefile converter +# +# November 2004, [email protected] +# + +VCPM_SRC_DIR=$(SOURCE_DIR)/utils/vprojtomake +UTIL_COMMON_SRC_DIR=$(SOURCE_DIR)/utils/common +TIER1_PUBLIC_SRC_DIR=$(SOURCE_DIR)/public/tier1 +PUBLIC_SRC_DIR=$(SOURCE_DIR)/public +TIER1_SRC_DIR=$(SOURCE_DIR)/tier1 + +VCPM_OBJ_DIR=$(BUILD_OBJ_DIR)/vcpm +TIER1_OBJ_DIR=$(BUILD_OBJ_DIR)/vcpm/public + +#we use custome CFLAGS because the base ones interfere with XERCES +CFLAGS= -w -fpermissive -D_LINUX -DNDEBUG -D_alloca=alloca -D_snprintf=snprintf -D_vsnprintf=vsnprintf $(ARCH_CFLAGS) +#DEBUG = -g -ggdb +#CFLAGS+= $(DEBUG) + +INCLUDEDIRS=-I$(PUBLIC_SRC_DIR) -I$(XERCES_INC_DIR) -I$(UTIL_COMMON_SRC_DIR) -I$(TIER1_PUBLIC_SRC_DIR) +LDFLAGS_VC=-lm -ldl -L$(XERCES_LIB_DIR) -lxerces-c $(GAME_DIR)/bin/tier0_i486.so $(GAME_DIR)/bin/vstdlib_i486.so + +DO_CC=$(CPLUS) $(INCLUDEDIRS) -w $(CFLAGS) -DARCH=$(ARCH) -o $@ -c $< + +##################################################################### + +VCPM_OBJS = \ + $(VCPM_OBJ_DIR)/makefilecreator.o \ + $(VCPM_OBJ_DIR)/vprojtomake.o \ + $(VCPM_OBJ_DIR)/vcprojconvert.o \ + +TIER1_OBJS = \ + $(TIER1_OBJ_DIR)/characterset.o \ + $(TIER1_OBJ_DIR)/interface.o \ + $(TIER1_OBJ_DIR)/generichash.o \ + $(TIER1_OBJ_DIR)/KeyValues.o \ + $(TIER1_OBJ_DIR)/stringpool.o \ + $(TIER1_OBJ_DIR)/utlbuffer.o \ + $(TIER1_OBJ_DIR)/utlsymbol.o \ + +all: dirs vcpm + +dirs: + -mkdir $(BUILD_OBJ_DIR) + -mkdir $(VCPM_OBJ_DIR) + -mkdir $(TIER1_OBJ_DIR) + +vcpm: $(VCPM_OBJS) $(TIER1_OBJS) + $(CLINK) $(DEBUG) -o $(BUILD_DIR)/$@ $(VCPM_OBJS) $(TIER1_OBJS) $(CPP_LIB) $(LDFLAGS_VC) + +$(VCPM_OBJ_DIR)/%.o: $(VCPM_SRC_DIR)/%.cpp + $(DO_CC) + +$(TIER1_OBJ_DIR)/%.o: $(TIER1_SRC_DIR)/%.cpp + $(DO_CC) -Dstricmp=strcasecmp -Dstrcmpi=strcasecmp + +clean: + -rm -rf $(VCPM_OBJ_DIR) + -rm -f vcpm |