/[svn]/Makefile
ViewVC logotype

Diff of /Makefile

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

revision 71 by abate, Tue Jul 10 17:03:32 2007 UTC revision 380 by abate, Tue Jul 10 17:30:11 2007 UTC
# Line 1  Line 1 
1  # Source directories  DEBUG = -g
2    OCAMLCP = ocamlc
3    OCAMLC = ocamlfind $(OCAMLCP) -package $(PACKAGES)
4    OCAMLOPT = ocamlfind ocamlopt -package $(PACKAGES)
5    # extra options:
6    #    -p (profiling)
7    #    -inline 25
8    
9  DIRS = parser typing types runtime driver  PACKAGES = "pxp-engine pxp-lex-iso88591 pxp-wlex-utf8 wlexing camlp4 num,cgi"
10    
11  # Objects to build  DISTRIB = $(DIRS) tools web depend INSTALL LICENSE README Makefile
12    
13  PARSER = parser/lexer.cmo parser/location.cmo parser/ast.cmo parser/parser.cmo  all: cduce.opt dtd2cduce local_website
14    
15    # Source directories
16    
17  TYPING = typing/typed.cmo typing/typer.cmo  DIRS = misc parser typing types runtime driver
18    CLEAN_DIRS = $(DIRS) tools tests
19    
20  TYPES  = types/recursive.cmo \  # Objects to build
          types/recursive_share.cmo types/recursive_noshare.cmo \  
          types/sortedList.cmo types/sortedMap.cmo types/boolean.cmo \  
          types/intervals.cmo types/chars.cmo types/atoms.cmo \  
          types/types.cmo \  
          types/patterns.cmo \  
          types/sequence.cmo \  
          types/builtin.cmo  
   
 RUNTIME = runtime/value.cmo \  
           runtime/load_xml.cmo runtime/run_dispatch.cmo \  
           runtime/eval.cmo  
   
 DRIVER = driver/cduce.cmo  
   
 TOPLEVEL = toplevel/toploop.cmo  
   
 OBJECTS = $(TYPES) $(PARSER) $(TYPING) $(RUNTIME)  
 XOBJECTS = $(OBJECTS:.cmo=.cmx)  
 XDRIVER = $(DRIVER:.cmo=.cmx)  
21    
22    OBJECTS = \
23     misc/state.cmo misc/pool.cmo misc/encodings.cmo misc/bool.cmo \
24     misc/pretty.cmo \
25     \
26     types/sortedList.cmo types/boolean.cmo types/ident.cmo \
27     types/intervals.cmo types/chars.cmo types/atoms.cmo types/normal.cmo \
28     types/types.cmo types/patterns.cmo types/sequence.cmo types/builtin.cmo \
29     \
30     parser/location.cmo parser/wlexer.cmo parser/ast.cmo parser/parser.cmo \
31     \
32     typing/typed.cmo typing/typer.cmo \
33     \
34     runtime/value.cmo runtime/load_xml.cmo runtime/run_dispatch.cmo \
35     runtime/print_xml.cmo runtime/eval.cmo \
36     \
37     driver/cduce.cmo
38    
39    CDUCE = $(OBJECTS) driver/run.cmo
40    WEBIFACE  = $(OBJECTS) driver/examples.cmo driver/webiface.cmo
41    
42  DEBUG = -g  XCDUCE = $(CDUCE:.cmo=.cmx)
43  PACKAGES = pxp-engine,pxp-lex-iso88591,camlp4,num  XWEBIFACE =  $(WEBIFACE:.cmo=.cmx)
 OCAMLCP = ocamlc  
 OCAMLC = ocamlfind $(OCAMLCP) -package $(PACKAGES)  
 OCAMLOPT = ocamlfind ocamlopt  -package $(PACKAGES)  
