11# Settings
22# --------
33
4- deps_dir := deps
5- wasm_submodule := $(deps_dir ) /wasm-semantics
6- eei_submodule := $(deps_dir ) /eei-semantics
7- k_submodule := $(wasm_submodule ) /deps/k
4+ deps_dir := deps
5+ KWASM_SUBMODULE := $(deps_dir ) /wasm-semantics
6+ eei_submodule := $(deps_dir ) /eei-semantics
7+ k_submodule := $(KWASM_SUBMODULE ) /deps/k
88
99ifneq (,$(wildcard $(k_submodule ) /k-distribution/target/release/k/bin/* ) )
1010 K_RELEASE ?= $(abspath $(k_submodule ) /k-distribution/target/release/k)
@@ -15,17 +15,17 @@ K_BIN := $(K_RELEASE)/bin
1515K_LIB := $(K_RELEASE ) /lib/kframework
1616export K_RELEASE
1717
18- PATH: =$(K_BIN ) :$(abspath $(wasm_submodule ) ) :$(PATH )
18+ PATH: =$(K_BIN ) :$(abspath $(KWASM_SUBMODULE ) ) :$(PATH )
1919export PATH
2020
2121build_dir := .build
22- defn_dir := $(build_dir ) /defn
22+ DEFN_DIR := $(build_dir ) /defn
2323kompiled_dir_name := ewasm-test
2424
25- wasm_make := make --directory $(wasm_submodule ) DEFN_DIR =../../$(defn_dir )
26- eei_make := make --directory $(eei_submodule ) DEFN_DIR=../../$(defn_dir )
25+ KWASM_MAKE := make --directory $(KWASM_SUBMODULE ) BUILD_DIR =../../$(BUILD_DIR ) RELEASE= $( RELEASE )
26+ eei_make := make --directory $(eei_submodule ) DEFN_DIR=../../$(DEFN_DIR )
2727
28- pandoc_tangle_submodule := $(wasm_submodule ) /deps/pandoc-tangle
28+ pandoc_tangle_submodule := $(KWASM_SUBMODULE ) /deps/pandoc-tangle
2929tangler := $(pandoc_tangle_submodule ) /tangle.lua
3030LUA_PATH := $(pandoc_tangle_submodule ) /?.lua;;
3131export LUA_PATH
@@ -34,104 +34,80 @@ export LUA_PATH
3434 deps haskell-deps \
3535 defn defn-llvm defn-haskell \
3636 definition-deps wasm-definitions eei-definitions \
37- build build-llvm build-haskell \
37+ build \
3838 test test-execution test-simple test-prove \
3939 media presentations reports
4040
4141all : build
4242
4343clean :
4444 rm -rf $(build_dir )
45- rm -f $(wasm_submodule ) /make.timestamp
45+ rm -f $(KWASM_SUBMODULE ) /make.timestamp
4646 rm -f $(eei_submodule ) /make.timestamp
4747 git submodule update --init --recursive
48- $(MAKE ) clean -C $(wasm_submodule )
48+ $(MAKE ) clean -C $(KWASM_SUBMODULE )
4949 $(MAKE ) clean -C $(eei_submodule )
5050
5151# Build Dependencies (K Submodule)
5252# --------------------------------
5353
54- wasm_files =test.k wasm.k wasm-text.k data.k kwasm-lemmas.k
55- wasm_source_files: =$(patsubst % , $(wasm_submodule ) /% , $(patsubst % .k, % .md, $(wasm_files ) ) )
56- eei_files: =eei.k
57- eei_source_files: =$(patsubst % , $(eei_submodule ) /% , $(patsubst % .k, % .md, $(eei_files ) ) )
58- ewasm_files: =ewasm-test.k driver.k ewasm.k kewasm-lemmas.k
54+ wasm_files =test.md wasm.md wasm-text.md data.md kwasm-lemmas.md
55+ wasm_source_files: =$(patsubst % , $(KWASM_SUBMODULE ) /% , $(wasm_files ) )
56+ eei_files: =eei.md
57+ eei_source_files: =$(patsubst % , $(eei_submodule ) /% , $(eei_files ) )
58+ ewasm_files: =ewasm-test.md driver.md ewasm.md kewasm-lemmas.md
59+ ewasm_source_files: =$(ewasm_files )
5960all_k_files: =$(ewasm_files ) $(wasm_files ) $(eei_files )
6061
61- deps : $(wasm_submodule ) /make.timestamp $(eei_submodule ) /make.timestamp definition-deps
62+ llvm_dir: =$(DEFN_DIR ) /llvm
63+ llvm_defn: =$(patsubst % , $(llvm_dir ) /% , $(all_k_files ) )
64+
65+ haskell_dir: =$(DEFN_DIR ) /haskell
66+ haskell_defn: =$(patsubst % , $(haskell_dir ) /% , $(all_k_files ) )
6267
63- definition-deps : wasm-definitions eei-definitions
68+ definition-deps : eei-definitions
69+ deps : $(KWASM_SUBMODULE ) /make.timestamp $(eei_submodule ) /make.timestamp definition-deps
6470
6571wasm-definitions :
66- $(wasm_make ) -B defn-llvm
67- $(wasm_make ) -B defn-haskell
72+ $(KWASM_MAKE ) -B defn-llvm
73+ $(KWASM_MAKE ) -B defn-haskell
6874
6975eei-definitions : $(eei_source_files )
7076 $(eei_make ) -B defn-llvm
7177 $(eei_make ) -B defn-haskell
7278
73- $(wasm_submodule ) /make.timestamp : $(wasm_source_files )
74- git submodule update --init --recursive
75- $(wasm_make ) deps
76- touch $(wasm_submodule ) /make.timestamp
79+ $(KWASM_SUBMODULE ) /make.timestamp : $(wasm_source_files )
80+ $(KWASM_MAKE ) deps
81+ touch $(KWASM_SUBMODULE ) /make.timestamp
7782
7883$(eei_submodule ) /make.timestamp : $(eei_source_files )
79- git submodule update --init --recursive
8084 touch $(eei_submodule ) /make.timestamp
8185
8286# Building Definition
8387# -------------------
8488
85- llvm_dir: =$(defn_dir ) /llvm
86- llvm_defn: =$(patsubst % , $(llvm_dir ) /% , $(all_k_files ) )
87- llvm_kompiled: =$(llvm_dir ) /ewasm-test-kompiled/interpreter
88-
89- haskell_dir: =$(defn_dir ) /haskell
90- haskell_defn: =$(patsubst % , $(haskell_dir ) /% , $(all_k_files ) )
91- haskell_kompiled: =$(haskell_dir ) /ewasm-test-kompiled/definition.kore
92-
93- main_module =EWASM-TEST
94- syntax_module =EWASM-TEST-SYNTAX
95-
96- # Tangle definition from *.md files
97-
98- defn : defn-llvm defn-haskell
99- defn-llvm : $(llvm_defn )
100- defn-haskell : $(haskell_defn )
101-
102- $(llvm_dir ) /% .k : % .md $(tangler )
103- @echo " == tangle: $@ "
104- mkdir -p $(dir $@ )
105- pandoc --from markdown --to $(tangler ) --metadata=code:.k $< > $@
106-
107- $(haskell_dir ) /% .k : % .md $(tangler )
108- @echo " == tangle: $@ "
109- mkdir -p $(dir $@ )
110- pandoc --from markdown --to $(tangler ) --metadata=code:.k $< > $@
89+ MAIN_MODULE =EWASM-TEST
90+ MAIN_SYNTAX_MODULE =EWASM-TEST-SYNTAX
91+ MAIN_DEFN_FILE =ewasm-test
11192
11293# Build definitions
11394
11495KOMPILE_OPTS :=
11596
11697build : build-llvm build-haskell
117- build-llvm : $(llvm_kompiled )
118- build-haskell : $(haskell_kompiled )
119-
120- $(llvm_kompiled ) : $(llvm_defn )
121- @echo " == kompile: $@ "
122- kompile --backend llvm \
123- --directory $(llvm_dir ) -I $(llvm_dir ) \
124- --main-module $(main_module ) \
125- --syntax-module $(syntax_module ) $< \
126- $(KOMPILE_OPTS )
127-
128- $(haskell_kompiled ) : $(haskell_defn )
129- @echo " == kompile: $@ "
130- kompile --backend haskell \
131- --directory $(haskell_dir ) -I $(haskell_dir ) \
132- --main-module $(main_module ) \
133- --syntax-module $(syntax_module ) $< \
134- $(KOMPILE_OPTS )
98+
99+ build-% :
100+ cp $(eei_source_files ) $(ewasm_source_files ) $(KWASM_SUBMODULE )
101+ $(KWASM_MAKE ) build-$* \
102+ DEFN_DIR=../../$(DEFN_DIR ) \
103+ llvm_main_module=$(MAIN_MODULE ) \
104+ llvm_syntax_module=$(MAIN_SYNTAX_MODULE ) \
105+ llvm_main_file=$(MAIN_DEFN_FILE ) \
106+ haskell_main_module=$(MAIN_MODULE ) \
107+ haskell_syntax_module=$(MAIN_SYNTAX_MODULE ) \
108+ haskell_main_file=$(MAIN_DEFN_FILE ) \
109+ EXTRA_SOURCE_FILES=" $( eei_files) $( ewasm_files) " \
110+ KOMPILE_OPTS=" $( KOMPILE_OPTS) "
135111
136112# Testing
137113# -------
0 commit comments