Skip to content

Commit 4e61395

Browse files
authored
Merge pull request #171 from cesanta/src
Reorganize sources, fix amalgamation and tests
2 parents 4c870e5 + ae2e6c6 commit 4e61395

File tree

226 files changed

+568
-589
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

226 files changed

+568
-589
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
build/

mjs/Makefile renamed to Makefile

Lines changed: 29 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
REPO_ROOT = ..
21
SRCPATH = src
3-
VPATH = $(REPO_ROOT)/common $(REPO_ROOT)/frozen src
42
BUILD_DIR = build
53

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
107

118
include $(SRCPATH)/mjs_sources.mk
129

@@ -15,7 +12,7 @@ TOP_HEADERS = $(addprefix $(SRCPATH)/, $(HEADERS))
1512
TOP_SOURCES_DIRS = $(sort $(dir $(TOP_SOURCES)))
1613
TOP_HEADERS_DIRS = $(sort $(dir $(TOP_HEADERS)))
1714

18-
MFLAGS += -I. -I$(REPO_ROOT) -Isrc
15+
MFLAGS += -I. -Isrc
1916
MFLAGS += -DMJS_MAIN -DMJS_EXPOSE_PRIVATE -DCS_ENABLE_STDIO -DMJS_ENABLE_DEBUG -I../frozen
2017
MFLAGS += $(CFLAGS_EXTRA)
2118
CFLAGS += -lm -std=c99 -Wall -Wextra -pedantic -g $(MFLAGS)
@@ -50,24 +47,25 @@ PROG = $(BUILD_DIR)/mjs
5047

5148
all: $(PROG)
5249

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
5754

5855
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))) > $@
7169

7270
CFLAGS += $(COMMON_CFLAGS)
7371

@@ -82,9 +80,9 @@ $(BUILD_DIR):
8280
$(BUILD_DIR)/%.o: %.c $(TOP_HEADERS)
8381
$(CLANG) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
8482

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
8684

87-
include $(REPO_ROOT)/common.mk
85+
#include $(REPO_ROOT)/common.mk
8886

8987
# ==== Test Variants ====
9088
#
@@ -153,9 +151,9 @@ endef
153151
# 2: binary name component, like "O0" or whatever
154152
# 3: additional compiler flags
155153
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))
159157
endef
160158

161159
# params:
@@ -218,11 +216,11 @@ difftest:
218216
ci-test: $(BUILD_DIR) vc98 vc2017 test_full
219217

220218
$(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$@
222220

223221
TEST_SOURCES = tests/unit_test.c $(TESTUTIL_FILES)
224222
CLFLAGS = /DWIN32_LEAN_AND_MEAN /MD /O1 /TC /W2 /WX /I.. /I. /DNDEBUG /DMJS_MEMORY_STATS
225223
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
228226

common.mk

Lines changed: 0 additions & 42 deletions
This file was deleted.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)