| 1 |
DEBUG = -g
|
| 2 |
PACKAGES = pxp-engine,pxp-lex-iso88591,camlp4,num
|
| 3 |
OCAMLC = ocamlfind ocamlcp -package $(PACKAGES)
|
| 4 |
OCAMLOPT = ocamlfind ocamlopt -package $(PACKAGES)
|
| 5 |
|
| 6 |
PARSER = parser/lexer.cmo parser/location.cmo parser/ast.cmo parser/parser.cmo
|
| 7 |
|
| 8 |
TYPING = typing/typed.cmo typing/typer.cmo
|
| 9 |
|
| 10 |
TYPES = types/recursive.cmo types/sortedList.cmo \
|
| 11 |
types/sortedMap.cmo types/boolean.cmo \
|
| 12 |
types/intervals.cmo types/chars.cmo types/atoms.cmo \
|
| 13 |
types/types.cmo \
|
| 14 |
types/patterns.cmo \
|
| 15 |
types/sequence.cmo \
|
| 16 |
types/builtin.cmo
|
| 17 |
|
| 18 |
RUNTIME = runtime/value.cmo
|
| 19 |
|
| 20 |
DRIVER = driver/cduce.cmo
|
| 21 |
|
| 22 |
DIRS = parser typing types runtime driver
|
| 23 |
|
| 24 |
OBJECTS = $(TYPES) $(PARSER) $(TYPING) $(RUNTIME)
|
| 25 |
XOBJECTS = $(OBJECTS:.cmo=.cmx)
|
| 26 |
XDRIVER = $(DRIVER:.cmo=.cmx)
|
| 27 |
|
| 28 |
DEPEND = parser/*.ml parser/*.mli typing/*.ml typing/*.mli types/*.ml types/*.mli runtime/*.mli runtime/*.ml driver/*.mli driver/*.ml
|
| 29 |
INCLUDES = -I +camlp4 -I parser -I types -I runtime -I typing
|
| 30 |
|
| 31 |
#SYNTAX_PARSER = -pp 'camlp4o pa_extend.cmo'
|
| 32 |
PREPRO = camlp4o pa_extend.cmo pr_o.cmo
|
| 33 |
|
| 34 |
all.cma: $(OBJECTS)
|
| 35 |
$(OCAMLC) $(DEBUG) -o all.cma -linkpkg gramlib.cma -a $(OBJECTS)
|
| 36 |
|
| 37 |
all.cmxa: $(XOBJECTS)
|
| 38 |
$(OCAMLOPT) -a -o all.cmxa $(XOBJECTS)
|
| 39 |
|
| 40 |
|
| 41 |
cduce: $(OBJECTS) $(DRIVER)
|
| 42 |
$(OCAMLC) $(DEBUG) -linkpkg -o cduce gramlib.cma $(OBJECTS) $(DRIVER)
|
| 43 |
|
| 44 |
cduce.opt: all.cmxa $(XDRIVER)
|
| 45 |
$(OCAMLOPT) -linkpkg -o cduce.opt gramlib.cmxa $(XOBJECTS) $(XDRIVER)
|
| 46 |
|
| 47 |
compute_depend:
|
| 48 |
@echo "Computing dependencies ..."
|
| 49 |
ocamldep $(INCLUDES) $(SYNTAX_PARSER) $(DEPEND) > depend
|
| 50 |
|
| 51 |
run_top: all.cma
|
| 52 |
ledit ocaml $(INCLUDES) `ocamlfind use pxp` all.cma
|
| 53 |
|
| 54 |
clean:
|
| 55 |
for i in $(DIRS); do \
|
| 56 |
(cd $$i; rm -f *.cmi *.cmo *.cma *.cmx *.o *~); \
|
| 57 |
done
|
| 58 |
rm -f *.cmi *.cmo *.cma *.cmx *.a *.cmxa *.o *~
|
| 59 |
rm -f cduce cduce.opt
|
| 60 |
|
| 61 |
.SUFFIXES: .ml .mli .cmo .cmi .cmx
|
| 62 |
|
| 63 |
.ml.cmo:
|
| 64 |
$(PREPRO) $< > $@pp
|
| 65 |
$(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) -impl $<pp
|
| 66 |
.ml.cmx:
|
| 67 |
$(OCAMLOPT) -c $(SYNTAX_PARSER) $(INCLUDES) $<
|
| 68 |
|
| 69 |
.mli.cmi:
|
| 70 |
$(OCAMLC) $(DEBUG) -c $(INCLUDES) $<
|
| 71 |
|
| 72 |
# FORTPATH = /users/formel8/frisch/solaris/fort/fort
|
| 73 |
FORTPATH = /home/frisch/fort
|
| 74 |
FORTBIN = $(FORTPATH)/fort
|
| 75 |
FORTLIB = $(FORTPATH)
|
| 76 |
|
| 77 |
test: all.cma
|
| 78 |
$(FORTBIN) -I $(FORTLIB) all.cma test_fort.ml
|
| 79 |
|
| 80 |
include depend
|