c4056aea5d
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)
|
|
|