/[svn]/Makefile
ViewVC logotype

Diff of /Makefile

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

revision 367 by abate, Tue Jul 10 17:28:43 2007 UTC revision 368 by abate, Tue Jul 10 17:28:55 2007 UTC
# Line 1  Line 1 
1    DEBUG = -g
2    OCAMLCP = ocamlc
3    OCAMLC = ocamlfind $(OCAMLCP) -package $(PACKAGES)
4    OCAMLOPT = ocamlfind ocamlopt -inline 25 -package $(PACKAGES)
5    # extra options:
6    #    -p (profiling)
7    
8    PACKAGES = "pxp-engine pxp-lex-iso88591 wlexing camlp4 num,cgi"
9    
10    DISTRIB = $(DIRS) tools web depend INSTALL Makefile
11    
12    all: cduce.opt dtd2cduce web/files
13    
14  # Source directories  # Source directories
15    
16  DIRS = misc parser typing types runtime driver toplevel  DIRS = misc parser typing types runtime driver
17  CLEAN_DIRS = $(DIRS) tools tests  CLEAN_DIRS = $(DIRS) tools tests
18    
19  # Objects to build  # Objects to build
20    
21  MISC = misc/state.cmo misc/pool.cmo misc/encodings.cmo misc/bool.cmo \  OBJECTS = \
22          misc/pretty.cmo   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  PARSER = parser/location.cmo \  CDUCE = $(OBJECTS) driver/run.cmo
39           parser/wlexer.cmo \  WEBIFACE  = $(OBJECTS) driver/examples.cmo driver/webiface.cmo
          parser/ast.cmo parser/parser.cmo  
   
 TYPING = typing/typed.cmo typing/typer.cmo  
   
 TYPES  = \  
          types/sortedList.cmo types/boolean.cmo \  
          types/ident.cmo \  
          types/intervals.cmo types/chars.cmo types/atoms.cmo \  
          types/normal.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/print_xml.cmo \  
           runtime/eval.cmo  
   
 DRIVER = driver/cduce.cmo  
   
 OBJECTS = $(MISC) $(TYPES) $(PARSER) $(TYPING) $(RUNTIME)  
   
 CDUCE = $(OBJECTS) $(DRIVER) driver/run.cmo  
 WEBIFACE  = $(OBJECTS) $(DRIVER) driver/examples.cmo driver/webiface.cmo  
 TOPLEVEL = $(OBJECTS) toplevel/toploop.cmo  
40    
 XOBJECTS = $(OBJECTS:.cmo=.cmx)  
41  XCDUCE = $(CDUCE:.cmo=.cmx)  XCDUCE = $(CDUCE:.cmo=.cmx)
42  XWEBIFACE =  $(WEBIFACE:.cmo=.cmx)  XWEBIFACE =  $(WEBIFACE:.cmo=.cmx)
43    
   
 DEBUG = -g  
 PACKAGES = pxp-engine,pxp-lex-iso88591,wlexing,camlp4,num,cgi  
 OCAMLCP = ocamlc  
 OCAMLC = ocamlfind $(OCAMLCP) -package $(PACKAGES)  
 OCAMLOPT = ocamlfind ocamlopt -package $(PACKAGES)  
 # extra options:  
 #    -inline 25  
 #    -p (profiling)  
 #    -noassert  
   
