summaryrefslogtreecommitdiff
path: root/linux_sdk
diff options
context:
space:
mode:
Diffstat (limited to 'linux_sdk')
-rw-r--r--linux_sdk/Makefile104
-rw-r--r--linux_sdk/Makefile.mod20
-rw-r--r--linux_sdk/Makefile.plugin61
-rw-r--r--linux_sdk/Makefile.vcpm60
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