-
Notifications
You must be signed in to change notification settings - Fork 212
/
xsnap.mk
128 lines (113 loc) · 2.84 KB
/
xsnap.mk
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
% : %.c
%.o : %.c
GOAL ?= debug
NAME = xsnap
ifneq ($(VERBOSE),1)
MAKEFLAGS += --silent
endif
MODDABLE = $(CURDIR)/../../moddable
XS_DIR = $(MODDABLE)/xs
BUILD_DIR = $(CURDIR)/../../build
BIN_DIR = $(BUILD_DIR)/bin/lin/$(GOAL)
INC_DIR = $(XS_DIR)/includes
PLT_DIR = $(XS_DIR)/platforms
SRC_DIR = $(XS_DIR)/sources
TLS_DIR = ../../src
TMP_DIR = $(BUILD_DIR)/tmp/lin/$(GOAL)/$(NAME)
MACOS_ARCH ?= -arch i386
MACOS_VERSION_MIN ?= -mmacosx-version-min=10.7
C_OPTIONS = \
-fno-common \
-DINCLUDE_XSPLATFORM \
-DXSPLATFORM=\"xsnap.h\" \
-DmxDebug=1 \
-DmxMetering=1 \
-DmxParse=1 \
-DmxRun=1 \
-DmxSloppy=1 \
-DmxSnapshot=1 \
-DmxRegExpUnicodePropertyEscapes=1 \
-I$(INC_DIR) \
-I$(PLT_DIR) \
-I$(SRC_DIR) \
-I$(TLS_DIR) \
-I$(TMP_DIR)
C_OPTIONS += \
-Wno-misleading-indentation \
-Wno-implicit-fallthrough
ifeq ($(GOAL),debug)
C_OPTIONS += -g -O0 -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter
else
C_OPTIONS += -O3
endif
LIBRARIES = -ldl -lm -lpthread
LINK_OPTIONS = -rdynamic
OBJECTS = \
$(TMP_DIR)/xsAll.o \
$(TMP_DIR)/xsAPI.o \
$(TMP_DIR)/xsArguments.o \
$(TMP_DIR)/xsArray.o \
$(TMP_DIR)/xsAtomics.o \
$(TMP_DIR)/xsBigInt.o \
$(TMP_DIR)/xsBoolean.o \
$(TMP_DIR)/xsCode.o \
$(TMP_DIR)/xsCommon.o \
$(TMP_DIR)/xsDataView.o \
$(TMP_DIR)/xsDate.o \
$(TMP_DIR)/xsDebug.o \
$(TMP_DIR)/xsDefaults.o \
$(TMP_DIR)/xsError.o \
$(TMP_DIR)/xsFunction.o \
$(TMP_DIR)/xsGenerator.o \
$(TMP_DIR)/xsGlobal.o \
$(TMP_DIR)/xsJSON.o \
$(TMP_DIR)/xsLexical.o \
$(TMP_DIR)/xsMapSet.o \
$(TMP_DIR)/xsMarshall.o \
$(TMP_DIR)/xsMath.o \
$(TMP_DIR)/xsMemory.o \
$(TMP_DIR)/xsModule.o \
$(TMP_DIR)/xsNumber.o \
$(TMP_DIR)/xsObject.o \
$(TMP_DIR)/xsPlatforms.o \
$(TMP_DIR)/xsProfile.o \
$(TMP_DIR)/xsPromise.o \
$(TMP_DIR)/xsProperty.o \
$(TMP_DIR)/xsProxy.o \
$(TMP_DIR)/xsRegExp.o \
$(TMP_DIR)/xsRun.o \
$(TMP_DIR)/xsScope.o \
$(TMP_DIR)/xsScript.o \
$(TMP_DIR)/xsSnapshot.o \
$(TMP_DIR)/xsSourceMap.o \
$(TMP_DIR)/xsString.o \
$(TMP_DIR)/xsSymbol.o \
$(TMP_DIR)/xsSyntaxical.o \
$(TMP_DIR)/xsTree.o \
$(TMP_DIR)/xsType.o \
$(TMP_DIR)/xsdtoa.o \
$(TMP_DIR)/xsre.o \
$(TMP_DIR)/$(NAME).o
VPATH += $(SRC_DIR) $(TLS_DIR)
build: $(TMP_DIR) $(BIN_DIR) $(BIN_DIR)/$(NAME)
$(TMP_DIR):
mkdir -p $(TMP_DIR)
$(BIN_DIR):
mkdir -p $(BIN_DIR)
$(BIN_DIR)/$(NAME): $(OBJECTS)
@echo "#" $(NAME) $(GOAL) ": cc" $(@F)
$(CC) $(LINK_OPTIONS) $(OBJECTS) $(LIBRARIES) -o $@
$(OBJECTS): $(TLS_DIR)/xsnap.h
$(OBJECTS): $(PLT_DIR)/xsPlatform.h
$(OBJECTS): $(SRC_DIR)/xsCommon.h
$(OBJECTS): $(SRC_DIR)/xsAll.h
$(OBJECTS): $(SRC_DIR)/xsScript.h
$(OBJECTS): $(SRC_DIR)/xsSnapshot.h
$(TMP_DIR)/%.o: %.c
@echo "#" $(NAME) $(GOAL) ": cc" $(<F)
$(CC) $< $(C_OPTIONS) -c -o $@
clean:
rm -rf $(BUILD_DIR)/bin/lin/debug/$(NAME)
rm -rf $(BUILD_DIR)/bin/lin/release/$(NAME)
rm -rf $(BUILD_DIR)/tmp/lin/debug/$(NAME)
rm -rf $(BUILD_DIR)/tmp/lin/release/$(NAME)