From fa4fdad6232c40684993070991e6c55113799130 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 2 Jul 2017 12:03:29 +0200 Subject: [PATCH] build: Remove make. * GNUmakefile: trivial convenience-frontend to ./make.scm * make/*.make: Remove. * */*.make: Remove. --- GNUmakefile | 65 ++--------------- make/bin-mlibc.make | 7 -- make/bin.make | 27 ------- make/check-cc.make | 3 - make/check-mlibc.make | 3 - make/check-tinycc.make | 21 ------ make/check.make | 16 ----- make/clean.make | 17 ----- make/common.make | 49 ------------- make/compile.make | 17 ----- make/guile.make | 33 --------- make/install.make | 125 -------------------------------- make/mescc-guile.make | 94 ------------------------ make/mescc-mes.make | 104 --------------------------- make/reset.make | 16 ----- module/module.make | 21 ------ scaffold/scaffold.make | 159 ----------------------------------------- scripts/scripts.make | 6 -- src/src.make | 70 ------------------ stage0/stage0.make | 37 ---------- tests/tests.make | 38 ---------- tinycc/tinycc.make | 104 --------------------------- 22 files changed, 7 insertions(+), 1025 deletions(-) delete mode 100644 make/bin-mlibc.make delete mode 100644 make/bin.make delete mode 100644 make/check-cc.make delete mode 100644 make/check-mlibc.make delete mode 100644 make/check-tinycc.make delete mode 100644 make/check.make delete mode 100644 make/clean.make delete mode 100644 make/common.make delete mode 100644 make/compile.make delete mode 100644 make/guile.make delete mode 100644 make/install.make delete mode 100644 make/mescc-guile.make delete mode 100644 make/mescc-mes.make delete mode 100644 make/reset.make delete mode 100644 module/module.make delete mode 100644 scaffold/scaffold.make delete mode 100644 scripts/scripts.make delete mode 100644 src/src.make delete mode 100644 stage0/stage0.make delete mode 100644 tests/tests.make delete mode 100644 tinycc/tinycc.make diff --git a/GNUmakefile b/GNUmakefile index f595e848..f7d923c2 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,61 +1,10 @@ -SHELL:=bash -export SHELL -.export: SHELL -QUIET:=@ +GUILE:=guile +GUILE_FLAGS:=--no-auto-compile -L guile -C guile -default: all +include .config.make -MES_DEBUG:=1 -CFLAGS:=--std=gnu99 -O0 -g --include libc-gcc.c -HEX2_FLAGS:=--LittleEndian --Architecture 1 --BaseAddress 0x1000000 -OUT:=out +PHONY_TARGETS:= all check clean default help +.PHONY: $(PHONY_TARGETS) -SUBDIRS:=\ - module\ - src\ - scaffold\ - scripts\ - stage0\ - tests\ - tinycc\ -# - -include make/common.make --include .local.make - -build-scripts: - make --dry-run MES=$(OUT)/mes CC= CC32= GUILE= MES_BOOTSTRAP=1 > $(OUT)/make.sh - make --dry-run MES=$(OUT)/mes CC= CC32= GUILE= MES_BOOTSTRAP=1 | tail +$(wc -l make.sh) > $(OUT)/make-check.sh - make --dry-run MES=$(OUT)/mes CC= CC32= GUILE= MES_BOOTSTRAP=1 | tail +$(wc -l make.sh) > $(OUT)/make-install.sh - - make --dry-run > $(OUT)/make-dev.sh - make --dry-run | tail +$(wc -l make.sh) > $(OUT)/make-dev-check.sh - make --dry-run | tail +$(wc -l make.sh) > $(OUT)/make-dev-install.sh - -help: help-top - -install: all -release: all - -help: - @echo - -define HELP_TOP -Usage: make [OPTION]... [TARGET]... - -Targets: - all update everything - build-scripts generate build scripts - check run unit tests - clean remove all generated stuff - dist create tarball in $(TARBALL) - distclean also clean configuration - maintainer-clean also clean expensive targets [$(strip $(MAINTAINER-CLEAN))] - mescc compile cc/main.c to a.out - install install in $$(DESTDIR)$$(PREFIX) [$(DESTDIR)$(PREFIX)] - release make a release - update-hash update hash in guix.scm -endef -export HELP_TOP -help-top: - @echo "$$HELP_TOP" +$(PHONY_TARGETS): + $(GUILE) $(GUILE_FLAGS) -s make.scm $@ diff --git a/make/bin-mlibc.make b/make/bin-mlibc.make deleted file mode 100644 index e898a57c..00000000 --- a/make/bin-mlibc.make +++ /dev/null @@ -1,7 +0,0 @@ -ifneq ($(CC32),) -C_FLAGS:=-nostdinc -fno-builtin -LD_FLAGS:=-nostdlib -CROSS:=$(CC32:%gcc=%) - -include make/bin.make -endif diff --git a/make/bin.make b/make/bin.make deleted file mode 100644 index 7d2c6373..00000000 --- a/make/bin.make +++ /dev/null @@ -1,27 +0,0 @@ -ifneq ($(CC),) -O_FILES := $(C_FILES:%.c=$(OUT)/%.$(CROSS)o) -D_FILES := $(O_FILES:%o=%d) - -ifneq ($(DEBUG),) -$(info TARGET=$(TARGET)) -$(info C_FILES=$(C_FILES)) -$(info O_FILES=$(O_FILES)) -$(info D_FILES=$(D_FILES)) -endif - -CLEAN+=$(O_FILES) $(OUT)/$(TARGET) -DIST-CLEAN+=$(D_FILES) - -INCLUDES+=mlibc/include mlibc $(OUT)/$(DIR) - -$(OUT)/$(TARGET): ld:=$(CROSS)LD -$(OUT)/$(TARGET): LD:=$(CROSS)$(LD) -$(OUT)/$(TARGET): CC:=$(CROSS)$(CC) -$(OUT)/$(TARGET): LDFLAGS:=$(LDFLAGS) $(LD_FLAGS) $(LINK) -$(OUT)/$(TARGET): O_FILES:=$(O_FILES) -$(OUT)/$(TARGET): $(O_FILES) - @echo " $(ld) $(notdir $^) -> $(notdir $@)" - $(QUIET)$(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@ - -include make/compile.make -endif diff --git a/make/check-cc.make b/make/check-cc.make deleted file mode 100644 index fcba6caf..00000000 --- a/make/check-cc.make +++ /dev/null @@ -1,3 +0,0 @@ -ifneq ($(CC),) -include make/check.make -endif diff --git a/make/check-mlibc.make b/make/check-mlibc.make deleted file mode 100644 index 15a132b4..00000000 --- a/make/check-mlibc.make +++ /dev/null @@ -1,3 +0,0 @@ -ifneq ($(CC32),) -include make/check.make -endif diff --git a/make/check-tinycc.make b/make/check-tinycc.make deleted file mode 100644 index 6d792908..00000000 --- a/make/check-tinycc.make +++ /dev/null @@ -1,21 +0,0 @@ -ifeq ($(TEST),) -TEST:=$(TARGET)-check -$(TEST): EXT:=$(EXT) -$(TEST): EXPECT:=$(EXPECT) -$(TEST): SHELL:=$(SHELL) -$(TEST): $(OUT)/$(TARGET) - @export SHELL=$(SHELL) -ifeq ($(EXPECT),) - $< - arg1 arg2 arg3 arg4 > $(<:.$(EXT)=.stdout) -else - $<; r=$$?; [ $$r = $(EXPECT) ] -endif - $(QUIETx)if diff -bu $(TINYCC_TEST2)/$( $$(notdir $$@)" - @mkdir -p $$(dir $$@) - $$(QUIET)$$(COMPILE.c) $$(OUTPUT_OPTION) -MMD -MF $$(@:%.$(CROSS)o=%.$(CROSS)d) -MT '$$(@:.%$(CROSS)o=%.$(CROSS)d)' $$< -endef - -$(foreach c-file,$(strip $(filter %.c,$(C_FILES))),$(eval $(call c-compile,$(c-file),$(DEFINES),$(INCLUDES)))) -include make/reset.make diff --git a/make/guile.make b/make/guile.make deleted file mode 100644 index 5a79d5f0..00000000 --- a/make/guile.make +++ /dev/null @@ -1,33 +0,0 @@ -GO_FILES:=$(SCM_FILES:%.scm=%.go) -CLEAN+=$(GO_FILES) - -clean-go: GO_FILES:=$(GO_FILES) -clean-go: - @$(QUIET)rm -f $(GO_FILES) - -INSTALL_SCM_FILES+=$(SCM_FILES) -INSTALL_GO_FILES+=$(GO_FILES) -INSTALL_MES_FILES+=$(MES_FILES) - -GUILE_FLAGS:=\ - --no-auto-compile\ - -L guile\ - -C guile\ -# - -all-go: DIR:=$(DIR) -all-go: SCM_FILES:=$(SCM_FILES) -all-go: GUILE_FLAGS:=$(GUILE_FLAGS) -all-go: $(SCM_FILES) - $(QUIET)rm -f $@ - $(QUIET)cd guile && srcdir=$(srcdir) host=$(host) $(GUILE) $(GUILE_FLAGS:guile=.) -s ../build-aux/compile-all.scm $(SCM_FILES:$(DIR)/%=%) - -$(GO_FILES): all-go - -# these .scm files include its .mes counterpart; must add dependency to be be remade -SCM_BASES:=$(SCM_FILES:%.scm=%) -SCM_MES_FILES:=$(filter $(SCM_BASES:%=%.mes),$(MES_FILES)) -$(foreach scm_mes,$(SCM_MES_FILES),$(eval $(scm_mes:%.mes=%.go): $(scm_mes))) - -CHECK := $(CHECK) $(TEST) -include make/reset.make diff --git a/make/install.make b/make/install.make deleted file mode 100644 index b40e96d2..00000000 --- a/make/install.make +++ /dev/null @@ -1,125 +0,0 @@ -.PHONY: tree-clean-p - -READMES:=\ - AUTHORS\ - COPYING\ - HACKING\ - INSTALL\ - NEWS\ - README\ -# - -COMMIT:=$(shell test -d .git && (git show 2>/dev/null | head -1 | cut -d' ' -f 2) || cat .tarball-version) -GUIX-HASH:=out/guix-hash -TARBALL_DIR:=$(PACKAGE)-$(VERSION) -TARBALL:=$(OUT)/$(TARBALL_DIR).tar.gz - -OPT_CLEAN:=$(OPT_CLEAN) $(TARBALL) .tarball-version - -GIT_ARCHIVE_HEAD:=git archive HEAD -- -GIT_LS_FILES:=git ls-files -ifeq ($(wildcard .git/HEAD),) -GIT_ARCHIVE_HEAD:=tar -cf- -GIT_LS_FILES:=find -endif - -ifeq ($(GUIX),) -DATADIR:=$(PREFIX)/share/mes -DOCDIR:=$(DATADIR)/doc/mes -else -DATADIR:=$(PREFIX)/share -DOCDIR:=$(DATADIR)/doc -endif -LIBDIR:=$(PREFIX)/lib - -GODIR:=$(LIBDIR)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache -GUILEDIR:=$(PREFIX)/share/guile/site/$(GUILE_EFFECTIVE_VERSION) -MODULEDIR:=$(DATADIR)/module/ - -.tarball-version: tree-clean-p - echo $(COMMIT) > $@ - -dist: $(TARBALL) - -tree-clean-p: - test ! -d .git || git diff --exit-code > /dev/null - test ! -d .git || git diff --cached --exit-code > /dev/null - @echo commit:$(COMMIT) - -$(TARBALL): tree-clean-p .tarball-version ChangeLog - mkdir -p $(OUT) - ($(GIT_LS_FILES) --exclude=$(OUT);\ - echo $^ | tr ' ' '\n' | grep -Ev 'tree-clean-p')\ - | tar --transform=s,^,$(TARBALL_DIR)/,S -T- -czf $@ - -ChangeLog: - build-aux/gitlog-to-changelog > $@ - - -#FIXME: INSTALL like CLEAN -INSTALL_SCM_FILES:= -INSTALL_GO_FILES:= -install: $(CLEAN) ChangeLog - mkdir -p $(DESTDIR)$(PREFIX)/bin - install $(OUT)/mes $(DESTDIR)$(PREFIX)/bin/mes -ifneq ($(MES_BOOTSTRAP),) - install $(OUT)/mes.mes $(DESTDIR)$(PREFIX)/bin/mes.mes -endif - install scripts/mescc.mes $(DESTDIR)$(PREFIX)/bin/mescc.mes - install scripts/repl.mes $(DESTDIR)$(PREFIX)/bin/repl.mes - install guile/mescc.scm $(DESTDIR)$(PREFIX)/bin/mescc.scm - mkdir -p $(DESTDIR)$(DATADIR) - $(GIT_ARCHIVE_HEAD) module\ - | tar -C $(DESTDIR)$(DATADIR) -xf- - $(GIT_ARCHIVE_HEAD) guile\ - | tar -C $(DESTDIR)$(DATADIR) -xf- - sed -i \ - -e 's,module/,$(DATADIR)/module/,' \ - -e 's,@DATADIR@,$(DATADIR)/,g' \ - -e 's,@DOCDIR@,$(DOCDIR)/,g' \ - -e 's,@GODIR@,$(GODIR)/,g' \ - -e 's,@GUILEDIR@,$(GUILEDIR)/,g' \ - -e 's,@MODULEDIR@,$(MODULEDIR),g' \ - -e 's,@PREFIX@,$(PREFIX)/,g' \ - -e 's,@VERSION@,$(VERSION),g' \ - $(DESTDIR)$(DATADIR)/module/mes/base-0.mes \ - $(DESTDIR)$(DATADIR)/module/language/c99/compiler.mes \ - $(DESTDIR)$(PREFIX)/bin/mescc.mes \ - $(DESTDIR)$(PREFIX)/bin/mescc.scm \ - $(DESTDIR)$(PREFIX)/bin/repl.mes - mkdir -p $(DESTDIR)$(DOCDIR) - $(GIT_ARCHIVE_HEAD) $(READMES) \ - | tar -C $(DESTDIR)$(DOCDIR) -xf- - $(GIT_ARCHIVE_HEAD) doc \ - | tar -C $(DESTDIR)$(DOCDIR) --strip=1 -xf- - cp ChangeLog $(DESTDIR)$(DOCDIR) - mkdir -p $(DESTDIR)$(GUILEDIR) - tar -cf- -C module $(INSTALL_SCM_FILES:module/%=%)\ - | tar -C $(DESTDIR)$(GUILEDIR) -xf- - mkdir -p $(DESTDIR)$(GODIR) - tar -cf- -C module $(INSTALL_GO_FILES:module/%=%)\ - | tar -C $(DESTDIR)$(GODIR) -xf- - mkdir -p $(DESTDIR)$(PREFIX)/lib - $(GIT_ARCHIVE_HEAD) mlibc/include \ - | tar -C $(DESTDIR)$(PREFIX)/share -xf- - cp out/mlibc/libc-mes.guile-o $(DESTDIR)$(PREFIX)/lib/libc-mes.o - -release: tree-clean-p check dist - git tag v$(VERSION) - git push --tags origin master - git push origin master - -$(GUIX-HASH): tree-clean-p - rm -rf out/mes && mkdir -p out && git clone . out/mes && guix hash -rx out/mes > $@ - -update-hash: $(GUIX-HASH) .tarball-version - @echo -n hash: - cat $^ - sed -i \ - -e 's,(base32 "[^"]*"),(base32 "$(shell cat $<)"),'\ - -e 's,(commit "[^"]*"),(commit "$(shell cat .tarball-version)"),'\ - -e 's,(version "[^g][^"]*"),(version "$(VERSION)"),'\ - guix.scm - ! git diff --exit-code - git commit -m 'guix hash: $(shell cat $<)' guix.scm - diff --git a/make/mescc-guile.make b/make/mescc-guile.make deleted file mode 100644 index 1f462065..00000000 --- a/make/mescc-guile.make +++ /dev/null @@ -1,94 +0,0 @@ -ifneq ($(GUILE),) -CROSS:=guile- -C_FILES:=mlibc/libc-mes.c $(C_FILES) -#C_FILES:=mlibc/mini-libc-mes.c $(C_FILES) -O_FILES:=$(C_FILES:%.c=$(OUT)/%.$(CROSS)o) - -ifneq ($(DEBUG),) -$(info TARGET=$(TARGET)) -$(info C_FILES=$(C_FILES)) -$(info O_FILES=$(O_FILES)) -endif - -CLEAN+=$(O_FILES) $(OUT)/$(TARGET) - -CLEAN+=$(OUT)/$(TARGET) - -INCLUDES+=mlibc/include mlibc $(OUT)/$(DIR) -MESCC.scm:=guile/mescc.scm -g -LINK.hex2:=$(HEX2) -#ELF_HEADER:=stage0/elf32-0header.hex2 -#ELF_FOOTER:=stage0/elf-0footer.hex2 -ELF_HEADER:=stage0/elf32-header.hex2 -ELF_FOOTER:=stage0/elf32-footer-single-main.hex2 - - -$(OUT)/$(TARGET): ld:=$(LINK.hex2) -$(OUT)/$(TARGET): LD:=$(MESLD.scm) -$(OUT)/$(TARGET): CC:=$(MESCC.scm) -$(OUT)/$(TARGET): CFLAGS:= -$(OUT)/$(TARGET): LDFLAGS:= -$(OUT)/$(TARGET): O_FILES:=$(O_FILES) -$(OUT)/$(TARGET): $(O_FILES) - @echo " $(ld) $(notdir $(O_FILES)) -> $(notdir $@)" - $(QUIET)$(LINK.hex2) $(HEX2_FLAGS) -f $(ELF_HEADER) $(O_FILES:%=-f %) $(LOADLIBES:%=-f %) $(LDLIBS:%=-f %) -f $(ELF_FOOTER) > $@ || { rm -f $@; exit 1;} - @chmod +x $@ - -define mescc.scm-c-compile -$(OUT)/$(1:.c=.$(CROSS)o): CROSS:=$(CROSS) -$(OUT)/$(1:.c=.$(CROSS)o): cc:=MESCC.scm -$(OUT)/$(1:.c=.$(CROSS)o): CC:=$(MESCC.scm) -$(OUT)/$(1:.c=.$(CROSS)o): CPPFLAGS:=$(2:%=-D %) $(3:%=-I %) -$(OUT)/$(1:.c=.$(CROSS)o): COMPILE.c:=$(MESCC.scm) -c $(CPPFLAGS) -$(OUT)/$(1:.c=.$(CROSS)o): $(MAKEFILE_LIST) -$(OUT)/$(1:.c=.$(CROSS)o): $(INSTALL_GO_FILES) -$(OUT)/$(1:.c=.$(CROSS)o): $(1) - @echo " $$(cc) $$(notdir $(1)) -> $$(notdir $$@)" - @mkdir -p $$(dir $$@) - $$(QUIET)$$(COMPILE.c) $$(CPPFLAGS) $$(OUTPUT_OPTION) $(1) -endef - -define mescc.scm-c-preprocess -$(OUT)/$(1:.c=.$(CROSS)E): CROSS:=$(CROSS) -$(OUT)/$(1:.c=.$(CROSS)E): cc:=MESCC.scm -$(OUT)/$(1:.c=.$(CROSS)E): CC:=$(MESCC.scm) -$(OUT)/$(1:.c=.$(CROSS)E): CPPFLAGS:=$(2:%=-D %) $(3:%=-I %) -$(OUT)/$(1:.c=.$(CROSS)E): PREPROCESS.c:=$(MESCC.scm) -E $(CPPFLAGS) -$(OUT)/$(1:.c=.$(CROSS)E): $(MAKEFILE_LIST) -$(OUT)/$(1:.c=.$(CROSS)E): $(INSTALL_GO_FILES) -$(OUT)/$(1:.c=.$(CROSS)E): $(1) - @echo " $$(cc) $$(notdir $(1)) -> $$(notdir $$@)" - @mkdir -p $$(dir $$@) - $$(QUIET)$$(PREPROCESS.c) $$(CPPFLAGS) $$(OUTPUT_OPTION) $(1) -endef - -define mescc.scm-c-compile-E -$(1:.$(CROSS)E=.$(CROSS)o): CROSS:=$(CROSS) -$(1:.$(CROSS)E=.$(CROSS)o): cc:=MESCC.scm -$(1:.$(CROSS)E=.$(CROSS)o): CC:=$(MESCC.scm) -$(1:.$(CROSS)E=.$(CROSS)o): CPPFLAGS:=$(2:%=-D %) $(3:%=-I %) -$(1:.$(CROSS)E=.$(CROSS)o): COMPILE.c:=$(MESCC.scm) -c $(CPPFLAGS) -$(1:.$(CROSS)E=.$(CROSS)o): $(MAKEFILE_LIST) -$(1:.$(CROSS)E=.$(CROSS)o): $(INSTALL_GO_FILES) -$(1:.$(CROSS)E=.$(CROSS)o): $(1) - @echo " $$(cc) $$(notdir $(1)) -> $$(notdir $$@)" - @mkdir -p $$(dir $$@) - $$(QUIET)$$(COMPILE.c) $$(CPPFLAGS) $$(OUTPUT_OPTION) $(1) -endef - -ifeq ($(MLIBC.scm),) -MLIBC.scm:=DONE -else -C_FILES:=$(filter-out mlibc/libc-mes.c,$(C_FILES)) -C_FILES:=$(filter-out mlibc/mini-libc-mes.c,$(C_FILES)) -endif - -ifneq ($(MESC_DIRECT),) -$(foreach c-file,$(strip $(filter %.c,$(C_FILES))),$(eval $(call mescc.scm-c-compile,$(c-file),$(DEFINES),$(INCLUDES)))) -else -$(foreach c-file,$(strip $(filter %.c,$(C_FILES))),$(eval $(call mescc.scm-c-preprocess,$(c-file),$(DEFINES),$(INCLUDES)))) -$(foreach c-file,$(strip $(filter %.c,$(C_FILES))),$(eval $(call mescc.scm-c-compile-E,$(c-file:%.c=$(OUT)/%.$(CROSS)E),$(DEFINES),$(INCLUDES)))) -endif - -endif -include make/reset.make diff --git a/make/mescc-mes.make b/make/mescc-mes.make deleted file mode 100644 index bb542725..00000000 --- a/make/mescc-mes.make +++ /dev/null @@ -1,104 +0,0 @@ -ifneq ($(MES),) -CROSS:=mes- -C_FILES:=mlibc/libc-mes.c $(C_FILES) -O_FILES:=$(C_FILES:%.c=$(OUT)/%.$(CROSS)o) - -ifneq ($(DEBUG),) -$(info TARGET=$(TARGET)) -$(info C_FILES=$(C_FILES)) -$(info O_FILES=$(O_FILES)) -endif - -CLEAN+=$(O_FILES) $(OUT)/$(TARGET) - -CLEAN+=$(OUT)/$(TARGET) - -INCLUDES+=mlibc/include mlibc $(OUT)/$(DIR) -MESCC.mes:=scripts/mescc.mes -g -MESLD.mes:=scripts/mescc.mes -g -LINK.hex2:=$(HEX2) -#ELF_HEADER:=stage0/elf32-0header.hex2 -#ELF_FOOTER:=stage0/elf-0footer.hex2 -ELF_HEADER:=stage0/elf32-header.hex2 -ELF_FOOTER:=stage0/elf32-footer-single-main.hex2 - -$(OUT)/$(TARGET): ld:=MESLD.mes -$(OUT)/$(TARGET): LD:=$(MESLD.mes) -$(OUT)/$(TARGET): CC:=$(MESCC.mes) -$(OUT)/$(TARGET): CFLAGS:= -$(OUT)/$(TARGET): LDFLAGS:= -$(OUT)/$(TARGET): $(MAKEFILE_LIST) -$(OUT)/$(TARGET): scripts/mes -$(OUT)/$(TARGET): O_FILES:=$(O_FILES) -$(OUT)/$(TARGET): $(O_FILES) - @echo " $(ld) $(notdir $(O_FILES)) -> $(notdir $@)" - $(QUIET)$(LINK.hex2) $(HEX2_FLAGS) -f $(ELF_HEADER) $(O_FILES:%=-f %) $(LOADLIBES:%=-f %) $(LDLIBS:%=-f %) -f $(ELF_FOOTER) > $@ || { rm -f $@; exit 1;} - @chmod +x $@ - -define mescc.mes-c-compile -$(OUT)/$(1:.c=.$(CROSS)o): CROSS:=$(CROSS) -$(OUT)/$(1:.c=.$(CROSS)o): cc:=MESCC.mes -$(OUT)/$(1:.c=.$(CROSS)o): CC:=$(MESCC.mes) -$(OUT)/$(1:.c=.$(CROSS)o): COMPILE.c:=$(MESCC.mes) -c -$(OUT)/$(1:.c=.$(CROSS)o): CPPFLAGS:=$(2:%=-D %) $(3:%=-I %) -$(OUT)/$(1:.c=.$(CROSS)o): COMPILE.c:=$(MESCC.mes) -c $(CPPFLAGS) -$(OUT)/$(1:.c=.$(CROSS)o): OUT:=$(OUT) -$(OUT)/$(1:.c=.$(CROSS)o): $(MAKEFILE_LIST) -$(OUT)/$(1:.c=.$(CROSS)o): $(OUT)/mes -$(OUT)/$(1:.c=.$(CROSS)o): scripts/mes -$(OUT)/$(1:.c=.$(CROSS)o): $(INSTALL_MES_FILES) -$(OUT)/$(1:.c=.$(CROSS)o): $(1) - @echo " $$(cc) $$(notdir $(1)) -> $$(notdir $$@)" - @mkdir -p $$(dir $$@) - $$(QUIET)$$(COMPILE.c) $$(OUTPUT_OPTION) $(1) -endef - -define mescc.mes-c-preprocess -$(OUT)/$(1:.c=.$(CROSS)E): CROSS:=$(CROSS) -$(OUT)/$(1:.c=.$(CROSS)E): cc:=MESCC.mes -$(OUT)/$(1:.c=.$(CROSS)E): CC:=$(MESCC.mes) -$(OUT)/$(1:.c=.$(CROSS)E): CPPFLAGS:=$(2:%=-D %) $(3:%=-I %) -$(OUT)/$(1:.c=.$(CROSS)E): OUT:=$(OUT) -$(OUT)/$(1:.c=.$(CROSS)E): PREPROCESS.c:=$(MESCC.mes) -E $(CPPFLAGS) -$(OUT)/$(1:.c=.$(CROSS)E): $(MAKEFILE_LIST) -$(OUT)/$(1:.c=.$(CROSS)E): $(OUT)/mes -$(OUT)/$(1:.c=.$(CROSS)E): scripts/mes -$(OUT)/$(1:.c=.$(CROSS)E): $(INSTALL_MES_FILES) -$(OUT)/$(1:.c=.$(CROSS)E): $(1) - @echo " $$(cc) $$(notdir $(1)) -> $$(notdir $$@)" - @mkdir -p $$(dir $$@) - $$(QUIET)$$(PREPROCESS.c) $$(CPPFLAGS) $$(OUTPUT_OPTION) $(1) -endef - -define mescc.mes-c-compile-E -$(1:.$(CROSS)E=.$(CROSS)o): CROSS:=$(CROSS) -$(1:.$(CROSS)E=.$(CROSS)o): cc:=MESCC.mes -$(1:.$(CROSS)E=.$(CROSS)o): CC:=$(MESCC.mes) -$(1:.$(CROSS)E=.$(CROSS)o): CPPFLAGS:=$(2:%=-D %) $(3:%=-I %) -$(1:.$(CROSS)E=.$(CROSS)o): COMPILE.c:=$(MESCC.mes) -c $(CPPFLAGS) -$(1:.$(CROSS)E=.$(CROSS)o): OUT:=$(OUT) -$(1:.$(CROSS)E=.$(CROSS)o): $(MAKEFILE_LIST) -$(1:.$(CROSS)E=.$(CROSS)o): $(OUT)/mes -$(1:.$(CROSS)E=.$(CROSS)o): scripts/mes -$(1:.$(CROSS)E=.$(CROSS)o): $(INSTALL_MES_FILES) -$(1:.$(CROSS)E=.$(CROSS)o): $(1) - @echo " $$(cc) $$(notdir $(1)) -> $$(notdir $$@)" - @mkdir -p $$(dir $$@) - $$(QUIET)$$(COMPILE.c) $$(CPPFLAGS) $$(OUTPUT_OPTION) $(1) -endef - -ifeq ($(MLIBC.mes),) -MLIBC.mes:=DONE -else -C_FILES:=$(filter-out mlibc/libc-mes.c,$(C_FILES)) -endif - -ifneq ($(MESC_DIRECT),) -$(foreach c-file,$(strip $(filter %.c,$(C_FILES))),$(eval $(call mescc.mes-c-compile,$(c-file),$(DEFINES),$(INCLUDES)))) -else -$(foreach c-file,$(strip $(filter %.c,$(C_FILES))),$(eval $(call mescc.mes-c-preprocess,$(c-file),$(DEFINES),$(INCLUDES)))) -$(foreach c-file,$(strip $(filter %.c,$(C_FILES))),$(eval $(call mescc.mes-c-compile-E,$(c-file:%.c=$(OUT)/%.$(CROSS)E),$(DEFINES),$(INCLUDES)))) -endif - -endif -include make/reset.make diff --git a/make/reset.make b/make/reset.make deleted file mode 100644 index 34cc41cd..00000000 --- a/make/reset.make +++ /dev/null @@ -1,16 +0,0 @@ -C_FILES:= -C_FLAGS:= -CPP_FLAGS:= -CROSS:= -DEFINES:= -EXPECT:= -EXT:= -GO_FILES:= -INCLUDES:= -LD_FLAGS:= -MES_FILES:= -O_FILES:= -SCM_FILES:= -TARGET:= -TEST:= - diff --git a/module/module.make b/module/module.make deleted file mode 100644 index 71665e2f..00000000 --- a/module/module.make +++ /dev/null @@ -1,21 +0,0 @@ -MES_FILES:=$(shell $(GIT_LS_FILES) module/*.mes) -SCM_FILES:=$(shell $(GIT_LS_FILES) module/language/ module/nyacc/ module/mes/) -SCM_FILES:=$(filter %.scm, $(SCM_FILES)) -SCM_FILES:=$(filter-out %match.scm, $(SCM_FILES)) -SCM_FILES:=$(filter-out %mes/lalr.scm, $(SCM_FILES)) -SCM_FILES:=$(filter-out %optargs.scm, $(SCM_FILES)) -SCM_FILES:=$(filter-out %pretty-print.scm, $(SCM_FILES)) -SCM_FILES:=$(filter-out %syntax.scm, $(SCM_FILES)) -SCM_FILES:=$(filter-out module/mes/peg/%.scm, $(SCM_FILES)) -include make/guile.make - -# FIXME: https://gitlab.com/janneke/guile/commits/1.8 -# Include patches here -GUILE_GIT:=../guile-1.8 -GUILE_COMMIT:=ba8a7097699f69b206c9f28c546fa6da88b8656f -psyntax-import: module/mes/psyntax.ss module/mes/psyntax.pp - -module/mes/psyntax.%: $(GUILE_GIT)/ice-9/psyntax.% - git --git-dir=$(GUILE_GIT)/.git --work-tree=$(GUILE_GIT) show $(GUILE_COMMIT):ice-9/$(@F > $@ - -MAINTAINER-CLEAN+=module/mes/psyntax.pp diff --git a/scaffold/scaffold.make b/scaffold/scaffold.make deleted file mode 100644 index fd585b20..00000000 --- a/scaffold/scaffold.make +++ /dev/null @@ -1,159 +0,0 @@ -TARGET:=m -C_FILES:=$(DIR)/m.c -DEFINES:=POSIX=1 -INCLUDES:=mlibc -include make/bin.make - -TARGET:=m -EXPECT:=255 -include make/check-cc.make - -TARGET:=hello -C_FILES:=$(DIR)/hello.c -DEFINES:=POSIX=1 -INCLUDES:=mlibc -include make/bin.make - -TARGET:=hello -EXPECT:=42 -include make/check-cc.make - -TARGET:=t -C_FILES:=$(DIR)/t.c -DEFINES:=POSIX=1 -INCLUDES:=mlibc -include make/bin.make - -TARGET:=t -include make/check-cc.make - -TARGET:=t-tcc -C_FILES:=$(DIR)/t-tcc.c -DEFINES:=POSIX=1 -INCLUDES:=mlibc -include make/bin.make - -TARGET:=t-tcc -include make/check-cc.make - -TARGET:=m.mlibc -C_FILES:=$(DIR)/m.c -include make/bin-mlibc.make - -TARGET:=m.mlibc -EXPECT:=255 -include make/check-mlibc.make - -TARGET:=hello.mlibc -C_FILES:=$(DIR)/hello.c -include make/bin-mlibc.make - -TARGET:=hello.mlibc -EXPECT:=42 -include make/check-mlibc.make - -TARGET:=micro-mes.mlibc -C_FILES:=$(DIR)/micro-mes.c -include make/bin-mlibc.make - -TEST:=micro-mes.mlibc-check -$(TEST): $(OUT)/micro-mes.mlibc - $< 2 3; r=$$?; [ $$r = 3 ] -include make/check-mlibc.make - -TARGET:=t.mlibc -C_FILES:=$(DIR)/t.c -include make/bin-mlibc.make - -TARGET:=t.mlibc -include make/check-mlibc.make - -TARGET:=t-tcc.mlibc -C_FILES:=$(DIR)/t-tcc.c -include make/bin-mlibc.make - -TARGET:=t-tcc.mlibc -include make/check-mlibc.make - -CROSS:=$(CC32:%gcc=%) -#$(OUT)/$(DIR)/mini-mes.$(CROSS)o: $(SNARF.MES) -$(OUT)/mini-mes: $(SNARF.MES) - -TARGET:=mini-mes.mlibc -# guile/mescc.scm - -TARGET:=m.guile -C_FILES:=$(DIR)/m.c -include make/mescc-guile.make - -TARGET:=m.guile -EXPECT:=255 -include make/check.make - -TARGET:=hello.guile -C_FILES:=$(DIR)/hello.c -include make/mescc-guile.make - -TARGET:=hello.guile -EXPECT:=42 -include make/check.make - -TARGET:=micro-mes.guile -C_FILES:=$(DIR)/micro-mes.c -include make/mescc-guile.make - -TEST:=micro-mes.guile-check -$(TEST): $(OUT)/micro-mes.guile - $< 2 3; r=$$?; [ $$r = 3 ] -include make/check.make - -TARGET:=t.guile -C_FILES:=$(DIR)/t.c -include make/mescc-guile.make - -TARGET:=t.guile -include make/check.make - -TARGET:=t-tcc.guile -C_FILES:=$(DIR)/t-tcc.c -include make/mescc-guile.make - -TARGET:=t-tcc.guile -include make/check.make - -# scripts/mescc.mes -ifneq ($(MES),) -TARGET:=m.mes -C_FILES:=$(DIR)/m.c -include make/mescc-mes.make - -TARGET:=m.mes -EXPECT:=255 -include make/check.make - -ifneq ($(MES_SCAFFOLD),) -TARGET:=hello.mes -C_FILES:=$(DIR)/hello.c -include make/mescc-mes.make - -TARGET:=hello.mes -EXPECT:=42 -include make/check.make - -TARGET:=micro-mes.mes -C_FILES:=$(DIR)/micro-mes.c -include make/mescc-mes.make - -TEST:=micro-mes.mes-check -$(TEST): $(OUT)/micro-mes.mes - $< 2 3; r=$$?; [ $$r = 3 ] -include make/check.make -endif # !SCAFFOLD - -TARGET:=t.mes -C_FILES:=$(DIR)/t.c -include make/mescc-mes.make - -TARGET:=t.mes -include make/check.make -endif diff --git a/scripts/scripts.make b/scripts/scripts.make deleted file mode 100644 index dde626ea..00000000 --- a/scripts/scripts.make +++ /dev/null @@ -1,6 +0,0 @@ -ifneq ($(CC),) -CLEAN+=$(DIR)/mes - -$(DIR)/mes: $(OUT)/mes - ln -sf ../$< $@ -endif diff --git a/src/src.make b/src/src.make deleted file mode 100644 index daf9f6d6..00000000 --- a/src/src.make +++ /dev/null @@ -1,70 +0,0 @@ -MODULES:=\ - src/gc.c\ - src/lib.c\ - src/math.c\ - src/mes.c\ - src/posix.c\ - src/reader.c\ - src/vector.c -# - -$(OUT)/%.h $(OUT)/%.i $(OUT)/%.environment.i $(OUT)/%.symbols.i: DIR:=$(DIR) -$(OUT)/%.h $(OUT)/%.i $(OUT)/%.environment.i $(OUT)/%.symbols.i: %.c build-aux/mes-snarf.scm - @echo " SNARF $(notdir $<) -> $(notdir $@)" - @mkdir -p $(dir $@) - $(QUIET)OUT=$(dir $@) build-aux/mes-snarf.scm $< - -SNARF.GCC:=$(MODULES:%.c=$(OUT)/%.h) $(MODULES:%.c=$(OUT)/%.i) $(MODULES:%.c=$(OUT)/%.environment.i) -SNARF.GCC+=$(OUT)/$(DIR)/mes.symbols.i -CLEAN+=$(SNARF.GCC) -snarf-gcc: $(SNARF.GCC) - -$(OUT)/$(DIR)/mes.o: $(SNARF.GCC) - -DEFINES:=FIXED_PRIMITIVES=1 MES_FULL=1 POSIX=1 VERSION='"$(VERSION)"' MODULEDIR='"$(MODULEDIR)"' PREFIX='"$(PREFIX)"' -INCLUDES:=mlibc $(OUT)/$(DIR) -TARGET:=mes -C_FILES:=$(DIR)/mes.c -include make/bin.make - -$(OUT)/%.mes.h $(OUT)/%.mes.i $(OUT)/%.mes.environment.i $(OUT)/%.mes.symbols.i: DIR:=$(DIR) -$(OUT)/%.mes.h $(OUT)/%.mes.i $(OUT)/%.mes.environment.i $(OUT)/%.mes.symbols.i: %.c build-aux/mes-snarf.scm - @echo " SNARF $(notdir $<) -> $(notdir $@)" - @mkdir -p $(dir $@) - $(QUIET)OUT=$(dir $@) build-aux/mes-snarf.scm --mes $< - -SNARF.MES:=$(MODULES:%.c=$(OUT)/%.mes.h) $(MODULES:%.c=$(OUT)/%.mes.i) $(MODULES:%.c=$(OUT)/%.mes.environment.i) -SNARF.MES+=$(OUT)/$(DIR)/mes.mes.symbols.i -CLEAN+=$(SNARF.MES) -snarf-mes: $(SNARF.MES) - -include make/reset.make - -CROSS:=$(CC32:%gcc=%) -$(OUT)/$(CROSS)%: $(OUT)/%.mlibc - @ln -sf $( $(notdir $@)" - $(QUIET)$(HEX2) $(HEX2_FLAGS) $(^:%=-f %) > $@ || rm -f $@ - chmod +x $@ -TARGET:=0exit-42 -EXPECT:=42 -include make/check.make - -CLEAN+=$(OUT)/exit-42 -$(OUT)/exit-42: stage0/elf32-header.hex2 stage0/elf32-body-exit-42.hex2 stage0/elf32-footer-single-main.hex2 | $(OUT) - @echo " HEX2 $(notdir $^) -> $(notdir $@)" - $(QUIET)$(HEX2) $(HEX2_FLAGS) $(^:%=-f %) > $@ || rm -f $@ - chmod +x $@ -TARGET:=exit-42 -EXPECT:=42 -include make/check.make - -CLEAN+=$(OUT)/exit-42.guile -$(OUT)/exit-42.guile: stage0/elf32-header.hex2 $(OUT)/mlibc/mini-libc-mes.hex2 $(OUT)/stage0/exit-42.hex2 stage0/elf32-footer-single-main.hex2 | $(OUT) - @echo " HEX2 $(notdir $^) -> $(notdir $@)" - $(QUIET)$(HEX2) $(HEX2_FLAGS) $(^:%=-f %) > $@ || rm -f $@ - chmod +x $@ - -MESCC.scm:=guile/mescc.scm -$(OUT)/%.hex2: %.c | all-go - @echo " MESCC.scm $(notdir $<) -> $(notdir $@)" - @mkdir -p $(dir $@) - $(QUIET) $(MESCC.scm) -c -o $@ $^ - -TARGET:=exit-42.guile -EXPECT:=42 -include make/check.make - -endif diff --git a/tests/tests.make b/tests/tests.make deleted file mode 100644 index 3b095c10..00000000 --- a/tests/tests.make +++ /dev/null @@ -1,38 +0,0 @@ -TESTS:=\ - tests/read.test\ - tests/base.test\ - tests/closure.test\ - tests/quasiquote.test\ - tests/let.test\ - tests/scm.test\ - tests/display.test\ - tests/cwv.test\ - tests/math.test\ - tests/vector.test\ - tests/srfi-1.test\ - tests/srfi-13.test\ - tests/srfi-14.test\ - tests/optargs.test\ - tests/fluids.test\ - tests/catch.test\ - tests/psyntax.test\ - tests/pmatch.test\ - tests/let-syntax.test\ - tests/guile.test\ - tests/record.test\ - tests/match.test\ - tests/peg.test\ -# - -MES-0:=guile/mes-0.scm -TEST:=guile-check -$(TEST): - set -e; for i in $(TESTS); do\ - $(GUILE) -s <(cat $(MES-0) module/mes/test.mes $$i);\ - done -include make/check.make - -TEST:=mes-check -$(TEST): $(OUT)/mes - set -e; for i in $(TESTS); do MES_MAX_ARENA=20000000 ./$$i; done -include make/check.make diff --git a/tinycc/tinycc.make b/tinycc/tinycc.make deleted file mode 100644 index ead98845..00000000 --- a/tinycc/tinycc.make +++ /dev/null @@ -1,104 +0,0 @@ -TINYCC_ROOT:=../tinycc -TINYCC_TEST2:=$(TINYCC_ROOT)/tests/tests2 - -TINYCC_TESTS:=\ - 00_assignment\ - 01_comment\ - 02_printf\ - 03_struct\ - 04_for\ - 05_array\ - 06_case\ - 07_function\ - 08_while\ - 09_do_while\ - 10_pointer\ - 11_precedence\ - 12_hashdefine\ - 13_integer_literals\ - 14_if\ - 15_recursion\ - 16_nesting\ - 17_enum\ - 18_include\ - 19_pointer_arithmetic\ - 20_pointer_comparison\ - 21_char_array\ - 25_quicksort\ - 29_array_address\ - 33_ternary_op\ - 35_sizeof\ - 41_hashif\ - 43_void_param\ - 44_scoped_declarations\ - 47_switch_return\ - 48_nested_break\ - 54_goto\ -# - -TINYCC_NYACC:=\ - 26_character_constants\ -# - -TINYCC_FLOAT:=\ - 22_floating_point\ - 23_type_coercion\ - 24_math_library\ - 27_sizeof\ -# - -# Does not compile/run with GCC -TINYCC_GCC:=\ - 30_hanoi\ - 34_array_assignment\ -# - -TINYCC_REST:=\ - 28_strings\ - 31_args\ - 32_led\ - 36_array_initialisers\ - 37_sprintf\ - 38_multiple_array_index\ - 39_typedef\ - 40_stdio\ - 42_function_pointer\ - 45_empty_for\ - 46_grep\ - 49_bracket_evaluation\ - 50_logical_second_arg\ - 51_static\ - 52_unnamed_enum\ - 55_lshift_type\ -# - -define tinycc-test -ifneq ($(CC32),) -EXT:=mlibc -TARGET:=$(1).mlibc -C_FILES:=$$(TINYCC_TEST2)/$(1).c -INCLUDES:=$$(TINYCC_TEST2) -include make/bin-mlibc.make - -EXT:=mlibc -TARGET:=$(1).mlibc -include make/check-tinycc.make -endif - -EXT:=guile -TARGET:=$(1).guile -C_FILES:=$$(TINYCC_TEST2)/$(1).c -INCLUDES:=$$(TINYCC_TEST2) -include make/mescc-guile.make - -EXT:=guile -TARGET:=$(1).guile -include make/check-tinycc.make -endef - -ifeq ($(wildcard $(TINYCC_TEST2)/00_assignment.c),$(TINYCC_TEST2)/00_assignment.c) -$(foreach t,$(TINYCC_TESTS),$(eval $(call tinycc-test,$(t)))) -else -tinycc-check: - @echo skipping tinycc tests: $(TINYCC_TEST2)/00_assignment.c not available -endif