This patch uses SmxBuilder from spcomp2 to replace the old assemble() pipeline. Instead of generating into an old AMX structure, and then decoding that into SMX, we now directly generate into SMX. This greatly simplifies code generation and smx building.
		
			
				
	
	
		
			120 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # (C)2004-2008 SourceMod Development Team
 | |
| # Makefile written by David "BAILOPAN" Anderson
 | |
| 
 | |
| SMSDK = ../..
 | |
| MMSOURCE17 = ../../../mmsource-1.7
 | |
| 
 | |
| #####################################
 | |
| ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| #####################################
 | |
| 
 | |
| PROJECT = spshell
 | |
| 
 | |
| OBJECTS = dll_exports.cpp 	\
 | |
| 	x86/jit_x86.cpp			\
 | |
| 	sp_vm_basecontext.cpp	\
 | |
| 	sp_vm_engine.cpp	\
 | |
| 	sp_vm_function.cpp	\
 | |
| 	engine2.cpp			\
 | |
| 	BaseRuntime.cpp		\
 | |
| 	jit_function.cpp	\
 | |
| 	opcodes.cpp		\
 | |
| 	watchdog_timer.cpp \
 | |
| 	interpreter.cpp \
 | |
| 	md5/md5.cpp			\
 | |
| 	zlib/adler32.c		\
 | |
| 	zlib/compress.c		\
 | |
| 	zlib/crc32.c		\
 | |
| 	zlib/deflate.c		\
 | |
| 	zlib/gzio.c			\
 | |
| 	zlib/infback.c		\
 | |
| 	zlib/inffast.c		\
 | |
| 	zlib/inflate.c		\
 | |
| 	zlib/inftrees.c		\
 | |
| 	zlib/trees.c		\
 | |
| 	zlib/uncompr.c		\
 | |
| 	zlib/zutil.c		\
 | |
| 
 | |
| OBJECTS += ../../knight/shared/KeCodeAllocator.cpp
 | |
| OBJECTS += ../../public/jit/x86/assembler-x86.cpp
 | |
| 
 | |
| ##############################################
 | |
| ### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| ##############################################
 | |
| 
 | |
| C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -pipe -fno-strict-aliasing
 | |
| C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| C_GCC4_FLAGS = -fvisibility=hidden
 | |
| CXX_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| CXX = c++
 | |
| CC = cc
 | |
| 
 | |
| LINK = -m32 -lm -lpthread -lrt
 | |
| 
 | |
| INCLUDE = -I. -I.. -I$(SMSDK)/public -I$(SMSDK)/public/jit -I$(SMSDK)/public/jit/x86 \
 | |
| 	-I$(SMSDK)/public/sourcepawn -I$(MMSOURCE17)/core/sourcehook -I$(SMSDK)/knight/shared -Ix86 \
 | |
| 	-I$(SMSDK)/public/amtl -I$(SMSDK)/sourcepawn/include
 | |
| 
 | |
| 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 -DHAVE_STDINT_H \
 | |
| 	-m32 -Wno-uninitialized -Werror -DSPSHELL -ggdb3 -Wno-unused
 | |
| CXXFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti -Wno-delete-non-virtual-dtor
 | |
| 
 | |
| ################################################
 | |
| ### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| ################################################
 | |
| 
 | |
| ifeq "$(DEBUG)" "true"
 | |
| 	BIN_DIR = Debug.shell
 | |
| 	CFLAGS += $(C_DEBUG_FLAGS)
 | |
| else
 | |
| 	BIN_DIR = Release.shell
 | |
| 	CFLAGS += $(C_OPT_FLAGS)
 | |
| endif
 | |
| 
 | |
| GCC_VERSION := $(shell $(CXX) -dumpversion >&1 | cut -b1)
 | |
| ifeq "$(GCC_VERSION)" "4"
 | |
| 	CFLAGS += $(C_GCC4_FLAGS)
 | |
| 	CXXFLAGS += $(CXX_GCC4_FLAGS)
 | |
| endif
 | |
| 
 | |
| OBJ_LINUX := $(OBJECTS:../../knight/shared/%.cpp=$(BIN_DIR)/knight/%.o)
 | |
| OBJ_LINUX := $(OBJ_LINUX:../../public/jit/x86/%.cpp=$(BIN_DIR)/%.o)
 | |
| OBJ_LINUX := $(OBJ_LINUX:%.cpp=$(BIN_DIR)/%.o)
 | |
| OBJ_LINUX := $(OBJ_LINUX:%.c=$(BIN_DIR)/%.o)
 | |
| 
 | |
| default: all
 | |
| 
 | |
| $(BIN_DIR)/%.o: %.c
 | |
| 	$(CC) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| 
 | |
| $(BIN_DIR)/%.o: %.cpp
 | |
| 	$(CXX) $(INCLUDE) $(CFLAGS) $(CXXFLAGS) -o $@ -c $<
 | |
| 
 | |
| $(BIN_DIR)/knight/%.o: ../../knight/shared/%.cpp
 | |
| 	$(CXX) $(INCLUDE) $(CFLAGS) $(CXXFLAGS) -o $@ -c $<
 | |
| 
 | |
| $(BIN_DIR)/assembler-x86.o: ../../public/jit/x86/assembler-x86.cpp
 | |
| 	$(CXX) $(INCLUDE) $(CFLAGS) $(CXXFLAGS) -o $@ -c $<
 | |
| 
 | |
| all:
 | |
| 	mkdir -p $(BIN_DIR)/x86
 | |
| 	mkdir -p $(BIN_DIR)/md5
 | |
| 	mkdir -p $(BIN_DIR)/zlib
 | |
| 	mkdir -p $(BIN_DIR)/knight
 | |
| 	$(MAKE) -f Makefile.shell jit
 | |
| 
 | |
| jit: $(OBJ_LINUX)
 | |
| 	$(CXX) $(INCLUDE) $(OBJ_LINUX) $(LINK) -o $(BIN_DIR)/$(PROJECT)
 | |
| 
 | |
| debug:
 | |
| 	$(MAKE) -f Makefile.shell all DEBUG=true
 | |
| 
 | |
| clean:
 | |
| 	rm -f $(BIN_DIR)/x86/*.o
 | |
| #	rm -rf $(BIN_DIR)/zlib/*.o
 | |
| #	rm -rf $(BIN_DIR)/knight/*.o
 | |
| 	rm -f $(BIN_DIR)/*.o
 | |
| 	rm -f $(BIN_DIR)/$(PROJECT)
 | |
| 
 |