29 lines
		
	
	
	
		
			678 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			678 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
BUILD:=_build
 | 
						|
OCAML_ROOT:=$(shell ocamlopt -where)
 | 
						|
OCAMLOPT_FLAGS:=-output-complete-obj
 | 
						|
 | 
						|
.PHONY: ocaml
 | 
						|
ocaml:
 | 
						|
	dune build ocaml/hello.a
 | 
						|
	cp _build/default/ocaml/hello.a $(BUILD)/libfoo.a
 | 
						|
 | 
						|
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
 |