From 7eaa8a1a39fdc31e544d443b109606dfe91086f4 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Tue, 2 Aug 2005 09:48:06 +0000 Subject: [PATCH] Added makefiles, fixed template bug in nvault --- dlls/esforces/esfmod/Makefile | 67 +++++++++++++++++++++++++++++++++++ dlls/nvault/Binary.h | 3 +- dlls/nvault/CString.h | 17 +++++++-- dlls/nvault/Makefile | 67 +++++++++++++++++++++++++++++++++++ dlls/nvault/NVault.cpp | 13 ++++--- dlls/nvault/amxxapi.h | 2 +- dlls/nvault/moduleconfig.h | 3 +- 7 files changed, 163 insertions(+), 9 deletions(-) create mode 100755 dlls/esforces/esfmod/Makefile create mode 100755 dlls/nvault/Makefile diff --git a/dlls/esforces/esfmod/Makefile b/dlls/esforces/esfmod/Makefile new file mode 100755 index 00000000..71ee6150 --- /dev/null +++ b/dlls/esforces/esfmod/Makefile @@ -0,0 +1,67 @@ +#(C)2004-2005 AMX Mod X Development Team +# Makefile written by David "BAILOPAN" Anderson + +HLSDK = ../../../hlsdk/SourceCode +MM_ROOT = ../../../metamod/metamod + +### EDIT BELOW FOR OTHER PROJECTS ### + +OPT_FLAGS = -O3 -fno-rtti -funroll-loops -s -pipe +DEBUG_FLAGS = -g -ggdb3 +CPP = gcc +NAME = esfmod_amxx + +OBJECTS = amxxmodule.cpp esf_anim.cpp esf_base.cpp esf_pdata.cpp esf_avatars.cpp esf_effects.cpp esforces.cpp + +LINK = + +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ + -I$(MM_ROOT) -Lzlib -I$(HLSDK)/common -I$(HLSDK)/pm_shared + +ifeq "$(DEBUG)" "true" + BIN_DIR = Debug + CFLAGS = $(DEBUG_FLAGS) +else + BIN_DIR = Release + CFLAGS = $(OPT_FLAGS) +endif + +CFLAGS += -DNDEBUG -fPIC -Wno-deprecated -fno-exceptions -DHAVE_STDINT_H + +ifeq "$(AMD64)" "true" + BINARY = $(NAME)_amd64.so + CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 + LINK += -lstdc++ +else + BINARY = $(NAME)_i386.so + CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 + OPT_FLAGS += -march=i686 +endif + +OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) + +$(BIN_DIR)/%.o: %.cpp + $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< + +all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk + $(MAKE) esfmod + +amd64: + $(MAKE) all AMD64=true + +esfmod: $(OBJ_LINUX) + $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) + +debug: + $(MAKE) all DEBUG=true + +default: all + +clean: + rm -rf Release/*.o + rm -rf Release/$(BINARY) + rm -rf Debug/*.o + rm -rf Debug/$(BINARY) + diff --git a/dlls/nvault/Binary.h b/dlls/nvault/Binary.h index 9d6bbf5f..1404e173 100755 --- a/dlls/nvault/Binary.h +++ b/dlls/nvault/Binary.h @@ -44,4 +44,5 @@ private: FILE *m_Fp; }; -#endif //_INCLUDE_BINARY_H \ No newline at end of file +#endif //_INCLUDE_BINARY_H + diff --git a/dlls/nvault/CString.h b/dlls/nvault/CString.h index 4ecfa5d3..1a9e3ac9 100755 --- a/dlls/nvault/CString.h +++ b/dlls/nvault/CString.h @@ -33,6 +33,7 @@ #define _INCLUDE_CSTRING_H #include +#include //by David "BAILOPAN" Anderson class String @@ -58,6 +59,13 @@ public: assign(src); } + const char * _fread(FILE *fp) + { + Grow(512, false); + char *ret = fgets(v, 511, fp); + return ret; + } + String(String &src) { v = NULL; @@ -122,7 +130,7 @@ public: bool empty() { if (!v) - return false; + return true; if (v[0] == '\0') return true; @@ -270,7 +278,10 @@ public: String substr(unsigned int index, int num = npos) { if (!v) - return String(""); + { + String b(""); + return b; + } String ns; @@ -361,6 +372,8 @@ private: strcpy(n, v); if (v) delete [] v; + else + strcpy(n, ""); v = n; a_size = d + 1; } diff --git a/dlls/nvault/Makefile b/dlls/nvault/Makefile new file mode 100755 index 00000000..2b09cc93 --- /dev/null +++ b/dlls/nvault/Makefile @@ -0,0 +1,67 @@ +#(C)2004-2005 AMX Mod X Development Team +# Makefile written by David "BAILOPAN" Anderson + +HLSDK = ../../hlsdk/SourceCode +MM_ROOT = ../../metamod/metamod + +### EDIT BELOW FOR OTHER PROJECTS ### + +OPT_FLAGS = -O3 -fno-rtti -funroll-loops -s -pipe +DEBUG_FLAGS = -g -ggdb3 +CPP = gcc +NAME = nvault_amxx + +OBJECTS = amxxmodule.cpp amxxapi.cpp Binary.cpp Journal.cpp NVault.cpp + +LINK = + +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \ + -I$(MM_ROOT) -Lzlib -I$(HLSDK)/common + +ifeq "$(DEBUG)" "true" + BIN_DIR = Debug + CFLAGS = $(DEBUG_FLAGS) +else + BIN_DIR = Release + CFLAGS = $(OPT_FLAGS) +endif + +CFLAGS += -DNDEBUG -fPIC -Wno-deprecated -fexceptions -DHAVE_STDINT_H + +ifeq "$(AMD64)" "true" + BINARY = $(NAME)_amd64.so + CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 + LINK += -lstdc++ +else + BINARY = $(NAME)_i386.so + CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 + OPT_FLAGS += -march=i686 +endif + +OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) + +$(BIN_DIR)/%.o: %.cpp + $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< + +all: + mkdir -p $(BIN_DIR) + mkdir -p $(BIN_DIR)/sdk + $(MAKE) nvault + +amd64: + $(MAKE) all AMD64=true + +nvault: $(OBJ_LINUX) + $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) + +debug: + $(MAKE) all DEBUG=true + +default: all + +clean: + rm -rf Release/*.o + rm -rf Release/$(BINARY) + rm -rf Debug/*.o + rm -rf Debug/$(BINARY) + diff --git a/dlls/nvault/NVault.cpp b/dlls/nvault/NVault.cpp index 0f2a85e3..13bf6166 100755 --- a/dlls/nvault/NVault.cpp +++ b/dlls/nvault/NVault.cpp @@ -1,9 +1,14 @@ #include "NVault.h" #include "Binary.h" +#include "CString.h" #include "amxxmodule.h" -template -int HashFunction(const K & k) +#ifdef __linux__ +#define _snprintf snprintf +#endif + +template <> +int HashFunction(const String & k) { unsigned long hash = 5381; const char *str = k.c_str(); @@ -12,8 +17,8 @@ int HashFunction(const K & k) return hash; } -template -bool Compare(const K & k1, const K & k2) +template <> +bool Compare(const String & k1, const String & k2) { return (strcmp(k1.c_str(),k2.c_str())==0); } diff --git a/dlls/nvault/amxxapi.h b/dlls/nvault/amxxapi.h index 16afc639..84ce47e4 100755 --- a/dlls/nvault/amxxapi.h +++ b/dlls/nvault/amxxapi.h @@ -6,7 +6,7 @@ #include "CString.h" #include "amxxmodule.h" -AMX_NATIVE_INFO nVault_natives[]; +extern AMX_NATIVE_INFO nVault_natives[]; #endif //_INCLUDE_AMXXAPI_H diff --git a/dlls/nvault/moduleconfig.h b/dlls/nvault/moduleconfig.h index 2c5a16b5..505464f7 100755 --- a/dlls/nvault/moduleconfig.h +++ b/dlls/nvault/moduleconfig.h @@ -459,4 +459,5 @@ #endif // USE_METAMOD -#endif // __MODULECONFIG_H__ \ No newline at end of file +#endif // __MODULECONFIG_H__ +