| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- # Config for OCamlMakefile
- BIN_DIR := bin
- RESULT := $(BIN_DIR)/civcc
- GLOBALS := types globals stringify util
- PHASES := load parse print context desug typecheck dimreduce boolop constprop \
- unroll index assemble peephole output
- SOURCES := $(addsuffix .mli,$(GLOBALS)) $(addsuffix .ml,$(GLOBALS)) \
- lexer.mll parser.mly main.mli \
- $(patsubst %,phases/%.mli,$(PHASES)) $(patsubst %,phases/%.ml,$(PHASES)) \
- main.ml
- PRE_TARGETS := types.ml $(addsuffix .cmi,$(GLOBALS))
- LIBS := str unix
- # Other config
- CIVAS := $(BIN_DIR)/civas
- CIVVM := $(BIN_DIR)/civvm
- DIST_TGT := civicaml.tar.gz
- DIST_FILES := $(BIN_DIR) $(SOURCES) Makefile OCamlMakefile README.md test \
- .gitignore
- TESTSUITE_TGT := testsuite.tar.gz
- TOOLCHAIN_TGT := toolchain.tar.gz
- # Set debugging flag to enable exception backtraces for OCAMLRUNPARAM=b
- OCAMLFLAGS := -g
- OCAMLYACC := menhir
- YFLAGS := --infer --explain
- .PHONY: all check dist testsuite myclean cleaner toolchain
- all: native-code
- # The Types module needs an implementation file to stop ocamlc from complaining
- types.ml: types.mli
- cp $< $@
- check: all $(CIVAS) $(CIVVM)
- @cd test; \
- CIVAS=../$(CIVAS) \
- CIVVM=../$(CIVVM) \
- CIVCC=../$(RESULT) \
- CFLAGS="-v 1" \
- RUN_FUNCTIONAL=1 \
- bash run.bash basic preprocess nested_funs arrays
- dist: $(DIST_TGT)
- $(DIST_TGT): $(DIST_FILES)
- tar -czf $@ $^ --exclude=types.ml
- testsuite: $(TESTSUITE_TGT)
- $(TESTSUITE_TGT): TESTSUITE_README public_tests.txt
- for f in `cat public_tests.txt`; do \
- mkdir -p _tmp/test/`dirname $$f`; \
- cp test/$$f _tmp/test/$$f; \
- done
- cp $< _tmp
- cd _tmp && tar -czf ../$@ *
- rm -rf _tmp
- clean:: myclean
- myclean:
- rm -f a.out $(DIST_TGT) $(TESTSUITE_TGT) $(TOOLCHAIN_TGT)
- cleaner: clean
- rm -rf doc/$(RESULT) $(CIVAS) $(CIVVM)
- toolchain: $(TOOLCHAIN_TGT)
- $(TOOLCHAIN_TGT): all $(CIVAS) $(CIVVM)
- tar -czf $@ $(BIN_DIR)
- $(CIVAS): civic/as/civas
- cp $< $@
- $(CIVVM): civic/vm/civvm
- cp $< $@
- civic/as/civas civic/vm/civvm:
- make -C $(@D)
- doc/assembler.pdf: civic/docs/manual.pdf
- make -C $(<D)
- cp $< $@
- include OCamlMakefile
|