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

Diff of /cduce/trunk/Makefile

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

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

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

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