/[svn]/cduce/trunk/Makefile
ViewVC logotype

Diff of /cduce/trunk/Makefile

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 31 by abate, Tue Jul 10 16:59:30 2007 UTC revision 61 by abate, Tue Jul 10 17:02:11 2007 UTC
# Line 1  Line 1 
1  DEBUG = -g  # Source directories
2  OCAMLC = ocamlc  
3    DIRS = parser typing types runtime driver
4    
5    # Objects to build
6    
7  PARSER = parser/location.cmo parser/ast.cmo parser/parser.cmo  PARSER = parser/lexer.cmo parser/location.cmo parser/ast.cmo parser/parser.cmo
8    
9  TYPING = typing/typed.cmo typing/typer.cmo  TYPING = typing/typed.cmo typing/typer.cmo
10    
# Line 13  Line 16 
16           types/sequence.cmo \           types/sequence.cmo \
17           types/builtin.cmo           types/builtin.cmo
18    
19  DRIVER = driver/cduce.cmo  RUNTIME = runtime/value.cmo
20    
21  DIRS = parser typing types driver  DRIVER = driver/cduce.cmo
22    
23  OBJECTS = $(TYPES) $(PARSER) $(TYPING)  OBJECTS = $(TYPES) $(PARSER) $(TYPING) $(RUNTIME)
24  XOBJECTS = $(OBJECTS:.cmo=.cmx)  XOBJECTS = $(OBJECTS:.cmo=.cmx)
25  XDRIVER = $(DRIVER:.cmo=.cmx)  XDRIVER = $(DRIVER:.cmo=.cmx)
26    
 DEPEND = parser/*.ml parser/*.mli typing/*.ml typing/*.mli types/*.ml types/*.mli driver/*.mli driver/*.ml  
 INCLUDES = -I +camlp4 -I parser -I types -I typing  
27    
28  SYNTAX_PARSER = -pp 'camlp4o pa_extend.cmo'  
29    DEBUG = -g
30    PACKAGES = pxp-engine,pxp-lex-iso88591,camlp4,num
31    OCAMLCP = ocamlc
32    OCAMLC = ocamlfind $(OCAMLCP) -package $(PACKAGES)
33    OCAMLOPT = ocamlfind ocamlopt  -package $(PACKAGES)
34    
35    DEPEND = $(DIRS:=/*.ml) $(DIRS:=/*.mli)
36    INCLUDES = $(DIRS:%=-I %)
37    
38    SYNTAX = camlp4o pa_extend.cmo
39    SYNTAX_PARSER = -pp '$(SYNTAX)'
40    PREPRO = $(SYNTAX) pr_o.cmo
41    
42  all.cma: $(OBJECTS)  all.cma: $(OBJECTS)
43          $(OCAMLC) $(DEBUG) -o all.cma -I +camlp4 gramlib.cma nums.cma -a $(OBJECTS)          $(OCAMLC) $(DEBUG) -o $@ -linkpkg gramlib.cma -a $(OBJECTS)
44    
45  all.cmxa: $(XOBJECTS)  all.cmxa: $(XOBJECTS)
46          ocamlopt -a -o all.cmxa $(XOBJECTS)          $(OCAMLOPT) -a -o $@ $(XOBJECTS)
47    
48    
49  cduce: all.cma $(DRIVER)  cduce: $(OBJECTS) $(DRIVER)
50          $(OCAMLC) $(DEBUG) -o cduce all.cma $(DRIVER)          $(OCAMLC) $(DEBUG) -linkpkg -o $@ gramlib.cma $(OBJECTS) $(DRIVER)
51    
52  cduce.opt: all.cmxa $(XDRIVER)  cduce.opt: all.cmxa $(XDRIVER)
53          ocamlopt -o cduce.opt -I +camlp4 gramlib.cmxa nums.cmxa all.cmxa $(XDRIVER)          $(OCAMLOPT) -linkpkg -o $@ gramlib.cmxa $(XOBJECTS) $(XDRIVER)
54    
55  compute_depend:  compute_depend:
56          @echo "Computing dependencies ..."          @echo "Computing dependencies ..."
57          ocamldep $(INCLUDES) $(SYNTAX_PARSER) $(DEPEND) > depend          ocamldep $(INCLUDES) $(SYNTAX_PARSER) $(DEPEND) > depend
58    
59  run_top: all.cma  run_top: all.cma
60          ledit ocaml $(INCLUDES) all.cma          ledit ocaml $(INCLUDES) `ocamlfind use pxp` all.cma
61    
62  clean:  clean:
63          (cd parser; rm -f *.cmi *.cmo *.cma *.cmx *.o *~)          for i in $(DIRS); do \
64          (cd types; rm -f *.cmi *.cmo *.cma *.cmx *.o *~)          (cd $$i; rm -f *.cmi *.cmo *.cma *.cmx *.o *~); \
65          (cd typing; rm -f *.cmi *.cmo *.cma *.cmx *.o *~)          done
66          (cd driver; rm -f *.cmi *.cmo *.cma *.cmx *.o *~)          rm -f *.cmi *.cmo *.cma *.cmx *.a *.cmxa *.o *~
67          rm -f *.cmi *.cmo *.cma *.cmx *.o *~          rm -f cduce cduce.opt
68          rm -f cduce          rm -Rf prepro
69    
70    
71  .SUFFIXES: .ml .mli .cmo .cmi .cmx  .SUFFIXES: .ml .mli .cmo .cmi .cmx
72    
73    profile:
74            rm -Rf prepro
75            mkdir prepro
76            for i in $(DIRS); do \
77            mkdir prepro/$$i; \
78            for j in $$i/*.ml $$i/*.mli; do \
79            if [ -f "$$j" ]; then \
80             echo $$j; \
81             $(PREPRO) $$j -o prepro/$$j; \
82            fi; \
83            done; \
84            done
85            cp Makefile depend prepro/
86            (cd prepro;  make cduce OCAMLCP="ocamlcp -p a" SYNTAX_PARSER=)
87    
88  .ml.cmo:  .ml.cmo:
89          $(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) $<          $(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) $<
90    
91  .ml.cmx:  .ml.cmx:
92          ocamlopt -c $(SYNTAX_PARSER) $(INCLUDES) $<          $(OCAMLOPT) -c $(SYNTAX_PARSER) $(INCLUDES) $<
93    
94  .mli.cmi:  .mli.cmi:
95          $(OCAMLC) $(DEBUG) -c $(INCLUDES) $<          $(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) $<
96    
97  # FORTPATH = /users/formel8/frisch/solaris/fort/fort  # FORTPATH = /users/formel8/frisch/solaris/fort/fort
98  FORTPATH = /home/frisch/fort  #FORTPATH = /home/frisch/fort
99  FORTBIN = $(FORTPATH)/fort  #FORTBIN = $(FORTPATH)/fort
100  FORTLIB = $(FORTPATH)  #FORTLIB = $(FORTPATH)
101    
102  test: all.cma  test: all.cma
103          $(FORTBIN) -I $(FORTLIB) all.cma test_fort.ml          fort all.cma $(INCLUDES) tests/test_fort.ml
104    
105  include depend  include depend

Legend:
Removed from v.31  
changed lines
  Added in v.61

CVS Admin">CVS Admin
ViewVC Help
Powered by ViewVC 1.1.5