MAKEFLAGS := --no-builtin-rules
-EXE_TYPE := byte # byte | native
-EXECUTABLES := tiger
-OCAMLBUILD_FLAGS := -I src/exe -I src/lib/tiger
-OCAMLBUILD := ocamlbuild $(OCAMLBUILD_FLAGS)
+EXE_TYPE := byte # byte | native
+EXECUTABLES := tigerc tiger_tests
+OCAMLBUILD_FLAGS_DIRS := -I src/exe -I src/lib/tiger
+OCAMLBUILD_FLAGS_COMP := -cflags '-w A'
+OCAMLBUILD_FLAGS := $(OCAMLBUILD_FLAGS_COMP) $(OCAMLBUILD_FLAGS_DIRS)
+OCAMLBUILD := ocamlbuild $(OCAMLBUILD_FLAGS)
.PHONY: \
all \
clean \
test
-all:
- $(MAKE) clean
- $(MAKE) build
- $(MAKE) test
+all: clean
+ @$(MAKE) -s test
build:
- $(OCAMLBUILD) $(addsuffix _main.$(EXE_TYPE),$(EXECUTABLES))
- mkdir -p bin/exe
- $(foreach exe,$(EXECUTABLES),cp _build/src/exe/$(exe)_main.$(EXE_TYPE) bin/exe/$(exe))
- rm $(addsuffix _main.$(EXE_TYPE),$(EXECUTABLES))
+ @$(OCAMLBUILD) $(addsuffix .$(EXE_TYPE),$(EXECUTABLES))
+ @mkdir -p bin/exe
+ $(foreach exe,$(EXECUTABLES),cp _build/src/exe/$(exe).$(EXE_TYPE) bin/exe/$(exe); )
+ @rm $(addsuffix .$(EXE_TYPE),$(EXECUTABLES))
clean:
- $(OCAMLBUILD) -clean
- rm -rf ./bin
+ @$(OCAMLBUILD) -clean
+ @rm -rf ./bin
-test: bin/exe/tiger
- ./$<
+test: build
+ @./bin/exe/tiger_tests