44  DEPEND = $(DIRS:=/*.ml) $(DIRS:=/*.mli)  DEPEND = $(DIRS:=/*.ml) $(DIRS:=/*.mli)
45  INCLUDES = $(DIRS:%=-I %)  INCLUDES = $(DIRS:%=-I %)
46    
# Line 59  Line 48 
48  SYNTAX_PARSER = -pp '$(SYNTAX)'  SYNTAX_PARSER = -pp '$(SYNTAX)'
49  PREPRO = $(SYNTAX) pr_o.cmo  PREPRO = $(SYNTAX) pr_o.cmo
50    
 all.cma: $(OBJECTS)  
         $(OCAMLC) $(DEBUG) -o $@ -linkpkg gramlib.cma -a $(OBJECTS)  
   
 all.cmxa: $(XOBJECTS)  
         $(OCAMLOPT) -a -o $@ $(XOBJECTS)  
   
   
 OCAMLDEFUN = /home/frisch/defun/bin/ocamldefun  
 DEFUN_FILES = $(OBJECTS:%.cmo=%)  
   
 build_defun:  
         for i in $(DEFUN_FILES); do \  
         $(OCAMLDEFUN) $(DIRS:%=-I defun/%) -p -d defun $$i.mli $$i.ml; \  
         $(OCAMLDEFUN) $(DIRS:%=-I defun/%) -p -d defun $$i.ml; \  
         done  
   
51  cduce: $(CDUCE)  cduce: $(CDUCE)
52          $(OCAMLC) $(DEBUG) -linkpkg -o $@ gramlib.cma $(CDUCE)          $(OCAMLC) $(DEBUG) -linkpkg -o $@ gramlib.cma $^
   
 toplevel.out: $(TOPLEVEL)  
         $(OCAMLC) $(DEBUG) -linkpkg -o $@ gramlib.cma $(TOPLEVEL)  
53    
54  webiface: $(WEBIFACE)  webiface: $(WEBIFACE)
55          $(OCAMLC) $(DEBUG) -linkpkg -o $@ gramlib.cma $(WEBIFACE)          $(OCAMLC) $(DEBUG) -linkpkg -o $@ gramlib.cma $^
   
56    
57  dtd2cduce: tools/dtd2cduce.cmo  dtd2cduce: tools/dtd2cduce.cmo
58          $(OCAMLC) $(DEBUG) -linkpkg -o $@ $<          $(OCAMLC) $(DEBUG) -linkpkg -o $@ $^
   
 pull: tools/pull.cmo  
         $(OCAMLC) $(DEBUG) -linkpkg -o $@ $<  
59    
60  cduce.opt: $(XCDUCE)  cduce.opt: $(XCDUCE)
61          $(OCAMLOPT) -linkpkg -o $@ gramlib.cmxa $(XCDUCE)          $(OCAMLOPT) -linkpkg -o $@ gramlib.cmxa $^
62    
63  webiface.opt: $(XWEBIFACE)  webiface.opt: $(XWEBIFACE)
64          $(OCAMLOPT) -linkpkg -o $@ gramlib.cmxa $(XWEBIFACE)          $(OCAMLOPT) -linkpkg -o $@ gramlib.cmxa $^
65    
66  compute_depend:  compute_depend:
67          @echo "Computing dependencies ..."          @echo "Computing dependencies ..."
# Line 104  Line 70 
70  parser/wlexer.ml: parser/wlexer.mll  parser/wlexer.ml: parser/wlexer.mll
71          wlex parser/wlexer.mll          wlex parser/wlexer.mll
72    
 run_top: all.cma  
         ledit ocaml $(INCLUDES) `ocamlfind use pxp` all.cma  
   
73  clean:  clean:
74          for i in $(CLEAN_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 *~); \
# Line 115  Line 78 
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 webiface.opt ocamlprof.dump          rm -f cduce cduce.opt webiface.opt ocamlprof.dump
80          rm -f dtd2cduce pool webiface          rm -f dtd2cduce pool webiface
81          rm -Rf prepro          rm -Rf prepro package
82          rm -f web/*.php web/*~          rm -f web/*.php web/*~
83    
84    
85  .SUFFIXES: .ml .mli .cmo .cmi .cmx  .SUFFIXES: .ml .mli .cmo .cmi .cmx
86    
 profile:  
         rm -Rf prepro  
         mkdir prepro  
         for i in $(DIRS); do \  
         mkdir prepro/$$i; \  
         for j in $$i/*.ml $$i/*.mli; do \  
         if [ -f "$$j" ]; then \  
          echo $$j; \  
          $(PREPRO) $$j -o prepro/$$j; \  
         fi; \  
         done; \  
         done  
         cp parser/wlexer.mll prepro/parser/  
         cp Makefile depend prepro/  
         (cd prepro;  make cduce OCAMLCP="ocamlcp -p a" SYNTAX_PARSER=)  
   
87  .ml.cmo:  .ml.cmo:
88          $(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) $<          $(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) $<
89    
# Line 146  Line 93 
93  .mli.cmi:  .mli.cmi:
94          $(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) $<          $(OCAMLC) $(DEBUG) -c $(SYNTAX_PARSER) $(INCLUDES) $<
95    
 # 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  
   
96  include depend  include depend
97    
98    # CDuce-generated files
99    
100  driver/examples.ml: cduce.opt web/examples/build.cd web/examples/examples.xml  driver/examples.ml: cduce.opt web/examples/build.cd web/examples/examples.xml
101          (cd web/examples; ../../cduce.opt -quiet build.cd)          (cd web/examples; ../../cduce.opt -quiet build.cd)
102    
   
103  web/files: cduce.opt web/site.cd  web/files: cduce.opt web/site.cd
104          (cd web; ../cduce.opt -quiet site.cd)          (cd web; ../cduce.opt -quiet site.cd -- site.xml)
105    
106    # Packaging
107    
108  write_header:  write_header:
109          headache -h header $(DEPEND)          headache -h header $(DEPEND)
# Line 171  Line 111 
111  remove_header:  remove_header:
112          headache -r $(DEPEND)          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:
129            rm -Rf prepro
130            mkdir prepro
131            for i in $(DIRS); do \
132            mkdir prepro/$$i; \
133            for j in $$i/*.ml $$i/*.mli; do \
134            if [ -f "$$j" ]; then \
135             echo $$j; \
136             $(PREPRO) $$j -o prepro/$$j; \
137            fi; \
138            done; \
139            done
140            cp parser/wlexer.mll prepro/parser/
141            cp Makefile depend prepro/
142            (cd prepro;  make cduce OCAMLCP="ocamlcp -p a" SYNTAX_PARSER=)
143    
144  # Site-specific installation  # Site-specific installation
145  build_web:  build_web:
146          rsh cedre ". .env; cd IMPLEM/CDUCE; make webiface.opt"          rsh cedre ". .env; cd IMPLEM/CDUCE; make webiface.opt"
# Line 185  Line 155 
155    
156  build_website_local: web/files  build_website_local: web/files
157          scp web/*.php web/cduce.css cduce@iris:public_html/          scp web/*.php web/cduce.css cduce@iris:public_html/
158    
159    # Distribution
160    
161    .PHONY: package
162    package:
163            rm -Rf package
164            mkdir package
165            cp -R $(DISTRIB) package/

Legend:
Removed from v.367  
changed lines
  Added in v.368

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