summaryrefslogtreecommitdiffstats
path: root/kalzium/src/solver/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'kalzium/src/solver/Makefile')
-rw-r--r--kalzium/src/solver/Makefile92
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