1
- REPO_ROOT = ..
2
1
SRCPATH = src
3
- VPATH = $(REPO_ROOT ) /common $(REPO_ROOT ) /frozen src
4
2
BUILD_DIR = build
5
3
6
- R ?= $(abspath $(REPO_ROOT ) )
7
- RD ?= docker run -v $(R ) :$(R ) -w $(CURDIR )
8
- DOCKER_GCC ?= $(RD ) docker.cesanta.com/gcc
9
- DOCKER_CLANG ?= $(RD ) docker.cesanta.com/clang
4
+ RD ?= docker run -v $(CURDIR ) :$(CURDIR ) --user=$(shell id -u) :$(shell id -g) -w $(CURDIR )
5
+ DOCKER_GCC ?= $(RD ) mgos/gcc
6
+ DOCKER_CLANG ?= $(RD ) mgos/clang
10
7
11
8
include $(SRCPATH ) /mjs_sources.mk
12
9
@@ -15,7 +12,7 @@ TOP_HEADERS = $(addprefix $(SRCPATH)/, $(HEADERS))
15
12
TOP_SOURCES_DIRS = $(sort $(dir $(TOP_SOURCES ) ) )
16
13
TOP_HEADERS_DIRS = $(sort $(dir $(TOP_HEADERS ) ) )
17
14
18
- MFLAGS += -I. -I $( REPO_ROOT ) - Isrc
15
+ MFLAGS += -I. -Isrc
19
16
MFLAGS += -DMJS_MAIN -DMJS_EXPOSE_PRIVATE -DCS_ENABLE_STDIO -DMJS_ENABLE_DEBUG -I../frozen
20
17
MFLAGS += $(CFLAGS_EXTRA )
21
18
CFLAGS += -lm -std=c99 -Wall -Wextra -pedantic -g $(MFLAGS )
@@ -50,24 +47,25 @@ PROG = $(BUILD_DIR)/mjs
50
47
51
48
all : $(PROG )
52
49
53
- TESTUTIL_FILES = $(REPO_ROOT ) /common/cs_dirent.c \
54
- $(REPO_ROOT ) /common/cs_time.c \
55
- $(REPO_ROOT ) /common/test_main.c \
56
- $(REPO_ROOT ) /common/test_util.c
50
+ TESTUTIL_FILES = $(SRCPATH ) /common/cs_dirent.c \
51
+ $(SRCPATH ) /common/cs_time.c \
52
+ $(SRCPATH ) /common/test_main.c \
53
+ $(SRCPATH ) /common/test_util.c
57
54
58
55
mjs.c : $(TOP_SOURCES ) mjs.h Makefile
59
- @printf " AMALGAMATING\tmjs.c\n"
60
- $(Q ) (cd .. && tools/amalgam.py \
61
- --autoinc --exportable-headers -I frozen -I mjs --prefix MJS \
62
- --public-header mjs.h --ignore mjs/mjs.h \
63
- --first mjs/src/license.h,mjs/src/internal.h,common/platform.h,common/platforms/platform_windows.h,common/platforms/platform_unix.h,common/platforms/platform_esp_lwip.h $(TOP_SOURCES)) > $@
64
-
65
- mjs.h : $(TOP_HEADERS ) $(TOP_SOURCES ) Makefile
66
- @printf " AMALGAMATING\tmjs.h\n"
67
- $(Q ) (cd .. && tools/amalgam.py \
68
- --autoinc --exportable-headers -I frozen -I mjs --prefix MJS \
69
- --ignore mjs/mjs.h \
70
- --first mjs/src/license.h,common/platform.h $(filter %_public.h,$(TOP_HEADERS))) > $@
56
+ @printf " AMALGAMATING mjs.c\n"
57
+ $(Q ) (tools/amalgam.py \
58
+ --autoinc --exportable-headers -I src -I src/frozen --prefix MJS \
59
+ --public-header mjs.h --ignore mjs.h \
60
+ --first common/platform.h,common/platforms/platform_windows.h,common/platforms/platform_unix.h,common/platforms/platform_esp_lwip.h \
61
+ $(TOP_SOURCES)) > $@
62
+
63
+ mjs.h : $(TOP_HEADERS ) $(TOP_SOURCES ) Makefile tools/amalgam.py
64
+ @printf " AMALGAMATING mjs.h\n"
65
+ $(Q ) (tools/amalgam.py \
66
+ --autoinc --exportable-headers -I src --prefix MJS --strict \
67
+ --ignore mjs.h \
68
+ --first common/platform.h $(filter %_public.h,$(TOP_HEADERS))) > $@
71
69
72
70
CFLAGS += $(COMMON_CFLAGS )
73
71
@@ -82,9 +80,9 @@ $(BUILD_DIR):
82
80
$(BUILD_DIR ) /% .o : % .c $(TOP_HEADERS )
83
81
$(CLANG ) $(CFLAGS ) $(CPPFLAGS ) -c -o $@ $<
84
82
85
- COMMON_TEST_FLAGS = -W -Wall -I. -I $( REPO_ROOT ) -g3 -O0 $(COMMON_CFLAGS ) $< $(TESTUTIL_FILES ) -DMJS_MEMORY_STATS
83
+ COMMON_TEST_FLAGS = -W -Wall -I. -Isrc -g3 -O0 $(COMMON_CFLAGS ) $< $(TESTUTIL_FILES ) -DMJS_MEMORY_STATS
86
84
87
- include $(REPO_ROOT ) /common.mk
85
+ # include $(REPO_ROOT)/common.mk
88
86
89
87
# ==== Test Variants ====
90
88
#
@@ -153,9 +151,9 @@ endef
153
151
# 2: binary name component, like "O0" or whatever
154
152
# 3: additional compiler flags
155
153
define compile_test_with_opt
156
- $(eval $(call compile_test_with_compiler,docker.cesanta.com /clang,/usr/bin/clang-3.6,clang_$2,$(ASAN_CFLAGS ) $1 $3) )
157
- $(eval $(call compile_test_with_compiler,docker.cesanta.com /clang,/usr/bin/clang-3.6,clang_32bit_$2,-m32 $1 $3) )
158
- $(eval $(call compile_test_with_compiler,docker.cesanta.com /gcc,/usr/bin/gcc,gcc_$2,$1 $3) )
154
+ $(eval $(call compile_test_with_compiler,mgos /clang,/usr/bin/clang-3.6,clang_$2,$(ASAN_CFLAGS ) $1 $3) )
155
+ $(eval $(call compile_test_with_compiler,mgos /clang,/usr/bin/clang-3.6,clang_32bit_$2,-m32 $1 $3) )
156
+ $(eval $(call compile_test_with_compiler,mgos /gcc,/usr/bin/gcc,gcc_$2,$1 $3) )
159
157
endef
160
158
161
159
# params:
@@ -218,11 +216,11 @@ difftest:
218
216
ci-test : $(BUILD_DIR ) vc98 vc2017 test_full
219
217
220
218
$(PROG ) .exe : $(BUILD_DIR ) $(TOP_HEADERS ) mjs.c
221
- $(RD ) docker.cesanta.com /vc98 wine cl mjs.c $(CLFLAGS ) $(MFLAGS ) /Fe$@
219
+ $(RD ) mgos /vc98 wine cl mjs.c $(CLFLAGS ) $(MFLAGS ) /Fe$@
222
220
223
221
TEST_SOURCES = tests/unit_test.c $(TESTUTIL_FILES )
224
222
CLFLAGS = /DWIN32_LEAN_AND_MEAN /MD /O1 /TC /W2 /WX /I.. /I. /DNDEBUG /DMJS_MEMORY_STATS
225
223
vc98 vc2017 : mjs.c mjs.h
226
- $(RD ) docker.cesanta.com /$@ wine cl $(TEST_SOURCES ) $(CLFLAGS ) /Fe$@ .exe
227
- $(RD ) docker.cesanta.com /$@ wine ./$@ .exe
224
+ $(RD ) mgos /$@ wine cl $(TEST_SOURCES ) $(CLFLAGS ) /Fe$@ .exe
225
+ $(RD ) mgos /$@ wine ./$@ .exe
228
226
0 commit comments