loader/Makefile
author Scott Ehlert <ds@alliedmods.net>
Wed Nov 19 02:16:45 2008 -0600 (2008-11-19)
changeset 2415 9ac720a36ce4
parent 2400 76b7b4575e21
child 2430 219ab8093e6b
permissions -rw-r--r--
Merge.
ds@1977
     1
# (C)2004-2008 SourceMod Development Team
ds@1977
     2
# Makefile written by David "BAILOPAN" Anderson
dvander@1565
     3
ds@2400
     4
SOURCEMM16 = ../../mmsource
dvander@1565
     5
dvander@1565
     6
#####################################
dvander@1565
     7
### EDIT BELOW FOR OTHER PROJECTS ###
dvander@1565
     8
#####################################
dvander@1565
     9
dvander@1565
    10
PROJECT = sourcemod_mm
dvander@1565
    11
dvander@1565
    12
OBJECTS = loader.cpp
dvander@1565
    13
dvander@1565
    14
##############################################
dvander@1565
    15
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
dvander@1565
    16
##############################################
dvander@1565
    17
ds@2047
    18
C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -pipe -fno-strict-aliasing
ds@1977
    19
C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
ds@1977
    20
C_GCC4_FLAGS = -fvisibility=hidden
ds@1977
    21
CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
dvander@1565
    22
CPP = gcc-4.1
dvander@1565
    23
dvander@1565
    24
LINK = -static-libgcc
dvander@1565
    25
ds@2400
    26
INCLUDE = -I$(SOURCEMM16) -I$(SOURCEMM16)/sourcehook
dvander@1565
    27
ds@1977
    28
CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
ds@1977
    29
	-D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Wno-uninitialized \
ds@1977
    30
	-mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32
ds@1977
    31
CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
dvander@1565
    32
dvander@1565
    33
################################################
dvander@1565
    34
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
dvander@1565
    35
################################################
dvander@1565
    36
dvander@1565
    37
ifeq "$(DEBUG)" "true"
dvander@1565
    38
	BIN_DIR = Debug
dvander@1565
    39
	CFLAGS += $(C_DEBUG_FLAGS)
dvander@1565
    40
else
dvander@1565
    41
	BIN_DIR = Release
dvander@1565
    42
	CFLAGS += $(C_OPT_FLAGS)
dvander@1565
    43
endif
dvander@1565
    44
dvander@1565
    45
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
dvander@1565
    46
ifeq "$(GCC_VERSION)" "4"
ds@1977
    47
	CFLAGS += $(C_GCC4_FLAGS)
dvander@1565
    48
	CPPFLAGS += $(CPP_GCC4_FLAGS)
dvander@1565
    49
endif
dvander@1565
    50
dvander@1565
    51
BINARY = $(PROJECT)_i486.so
dvander@1565
    52
dvander@1565
    53
OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
dvander@1565
    54
dvander@1565
    55
$(BIN_DIR)/%.o: %.cpp
dvander@1565
    56
	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
dvander@1565
    57
dvander@1565
    58
all:
ds@1977
    59
	mkdir -p $(BIN_DIR)
ds@1977
    60
	$(MAKE) -f Makefile loader
dvander@1565
    61
ds@1977
    62
loader: $(OBJ_LINUX)
ds@1977
    63
	$(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
dvander@1565
    64
ds@1977
    65
debug:
ds@1977
    66
	$(MAKE) -f Makefile all DEBUG=true
dvander@1565
    67
dvander@1565
    68
default: all
dvander@1565
    69
dvander@1565
    70
clean:
ds@1977
    71
	rm -rf $(BIN_DIR)/*.o
ds@1977
    72
	rm -rf $(BIN_DIR)/$(BINARY)