sourcepawn/compiler/Makefile
author David Anderson <dvander@alliedmods.net>
Fri Jun 08 03:50:23 2007 +0000 (2007-06-08)
changeset 925 2cd3d817b5ab
parent 630 2b1aca886622
child 1312 30a9eee4e37d
permissions -rw-r--r--
added sm_unban
     1 #(C)2004-2007 SourceMod Development Team
     2 # Makefile written by David "BAILOPAN" Anderson
     3 
     4 SMSDK = ../..
     5 
     6 ### EDIT BELOW FOR OTHER PROJECTS ###
     7 
     8 OPT_C_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer 
     9 OPT_CPP_FLAGS = 
    10 DEBUG_C_FLAGS = -g -ggdb3
    11 CPP = gcc-4.1
    12 BINARY = spcomp
    13 
    14 OBJECTS = libpawnc.c lstring.c memfile.c pawncc.c sc1.c sc2.c sc3.c sc4.c sc5.c \
    15 	  sc6.c sc7.c scexpand.c sci18n.c sclist.c scmemfil.c scstate.c sctracker.c \
    16 	  scvars.c sp_file.c binreloc.c zlib/adler32.c zlib/crc32.c zlib/deflate.c \
    17 	  zlib/gzio.c zlib/infback.c zlib/inffast.c zlib/inflate.c zlib/inftrees.c \
    18 	  zlib/trees.c zlib/uncompr.c zlib/zutil.c zlib/compress.c
    19 
    20 LINK = -lgcc -static-libgcc
    21 
    22 INCLUDE = -I. -I$(SMSDK)/public/sourcepawn
    23 
    24 GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
    25 
    26 ifeq "$(GCC_VERSION)" "4"
    27 	OPT_CPP_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
    28 endif	
    29 
    30 ifeq "$(DEBUG)" "true"
    31 	BIN_DIR = Debug
    32 	CFLAGS = $(DEBUG_C_FLAGS)
    33 else
    34 	BIN_DIR = Release
    35 	CFLAGS = $(OPT_C_FLAGS)
    36 	CPPFLAGS += $(OPT_CPP_FLAGS)
    37 endif
    38 
    39 CFLAGS += -DLINUX -DNDEBUG -DHAVE_STDINT_H -DAMX_ANSIONLY 
    40 CPPFLAGS += -Wno-deprecated -fno-exceptions -fno-rtti
    41 
    42 OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
    43 OBJ_LINUX := $(OBJECTS:%.c=$(BIN_DIR)/%.o)
    44 
    45 $(BIN_DIR)/%.o: %.cpp
    46 	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
    47 
    48 $(BIN_DIR)/%.o: %.c
    49 	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
    50 
    51 all:
    52 	mkdir -p $(BIN_DIR)/zlib
    53 	$(MAKE) spcomp
    54 
    55 spcomp: $(OBJ_LINUX)
    56 	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) $(OBJ_LINUX) $(LINK) -ldl -lm -o$(BIN_DIR)/$(BINARY)
    57 
    58 debug: 
    59 	$(MAKE) all DEBUG=true
    60 
    61 default: all
    62 
    63 clean:
    64 	rm -rf Release/*.o
    65 	rm -rf Release/$(BINARY)
    66 	rm -rf Debug/*.o
    67 	rm -rf Debug/$(BINARY)
    68