sourcepawn/jit/x86/Makefile
author David Anderson <dvander@alliedmods.net>
Fri Jun 08 03:50:23 2007 +0000 (2007-06-08)
changeset 925 2cd3d817b5ab
parent 707 5ed575d60344
child 1850 2ebeb67b09a8
child 1930 12f08d51439c
permissions -rw-r--r--
added sm_unban
dvander@350
     1
#(C)2004-2006 SourceMM Development Team
dvander@350
     2
# Makefile written by David "BAILOPAN" Anderson
dvander@350
     3
dvander@350
     4
SRCDS = ~/srcds
dvander@350
     5
SMSDK = ../../..
dvander@350
     6
dvander@350
     7
### EDIT BELOW FOR OTHER PROJECTS ###
dvander@350
     8
dvander@350
     9
OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
dvander@350
    10
GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden
dvander@350
    11
DEBUG_FLAGS = -g -ggdb3
dvander@350
    12
CPP = gcc-4.1
dvander@350
    13
BINARY = sourcepawn.jit.x86.so
dvander@350
    14
dvander@350
    15
HL2PUB = $(HL2SDK)/public
dvander@350
    16
HL2LIB = $(HL2SDK)/linux_sdk
dvander@350
    17
dvander@350
    18
OBJECTS = dll_exports.cpp jit_x86.cpp opcode_helpers.cpp
dvander@350
    19
dvander@350
    20
LINK = -static-libgcc
dvander@350
    21
dvander@707
    22
INCLUDE = -I. -I.. -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn \
dvander@707
    23
	-I$(SMSDK)/public/jit -I$(SMSDK)/public/jit/x86
dvander@350
    24
dvander@350
    25
ifeq "$(DEBUG)" "true"
dvander@350
    26
	BIN_DIR = Debug
dvander@350
    27
	CFLAGS = $(DEBUG_FLAGS)
dvander@350
    28
else
dvander@350
    29
	BIN_DIR = Release
dvander@350
    30
	CFLAGS = $(OPT_FLAGS)
dvander@350
    31
endif
dvander@350
    32
dvander@350
    33
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
dvander@350
    34
dvander@350
    35
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 -Wno-non-virtual-dtor -Werror -fPIC -fno-exceptions -fno-rtti -msse -DHAVE_STDINT_H
dvander@350
    36
dvander@350
    37
ifeq "$(GCC_VERSION)" "4"
dvander@350
    38
	CFLAGS += $(GCC4_FLAGS)
dvander@350
    39
endif
dvander@350
    40
dvander@350
    41
OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
dvander@350
    42
dvander@350
    43
$(BIN_DIR)/%.o: %.cpp
dvander@350
    44
	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
dvander@350
    45
dvander@350
    46
all:
dvander@350
    47
	mkdir -p $(BIN_DIR)
dvander@350
    48
	ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so
dvander@350
    49
	ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so
dvander@350
    50
	$(MAKE) binary
dvander@350
    51
	rm -rf $(BINARY)
dvander@350
    52
	ln -sf $(BIN_DIR)/$(BINARY) $(BINARY)
dvander@350
    53
dvander@350
    54
binary: $(OBJ_LINUX)
dvander@350
    55
	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
dvander@350
    56
dvander@350
    57
debug:	
dvander@350
    58
	$(MAKE) all DEBUG=true
dvander@350
    59
dvander@350
    60
default: all
dvander@350
    61
dvander@350
    62
clean:
dvander@350
    63
	rm -rf Release/*.o
dvander@350
    64
	rm -rf Release/$(BINARY)
dvander@350
    65
	rm -rf Debug/*.o
dvander@350
    66
	rm -rf Debug/$(BINARY)