diff options
Diffstat (limited to 'kalzium/src/solver/Makefile')
-rw-r--r-- | kalzium/src/solver/Makefile | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/kalzium/src/solver/Makefile b/kalzium/src/solver/Makefile new file mode 100644 index 00000000..4b96fdb7 --- /dev/null +++ b/kalzium/src/solver/Makefile @@ -0,0 +1,92 @@ + +OCAMLC = ocamlc -g +OCAMLMLI = ocamlc +OCAMLOPT = ocamlopt +OCAMLDEP = ocamldep +INCLUDES = -I +facile +OPTOPT = +OCAMLLIB := `ocamlc -where` +FACILELIB = $(OCAMLLIB)/facile + + +# link to these libraries +LIBADD_CMX = $(OCAMLLIB)/facile/facile.cmxa #$(OCAMLLIB)/str.cmxa +LIBADD_CMO = $(OCAMLLIB)/facile/facile.cma #$(OCAMLLIB)/str.cma + +# our sources +SOURCES_CHEM = chemset.ml parser.ml lexer.ml datastruct.ml chem.ml calc.ml +SOURCES_WRAP = modwrap.c + +# the targets +CHEM_CMO = $(SOURCES_CHEM:.ml=.cmo) +CHEM_CMX = $(SOURCES_CHEM:.ml=.cmx) +CHEM_O = $(SOURCES_WRAP:.c=.o) + +# default target : the object files for eqchem +all : solver.o + +# shows how to build a program that embeds the solver +# in compiled ocaml, bytecode ocaml and compiled program using compiled caml code +test: atestprog.opt btestprog.out testcprog + +atestprog.opt: $(CHEM_CMX) main.cmx + $(OCAMLOPT) -o $@ $(LIBADD_CMX) $(CHEM_CMX) main.cmx + +btestprog.out: $(CHEM_CMO) main.cmo + $(OCAMLMLI) -o $@ $(LIBADD_CMO) $(CHEM_CMO) main.cmo + +solver.o: $(CHEM_CMX) $(CHEM_O) + $(OCAMLOPT) -output-obj -o solver.o $(LIBADD_CMX) $(CHEM_CMX) + cp -f solver.o modwrap.o ../ + +testcprog: $(CHEM_CMX) $(CHEM_O) + $(OCAMLOPT) -output-obj -o solver.o $(LIBADD_CMX) $(CHEM_CMX) modwrap.o + gcc -c -o main.o main.c -L $(OCAMLLIB) + gcc -o $@ main.o solver.o -L $(OCAMLLIB) \ + -L $(OCAMLLIB)/facile -lasmrun -lstr -lnums -lm -ldl modwrap.o + +.SUFFIXES: +.SUFFIXES: .ml .mli .mly .mll .cmi .cmo .cmx .p.cmx .c + +.ml.cmo : + $(OCAMLC) $(INCLUDES) $(INCLUDES) -c $< + +.mli.cmi : + $(OCAMLMLI) $(INCLUDES) -c $< + +.ml.cmx : + $(OCAMLOPT) $(OPTOPT) $(INCLUDES) -c $< + +.mly.ml : + ocamlyacc $< + +.mll.ml : + ocamllex $< + +%.o : %.c + $(OCAMLOPT) $(OPTOPT) $(INCLUDES) -c $< + +clean: + \rm -f *.cm[iox] *.o *~ .depend *testprog.* testcprog + +cleanall : clean + \rm -f *.cmxa *.a *.cma + +distclean : clean + +interfaces: + ocamlc -i datastruct.ml > datastruct.mli + ocamlc -I +facile -i chem.ml > chem.mli + ocamlc -I +facile -i calc.ml > calc.mli + +maintainer-clean : clean + +uninstall : clean + +install : + echo "done" + +.depend: parser.ml lexer.ml + $(OCAMLDEP) $(INCLUDES) *.mli *.ml > $@ + +include .depend |