44    
45  DEPEND = $(DIRS:=/*.ml) $(DIRS:=/*.mli)  DEPEND = $(DIRS:=/*.ml) $(DIRS:=/*.mli)
46  INCLUDES = $(DIRS:%=-I %)  INCLUDES = $(DIRS:%=-I %)
# Line 44  Line 49 
49  SYNTAX_PARSER = -pp '$(SYNTAX)'  SYNTAX_PARSER = -pp '$(SYNTAX)'
50  PREPRO = $(SYNTAX) pr_o.cmo  PREPRO = $(SYNTAX) pr_o.cmo
51    
52  all.cma: $(OBJECTS)  cduce: $(CDUCE)
53          $(OCAMLC) $(DEBUG) -o $@ -linkpkg gramlib.cma -a $(OBJECTS)          $(OCAMLC) $(DEBUG) -linkpkg -o $@ gramlib.cma $^
   
 all.cmxa: $(XOBJECTS)  
         $(OCAMLOPT) -a -o $@ $(XOBJECTS)  
   
   
 cduce: $(OBJECTS) $(DRIVER)  
         $(OCAMLC) $(DEBUG) -linkpkg -o $@ gramlib.cma $(OBJECTS) $(DRIVER)  
   
 toplevel: $(OBJECTS) $(TOPLEVEL)  
         $(OCAMLC) $(DEBUG) -linkpkg -o $@ gramlib.cma $(OBJECTS) $(TOPLEVEL)  
54    
55    webiface: $(WEBIFACE)
56            $(OCAMLC) $(DEBUG) -linkpkg -o $@ gramlib.cma $^
57    
58  dtd2cduce: tools/dtd2cduce.cmo  dtd2cduce: tools/dtd2cduce.cmo
59          $(OCAMLC) $(DEBUG) -linkpkg -o $@ $<          $(OCAMLC) $(DEBUG) -linkpkg -o $@ $^
60    
61    cduce.opt: $(XCDUCE)
62            $(OCAMLOPT) -linkpkg -o $@ gramlib.cmxa $^
63    
64  cduce.opt: all.cmxa $(XDRIVER)  webiface.opt: $(XWEBIFACE)
65          $(OCAMLOPT) -linkpkg -o $@ gramlib.cmxa $(XOBJECTS) $(XDRIVER)          $(OCAMLOPT) -linkpkg -o $@ gramlib.cmxa $^
66    
67  compute_depend:  compute_depend:
68          @echo "Computing dependencies ..."          @echo "Computing dependencies ..."
69          ocamldep $(INCLUDES) $(SYNTAX_PARSER) $(DEPEND) > depend          ocamldep $(INCLUDES) $(SYNTAX_PARSER) $(DEPEND) > depend
70    
71  run_top: all.cma  parser/wlexer.ml: parser/wlexer.mll
72          ledit ocaml $(INCLUDES) `ocamlfind use pxp` all.cma          wlex parser/wlexer.mll
73    
74  clean:  clean:
75          for i in $(DIRS); do \          for i in $(CLEAN_DIRS); do \
76          (cd $$i; rm -f *.cmi *.cmo *.cma *.cmx *.o *~); \          (cd $$i; rm -f *.cmi *.cmo *.cma *.cmx *.o *~); \
77          done          done
78          rm -f *.cmi *.cmo *.cma *.cmx *.a *.cmxa *.o *~          rm -f *.cmi *.cmo *.cma *.cmx *.a *.cmxa *.o *~
79          rm -f cduce cduce.opt          rm -f cduce cduce.opt webiface.opt ocamlprof.dump
80          rm -Rf prepro          rm -f dtd2cduce pool webiface
81            rm -Rf prepro package
82            rm -f web/*.php web/*.html web/*~
83    
84    
85  .SUFFIXES: .ml .mli .cmo .cmi .cmx  .SUFFIXES: .ml .mli .cmo .cmi .cmx
86    
87    .ml.cmo:
88            $(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) $<
89    
90    .ml.cmx:
91            $(OCAMLOPT) -c $(SYNTAX_PARSER) $(INCLUDES) $<
92    
93    .mli.cmi:
94            $(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) $<
95    
96    include depend
97    
98    # CDuce-generated files
99    
100    driver/examples.ml: cduce.opt web/examples/build.cd web/examples/examples.xml
101            (cd web/examples; ../../cduce.opt -quiet build.cd)
102    
103    web/files: cduce.opt web/site.cd
104            (cd web; ../cduce.opt -quiet site.cd -- -php site.xml)
105    
106    # Packaging
107    
108    write_header:
109            headache -h header $(DEPEND)
110    
111    remove_header:
112            headache -r $(DEPEND)
113    
114    # For development
115    
116    pull: tools/pull.cmo
117            $(OCAMLC) $(DEBUG) -linkpkg -o $@ $^
118    
119    all.cma: $(OBJECTS)
120            $(OCAMLC) $(DEBUG) -o $@ -linkpkg gramlib.cma -a $(OBJECTS)
121    
122    test: all.cma
123            fort all.cma -I +fort $(INCLUDES) tests/test_fort.ml
124    
125    run_top: all.cma
126            ledit ocaml $(INCLUDES) `ocamlfind use pxp` all.cma
127    
128  profile:  profile:
129          rm -Rf prepro          rm -Rf prepro
130          mkdir prepro          mkdir prepro
# Line 94  Line 137 
137          fi; \          fi; \
138          done; \          done; \
139          done          done
140            cp parser/wlexer.mll prepro/parser/
141          cp Makefile depend prepro/          cp Makefile depend prepro/
142          (cd prepro;  make cduce OCAMLCP="ocamlcp -p a" SYNTAX_PARSER=)          (cd prepro;  make cduce OCAMLCP="ocamlcp -p a" SYNTAX_PARSER=)
143    
144  .ml.cmo:  # Site-specific installation
         $(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) $<  
145    
146  .ml.cmx:  cedre_build:
147          $(OCAMLOPT) -c $(SYNTAX_PARSER) $(INCLUDES) $<          rsh cedre ". .env; cd IMPLEM/CDUCE; make webiface.opt; make web/files"
148    install_web:
149            scp web/*.php web/cduce.css cduce@iris:public_html/
150            scp webiface.opt cduce@iris:cgi-bin/cduce
151            ssh cduce@iris "chmod +s cgi-bin/cduce"
152    
153    install_web_local:
154            ssh root@localhost "cp -f ~beppe/IMPLEM/CDUCE/webiface.opt /var/www/cgi-bin/cduce; cp -f ~beppe/IMPLEM/CDUCE/web/*.php /var/www/html/; chmod +s /var/www/cgi-bin/cduce;"
155    
156    website: web/files
157            scp web/*.php web/cduce.css cduce@iris:public_html/
158    
159    local_website: cduce.opt webiface.opt
160            (cd web; ../cduce.opt -quiet site.cd -- site.xml)
161    
162    # Distribution
163    
164    .PHONY: package
165    package:
166            rm -Rf package
167            mkdir package
168            cp -R $(DISTRIB) package/
169            (cd package; headache -h ../header $(DEPEND))
170    
 .mli.cmi:  
         $(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) $<  
   
 # FORTPATH = /users/formel8/frisch/solaris/fort/fort  
 #FORTPATH = /home/frisch/fort  
 #FORTBIN = $(FORTPATH)/fort  
 #FORTLIB = $(FORTPATH)  
   
 test: all.cma  
         fort all.cma $(INCLUDES) tests/test_fort.ml  
   
 include depend  

Legend:
Removed from v.71  
changed lines
  Added in v.380

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