251cced1f8
Various minor things done to project files Updated sample extension project file and updated makefile to the new unified version (more changes likely on the way) Updated regex project file and makefile --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401971
89 lines
2.6 KiB
Makefile
89 lines
2.6 KiB
Makefile
#(C)2004-2008 Metamod:Source Development Team
|
|
# Makefile written by David "BAILOPAN" Anderson
|
|
|
|
SMSDK = ../smsdk
|
|
SRCDS = ~/srcds_l/steaminstall
|
|
SOURCEMM = ../sourcemm
|
|
HL2SDK = ../hl2sdk-ob
|
|
|
|
#####################################
|
|
### EDIT BELOW FOR OTHER PROJECTS ###
|
|
#####################################
|
|
|
|
PROJECT = game.tf2
|
|
|
|
#Uncomment for SourceMM-enabled extensions
|
|
LINK_HL2 = $(HL2LIB)/tier1_i486.a vstdlib_i486.so tier0_i486.so
|
|
|
|
OBJECTS = sdk/smsdk_ext.cpp extension.cpp natives.cpp RegNatives.cpp
|
|
|
|
##############################################
|
|
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
|
|
##############################################
|
|
|
|
C_OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
|
|
C_DEBUG_FLAGS = -g -ggdb3
|
|
CPP_GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
|
|
CPP = gcc-4.1
|
|
|
|
HL2PUB = $(HL2SDK)/public
|
|
HL2LIB = $(HL2SDK)/linux_sdk
|
|
|
|
LINK = $(LINK_HL2) -static-libgcc
|
|
|
|
INCLUDE = -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
|
|
-I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SOURCEMM) -I$(SOURCEMM)/sourcehook -I$(SOURCEMM)/sourcemm \
|
|
-I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn -I$(SMSDK)/public/extensions \
|
|
|
|
CFLAGS = -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \
|
|
-Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp \
|
|
-Wall -Werror -fPIC -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -DORANGEBOX_BUILD
|
|
CPPFLAGS = -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
|
|
|
|
################################################
|
|
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
|
|
################################################
|
|
|
|
ifeq "$(DEBUG)" "true"
|
|
BIN_DIR = Debug
|
|
CFLAGS += $(C_DEBUG_FLAGS)
|
|
else
|
|
BIN_DIR = Release
|
|
CFLAGS += $(C_OPT_FLAGS)
|
|
endif
|
|
|
|
|
|
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
|
|
ifeq "$(GCC_VERSION)" "4"
|
|
CPPFLAGS += $(CPP_GCC4_FLAGS)
|
|
endif
|
|
|
|
BINARY = $(PROJECT).ext.so
|
|
|
|
OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
|
|
|
|
$(BIN_DIR)/%.o: %.cpp
|
|
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
|
|
|
|
all:
|
|
mkdir -p $(BIN_DIR)/sdk
|
|
ln -sf $(SRCDS)/orangebox/bin/vstdlib_i486.so vstdlib_i486.so
|
|
ln -sf $(SRCDS)/orangebox/bin/tier0_i486.so tier0_i486.so
|
|
$(MAKE) -f Makefile.ep2 extension
|
|
|
|
extension: $(OBJ_LINUX)
|
|
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
|
|
|
|
debug:
|
|
$(MAKE) -f Makefile.ep2 all DEBUG=true
|
|
|
|
default: all
|
|
|
|
clean:
|
|
rm -rf Release/*.o
|
|
rm -rf Release/sdk/*.o
|
|
rm -rf Release/$(BINARY)
|
|
rm -rf Debug/*.o
|
|
rm -rf Debug/sdk/*.o
|
|
rm -rf Debug/$(BINARY)
|