aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 58a909aece7f8d91695ed2fcabd95e6c85580080 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# (C)2004-2008 SourceMod Development Team
# Makefile written by David "BAILOPAN" Anderson

#SMSDK = ../..
SMSDK = ./sm-1.11
# SRCDS_BASE = ~/srcds
# MMSOURCE17 = ../../../mmsource-central
MMSOURCE17 = ./mm-1.11

#####################################
### EDIT BELOW FOR OTHER PROJECTS ###
#####################################

PROJECT = curl

#Uncomment for Metamod: Source enabled extension
USEMETA = false

OBJECTS = \
	sdk/smsdk_ext.cpp 	\
	extension.cpp 		\
	curlmanager.cpp		\
	curlthread.cpp 		\
	natives.cpp 		\
	opensslmanager.cpp 	\
	opensslthread.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
CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
CPP = gcc


METAMOD = $(MMSOURCE17)/core-legacy

# yes yes i know i will clean it up later
INCLUDE += -I. -I.. -Isdk -I../ \
	-I$(MMSOURCE17)/core/sourcehook \
	-I$(SMSDK)/public \
	-I$(SMSDK)/public/extensions \
	-I$(SMSDK)/sourcepawn/include \
	-I$(SMSDK)/sourcepawn \
	-I$(SMSDK)/public/amtl/amtl \
	-I$(SMSDK)/public/amtl/ \
	-I/opt/Source/lib/openssl/include
# ../alliedmodders/mmsource-1.12
# 	-I$(METAMOD)/sourcehook \

#	-I$(SMSDK)/public/sourcepawn \


CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 -DSE_LEFT4DEAD=5 -DSE_LEFT4DEAD2=6

CFLAGS += -DCURL_STATIC_LIB

LINK += -L./lib -lcurl -lrt -lssh2 -lssl -lcrypto -lz -lnghttp2 -lngtcp2 -lbrotlidec-static -lbrotlienc-static -lbrotlicommon-static -lzstd -lgsasl
LINK += -m32 -ldl -lm -L/usr/lib32 -lstdc++
# -static


# #-lgsasl
 

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 -Wno-switch \
	-Wno-unused -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32


# 	-D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror -Wno-switch \


#CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti -fno-threadsafe-statics
CPPFLAGS += -fno-exceptions -fno-rtti -fno-threadsafe-statics 
#-fabi-compat-version=3

################################################
### 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

ifeq "$(USEMETA)" "true"
	BIN_DIR := $(BIN_DIR).$(ENGINE)
endif

OS := $(shell uname -s)
ifeq "$(OS)" "Darwin"
	LINK += -dynamiclib
	BINARY = $(PROJECT).ext.dylib
else
	LINK += -static-libgcc -shared
	BINARY = $(PROJECT).ext.so
endif

GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
ifeq "$(GCC_VERSION)" "4"
	CFLAGS += $(C_GCC4_FLAGS)
	CPPFLAGS += $(CPP_GCC4_FLAGS)
endif

OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)

$(BIN_DIR)/%.o: %.cpp
	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<

all: check
	mkdir -p $(BIN_DIR)/sdk

	$(MAKE) -f Makefile extension

check:
	

extension: check $(OBJ_LINUX)
	$(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -o $(BIN_DIR)/$(BINARY)

debug:
	$(MAKE) -f Makefile all DEBUG=true

default: all

clean: check
	rm -rf $(BIN_DIR)/*.o
	rm -rf $(BIN_DIR)/sdk/*.o
	rm -rf $(BIN_DIR)/$(BINARY)