blob: b1a3248f10e212192e7d4cb3c48537e02ce25c4b (
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
|
ifndef ZJS_BASE
$(error ZJS_BASE not defined)
endif
JERRY_BASE ?= $(ZJS_BASE)/deps/jerryscript
OCF_ROOT ?= deps/iotivity-constrained
.PHONY: all
all: linux
include Makefile.ocf_linux
CORE_SRC += src/zjs_buffer.c \
src/zjs_callbacks.c \
src/zjs_console.c \
src/zjs_event.c \
src/zjs_linux_ring_buffer.c \
src/zjs_linux_time.c \
src/zjs_modules.c \
src/zjs_performance.c \
src/zjs_ocf_common.c \
src/zjs_ocf_client.c \
src/zjs_ocf_server.c \
src/zjs_promise.c \
src/zjs_script.c \
src/zjs_script_gen.c \
src/zjs_timers.c \
src/zjs_unit_tests.c \
src/zjs_util.c
CORE_OBJ = $(CORE_SRC:%.c=%.o)
LINUX_INCLUDES += -Isrc/ \
-I$(JERRY_BASE)/jerry-core \
-I$(OCF_ROOT)/deps/tinydtls \
-I$(OCF_ROOT) \
-I$(OCF_ROOT)/port/linux \
-I$(OCF_ROOT)/include \
-include $(OCF_ROOT)/port/linux/config.h
JERRY_LIBS += -l jerry-core -lm
JERRY_LIB_PATH += -L $(JERRY_BASE)/build/lib/
LINUX_LIBS += $(JERRY_LIBS) -pthread
LINUX_DEFINES += -DZJS_LINUX_BUILD \
-DOC_CLIENT \
-DOC_SERVER \
-DBUILD_MODULE_OCF \
-DBUILD_MODULE_EVENTS \
-DBUILD_MODULE_PERFORMANCE \
-DBUILD_MODULE_CONSOLE
LINUX_FLAGS += -fno-asynchronous-unwind-tables \
-fno-omit-frame-pointer \
-Wno-format-zero-length \
-Wno-main \
-ffreestanding \
-Os \
-fno-stack-protector \
-ffunction-sections \
-fdata-sections \
-Wno-unused-but-set-variable \
-fno-reorder-functions \
-fno-defer-pop \
-Wno-pointer-sign \
-fno-strict-overflow \
-Werror=implicit-int \
-Wall \
-Werror \
-std=gnu99 \
-flto \
-Wpointer-sign
ifeq ($(VARIANT), debug)
LINUX_DEFINES += -DDEBUG_BUILD
LINUX_FLAGS += -g
DEBUG=1
else
DEBUG=0
endif
ifeq ($(CB_STATS), on)
LINUX_DEFINES += -DZJS_PRINT_CALLBACK_STATS
endif
ifeq ($(V), 1)
VERBOSE=-v
endif
%.o:%.c
@echo "Building $@"
gcc -c -o $@ $< $(LINUX_INCLUDES) $(LINUX_DEFINES) $(LINUX_FLAGS)
.PHONY: linux
linux: $(CORE_OBJ)
@echo "Building for Linux $(CORE_OBJ)"
cd deps/jerryscript; python ./tools/build.py $(VERBOSE);
gcc $(LINUX_INCLUDES) $(JERRY_LIB_PATH) -static -o jslinux src/main.c $(CORE_OBJ) $(LINUX_FLAGS) $(CFLAGS) $(LINUX_DEFINES) $(LINUX_LIBS)
.PHONY: clean
clean:
rm -f $(CORE_OBJ)
|