30 lines
700 B
Makefile
30 lines
700 B
Makefile
BUILD:=_build
|
|
OCAML_ROOT:=$(shell ocamlopt -where)
|
|
OCAMLOPT_FLAGS:=-output-complete-obj
|
|
|
|
.PHONY: ocaml
|
|
ocaml:
|
|
dune build --verbose ocaml/hello.exe.o
|
|
ar -rs $(BUILD)/libfoo.a _build/default/ocaml/hello.exe.o
|
|
|
|
ocaml-manual:
|
|
mkdir -p $(BUILD)
|
|
ocamlopt $(OCAMLOPT_FLAGS) ocaml/hello.ml -o $(BUILD)/hello_obj.o
|
|
ocamlopt $(OCAMLOPT_FLAGS) ocaml/bye.ml -o $(BUILD)/bye_obj.o
|
|
ar -rs $(BUILD)/libfoo.a $(BUILD)/hello_obj.o $(BUILD)/bye_obj.o
|
|
|
|
.PHONY: c
|
|
c:
|
|
gcc -c c/main.c -I$(OCAML_ROOT) -o $(BUILD)/main.o
|
|
gcc -o $(BUILD)/test.exe $(BUILD)/main.o -L$(OCAML_ROOT) -L$(BUILD) -lfoo -lm -ldl -lasmrun
|
|
|
|
run:
|
|
$(BUILD)/test.exe
|
|
|
|
clean:
|
|
dune clean
|
|
rm -rf $(BUILD)
|
|
|
|
bootstrap:
|
|
opam install . --deps-only
|