/[svn]/Makefile.distrib
ViewVC logotype

Diff of /Makefile.distrib

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

revision 1196 by abate, Tue Jul 10 18:30:31 2007 UTC revision 1726 by abate, Tue Jul 10 19:17:16 2007 UTC
# Line 1  Line 1 
1  include Makefile.conf  include Makefile.conf
2  VERSION = 0.2.0-rc1  VERSION = 0.3.2+2
3    
4  all: cduce dtd2cduce validate cdo2ml cduce_lib.cma  ALL_TARGET=cduce cduce_lib.cma
5  ifeq ($(NATIVE),true)  INSTALL_BINARIES=cduce$(EXE)
6  all: cduce_lib.cmxa  
7    ifneq ($(ML_INTERFACE), false)
8      ALL_TARGET += cdo2ml mlcduce_wrapper
9      INSTALL_BINARIES += cdo2ml$(EXE) mlcduce_wrapper$(EXE) cduce_mktop
10  endif  endif
11    
12  PACKAGES = pxp-engine pxp-lex-iso88591 ulex camlp4 num cgi pcre netstring  
13  ifeq ($(PXP_WLEX), true)  all: $(ALL_TARGET)
14    PACKAGES += pxp-wlex-utf8  ifeq ($(NATIVE),true)
15  else  all: cduce_lib.cmxa
   PACKAGES += pxp-lex-utf8  
16  endif  endif
17    
18    PACKAGES = ulex camlp4 cgi pcre num netstring
19    
20  # Call make with VERBOSE=true to get a trace of commands  # Call make with VERBOSE=true to get a trace of commands
21    
# Line 24  Line 27 
27     HIDE=     HIDE=
28  endif  endif
29    
 # webiface can be made static to be able to move it more easily  
 # (to compile it on a machine which is not the web server)  
 # Seems to be some problems with statically linking curl  
 # EXTRA_OPTS_WEBIFACE = -ccopt -static  
30    
31  SYNTAX = -I misc/ q_symbol.cmo \  SYNTAX = -I misc/ q_symbol.cmo \
32    -symbol cduce_version=\"$(VERSION)\" \    -symbol cduce_version=\"$(VERSION)\" \
# Line 65  Line 64 
64  ifeq ($(NATIVE), true)  ifeq ($(NATIVE), true)
65    EXTENSION = cmx    EXTENSION = cmx
66    EXTENSION_LIB = cmxa    EXTENSION_LIB = cmxa
67      CAML=ocamlopt
68    COMPILE = $(CAMLOPT)    COMPILE = $(CAMLOPT)
69    LINK = $(CAMLOPT) -linkpkg gramlib.cmxa    LINK = $(CAMLOPT) -linkpkg gramlib.cmxa
70    SYNTAX += -symbol ocaml_compiler=\"bytecode\"    SYNTAX += -symbol ocaml_compiler=\"native\"
71  else  else
72    EXTENSION = cmo    EXTENSION = cmo
73    EXTENSION_LIB = cma    EXTENSION_LIB = cma
74    COMPILE = $(CAMLC)    COMPILE = $(CAMLC)
75      CAML=ocamlc
76    LINK = $(CAMLC) -custom -linkpkg gramlib.cma    LINK = $(CAMLC) -custom -linkpkg gramlib.cma
77    SYNTAX += -symbol ocaml_compiler=\"native\"    SYNTAX += -symbol ocaml_compiler=\"bytecode\"
78  endif  endif
79    
80    
81  INSTALL := $(shell which install)  INSTALL := install
   
82    
83  ifeq ($(NATIVE),true)  ifeq ($(NATIVE),true)
84    .PHONY: cduce_lib.cma
85  cduce_lib.cma:  cduce_lib.cma:
86          $(HIDE)$(MAKE) NATIVE=false $@          $(HIDE)$(MAKE) NATIVE=false $@
87  endif  endif
88    
89  install: all install_lib  install: all install_bin install_lib install_doc
90          $(HIDE)mkdir -p $(BINDIR)  
91          $(HIDE)mkdir -p $(MANDIR)/man1  install_bin:
92          @echo "Install binaries"          @echo "Install binaries"
93          $(HIDE)$(INSTALL) -m755 cduce$(EXE) dtd2cduce$(EXE) \          $(HIDE)mkdir -p $(BINDIR)
94                           validate$(EXE) cdo2ml$(EXE) $(BINDIR)/          $(HIDE)$(INSTALL) -m755 $(INSTALL_BINARIES) $(BINDIR)/
95          $(HIDE)(cd doc; $(MAKE) install INSTALL=$(INSTALL) MANDIR=$(MANDIR) HIDE=$(HIDE))  
96    
97  install_lib:  install_lib:
98          @echo "Build META"          @echo "Build META"
99          $(HIDE)echo 'version="$(VERSION)"' > META          $(HIDE)(sed "s/%REQ%/$(PACKAGES)/" < META.in | sed "s/%VER%/$(VERSION)/" > META)
         $(HIDE)echo 'requires="$(PACKAGES) camlp4.gramlib"' >> META  
         $(HIDE)echo 'description="Runtime support for CDuce"' >> META  
         $(HIDE)echo 'archive(byte)="cduce_lib.cma"' >> META  
         $(HIDE)echo 'archive(native)="cduce_lib.cmxa"' >> META  
100          $(HIDE)-$(OCAMLFIND) remove cduce          $(HIDE)-$(OCAMLFIND) remove cduce
101          $(HIDE)-$(OCAMLFIND) install cduce META \          $(HIDE)-$(OCAMLFIND) install cduce META \
102           cduce_lib.cmi $(wildcard *.cma) $(wildcard *.cmxa) $(wildcard *.a) \           cduce_lib.cmi $(wildcard *.cma) $(wildcard *.cmxa) $(wildcard *.a) \
103    
104    
105  uninstall:  uninstall:
106          rm -f $(BINDIR)/cduce$(EXE) $(BINDIR)/dtd2cduce$(EXE) \          rm -f $(BINDIR)/cduce$(EXE) \
107            $(BINDIR)/validate$(EXE) $(BINDIR)/cdo2ml$(EXE)            $(BINDIR)/cdo2ml$(EXE) \
108          rm -f $(MANDIR)/man1/cduce.1 $(MANDIR)/man1/dtd2cduce.1 \            $(BINDIR)/mlcduce_wrapper$(EXE) $(BINDIR)/cduce_mktop
109            $(MANDIR)/man1/validate.1 $(MANDIR)/man1/cdo2ml.1          rm -f $(MANDIR)/man1/cduce.1 \
110              $(MANDIR)/man1/cdo2ml.1
111            rm -Rf $(DOCDIR)
112          ocamlfind remove cduce          ocamlfind remove cduce
113    
114  help:  help:
115          @echo "GOALS"          @echo "GOALS"
116          @echo "  cduce : compiles the CDuce command line interpreter"          @echo "  cduce : compiles the CDuce command line interpreter"
117          @echo "  dtd2cduce : compiles the dtd2cduce tools"          @echo "  dtd2cduce : compiles the dtd2cduce tools"
118          @echo "  validate : compiles the schema validation tool"          @echo "  doc : build the documentation"
119          @echo "  webiface : compiles the CDuce web interface interpreter (CGI script)"          @echo "  all : build binaries and libraries"
120          @echo "  webpages : compiles in web/www/ the files for the CDuce website"          @echo "  install : install binaries, man pages, documentation"
         @echo "             (including the tutorial and manual)"  
         @echo "  install_web : compiles webiface and webpages, and install everything"  
         @echo "  all : equivalent to (make cduce dtd2cduce validate)"  
         @echo "  install : install cduce dtd2cduce, validate et man pages"  
121          @echo "  clean :  back to the starting point"          @echo "  clean :  back to the starting point"
122          @echo "  uninstall : remove installed files"          @echo "  uninstall : remove installed files"
123    
# Line 134  Line 129 
129  # Objects to build  # Objects to build
130    
131  SCHEMA_OBJS = \  SCHEMA_OBJS = \
132     schema/schema_pcre.cmo \
133   schema/schema_types.cmo \   schema/schema_types.cmo \
134   schema/schema_xml.cmo \   schema/schema_xml.cmo \
135   schema/schema_common.cmo \   schema/schema_common.cmo \
136   schema/schema_builtin.cmo \   schema/schema_builtin.cmo \
137   schema/schema_validator.cmo \   schema/schema_validator.cmo \
138   schema/schema_parser.cmo \   schema/schema_parser.cmo \
139     schema/schema_converter.cmo
140    
141  OBJECTS = \  OBJECTS = \
142   driver/config.cmo \   driver/config.cmo \
143   misc/stats.cmo \   misc/stats.cmo \
144   misc/serialize.cmo misc/custom.cmo \   misc/serialize.cmo misc/custom.cmo \
145   misc/state.cmo misc/pool.cmo misc/encodings.cmo misc/bool.cmo \   misc/state.cmo misc/pool.cmo misc/encodings.cmo \
146   misc/pretty.cmo misc/ns.cmo misc/inttbl.cmo misc/imap.cmo \   misc/pretty.cmo misc/ns.cmo misc/inttbl.cmo misc/imap.cmo \
147     misc/html.cmo \
148   \   \
149   types/sortedList.cmo types/boolean.cmo types/ident.cmo \   types/sortedList.cmo misc/bool.cmo types/boolean.cmo types/ident.cmo \
150   types/intervals.cmo types/chars.cmo types/atoms.cmo \   types/intervals.cmo \
151     types/chars.cmo types/atoms.cmo \
152   types/normal.cmo \   types/normal.cmo \
153   types/types.cmo types/patterns.cmo types/sequence.cmo \   types/types.cmo types/sample.cmo types/sequence.cmo types/patterns.cmo \
154   types/sample.cmo types/builtin_defs.cmo \   compile/auto_opt.cmo \
155     types/builtin_defs.cmo \
156   \   \
157   compile/lambda.cmo \   compile/lambda.cmo \
158   runtime/value.cmo \   runtime/value.cmo \
159   \   \
160   $(SCHEMA_OBJS) \   parser/location.cmo  parser/url.cmo \
161   \   \
162   parser/location.cmo parser/url.cmo parser/ulexer.cmo parser/ast.cmo parser/parser.cmo \   parser/ulexer.cmo parser/ast.cmo parser/parser.cmo \
163   \   \
164   types/externals.cmo \   types/externals.cmo \
165   typing/typed.cmo typing/typer.cmo \   typing/typed.cmo typing/typepat.cmo typing/typer.cmo \
166     \
167     $(SCHEMA_OBJS) \
168   \   \
169   runtime/load_xml.cmo runtime/run_dispatch.cmo \   runtime/load_xml.cmo runtime/run_dispatch.cmo \
170   runtime/explain.cmo \   runtime/explain.cmo \
# Line 172  Line 174 
174   \   \
175   types/builtin.cmo \   types/builtin.cmo \
176   driver/librarian.cmo \   driver/librarian.cmo \
177   driver/cduce.cmo   driver/cduce.cmo \
178     runtime/system.cmo
179    
180    schema/schema_types.ml: schema/schema_types.mli
181            cp $^ $@
182    
183  ML_INTERFACE_OBJS = \  ML_INTERFACE_OBJS = \
184    ocamliface/caml_cduce.cmo ocamliface/mltypes.cmo ocamliface/mlstub.cmo    ocamliface/caml_cduce.cmo \
185      ocamliface/mltypes.cmo ocamliface/mlstub.cmo
186    
187  ifneq ($(ML_INTERFACE), false)  ifneq ($(ML_INTERFACE), false)
188    OBJECTS += $(ML_INTERFACE_OBJS)    OBJECTS += $(ML_INTERFACE_OBJS)
# Line 190  Line 197 
197    PACKAGES += netclient    PACKAGES += netclient
198  endif  endif
199    
200  OBJECTS += runtime/cduce_pxp.cmo  PXP_PACK=pxp-engine pxp-lex-iso88591
201    ifeq ($(PXP_WLEX), true)
202      PXP_PACK += pxp-wlex-utf8
203    else
204      PXP_PACK += pxp-lex-utf8
205    endif
206    
207    ifeq ($(PXP),true)
208      OBJECTS += runtime/cduce_pxp.cmo
209      PACKAGES += $(PXP_PACK)
210    endif
211  ifeq ($(EXPAT), true)  ifeq ($(EXPAT), true)
212    OBJECTS += runtime/cduce_expat.cmo    OBJECTS += runtime/cduce_expat.cmo
213    PACKAGES += expat    PACKAGES += expat
214  endif  endif
215    
216    
217  CQL_OBJECTS= query/query.cmo query/query_parse.cmo  #CQL_OBJECTS= query/query_aggregates.cmo query/query.cmo query/query_parse.cmo
218  CQL_OBJECTS_RUN = query/query_run.cmo  #CQL_OBJECTS_RUN = query/query_run.cmo
219    CQL_OBJECTS= query/query_aggregates.cmo
220    CQL_OBJECTS_RUN=
221    
222    OBJECTS += $(CQL_OBJECTS)
223    
224  VALIDATE_OBJECTS := $(shell for o in $(OBJECTS); do echo $$o; if [ "$$o" = "schema/schema_parser.cmo" ]; then exit 0; fi; done) # all objects until schema_parser.cmo  VALIDATE_OBJECTS := $(shell for o in $(OBJECTS); do echo $$o; if [ "$$o" = "schema/schema_parser.cmo" ]; then exit 0; fi; done) # all objects until schema_parser.cmo
225    
226  CDUCE = $(OBJECTS) $(CQL_OBJECTS) driver/run.cmo $(CQL_OBJECTS_RUN)  OBJECTS += $(CQL_OBJECTS_RUN)
227  WEBIFACE  = $(OBJECTS) $(CQL_OBJECTS) driver/examples.cmo driver/webiface.cmo  OBJECTS += driver/run.cmo
228  DTD2CDUCE = tools/dtd2cduce.cmo  CDUCE = $(OBJECTS) driver/start.cmo
229    
230  ALL_OBJECTS = $(OBJECTS) $(CQL_OBJECTS) \  ALL_OBJECTS = $(OBJECTS) \
231   driver/run.cmo driver/examples.cmo driver/webiface.cmo \   driver/start.cmo driver/examples.cmo \
232   tools/dtd2cduce.cmo tools/validate.cmo \   driver/webiface.cmo driver/evaluator.cmo \
233     tools/validate.cmo \
234   $(ML_INTERFACE_OBJS) parser/cduce_curl.cmo \   $(ML_INTERFACE_OBJS) parser/cduce_curl.cmo \
235   parser/cduce_netclient.cmo \   parser/cduce_netclient.cmo \
236   runtime/cduce_expat.cmo \   runtime/cduce_expat.cmo runtime/cduce_pxp.cmo
237   $(CQL_OBJECTS_RUN)  
238  ALL_INTERFACES = schema/schema_types.mli  ALL_INTERFACES = schema/schema_types.mli
239    
240  DEPEND = $(ALL_OBJECTS:.cmo=.ml) $(ALL_OBJECTS:.cmo=.mli) $(ALL_INTERFACES)  DEPEND = $(ALL_OBJECTS:.cmo=.ml) $(ALL_OBJECTS:.cmo=.mli) $(ALL_INTERFACES)
# Line 233  Line 254 
254    
255    
256  cduce_lib.$(EXTENSION_LIB): $(OBJECTS:.cmo=.$(EXTENSION))  cduce_lib.$(EXTENSION_LIB): $(OBJECTS:.cmo=.$(EXTENSION))
257          @echo "Build $@"          @echo "Pack cduce_lib.$(EXTENSION)"
258          $(HIDE)$(COMPILE) -o cduce_lib.$(EXTENSION) -pack $^          $(HIDE)$(COMPILE) -o cduce_lib.$(EXTENSION) -pack $^
259            @echo "Build $@"
260          $(HIDE)$(COMPILE) -a -o $@ cduce_lib.$(EXTENSION)          $(HIDE)$(COMPILE) -a -o $@ cduce_lib.$(EXTENSION)
261    
262    dtd2cduce: tools/dtd2cduce.ml
 webiface: $(WEBIFACE:.cmo=.$(EXTENSION))  
263          @echo "Build $@"          @echo "Build $@"
264          $(HIDE)$(LINK) -verbose $(INCLUDES) -o $@ $^ $(EXTRA_OPTS_WEBIFACE)          $(HIDE)$(OCAMLFIND) $(CAML) -o $@ -ccopt -static -package "$(PXP_PACK) cgi" -linkpkg $^
265    
266  dtd2cduce: $(DTD2CDUCE:.cmo=.$(EXTENSION))  cduce_validate: $(VALIDATE_OBJECTS:.cmo=.$(EXTENSION)) tools/validate.$(EXTENSION)
267          @echo "Build $@"          @echo "Build $@"
268          $(HIDE)$(LINK) $(INCLUDES) -o $@ $^          $(HIDE)$(LINK) $(INCLUDES) -o $@ $^
269    
270  validate: $(VALIDATE_OBJECTS:.cmo=.$(EXTENSION)) tools/validate.$(EXTENSION)  mlcduce_wrapper: $(OBJECTS) ocamliface/mlcduce_wrapper.ml
271          @echo "Build $@"          @echo "Build $@"
272          $(HIDE)$(LINK) $(INCLUDES) -o $@ $^          $(HIDE)$(CAMLC) -linkpkg $(INCLUDES) -o $@ odyl.cma camlp4.cma pr_o.cmo $^ $(EXTRA_LINK_OPTS)
273    
274  cdo2ml: ocamliface/cdo2ml.ml  cdo2ml: ocamliface/cdo2ml.ml
275          @echo "Build $@"          @echo "Build $@"
276          $(HIDE)ocamlc -o $@ -pp camlp4o -I +camlp4 camlp4.cma pr_o.cmo $^          $(HIDE)ocamlc -o $@ -pp camlp4o -I +camlp4 odyl.cma camlp4.cma pr_o.cmo $^
277    
278  .PHONY: compute_depend  .PHONY: compute_depend
279  compute_depend: $(DEPEND_OCAMLDEP)  compute_depend: $(DEPEND_OCAMLDEP)
# Line 268  Line 289 
289          rm -f `find . -name "*~"`          rm -f `find . -name "*~"`
290          rm -f *.cmi *.cmo *.cma *.cmx *.a *.cmxa *.o *~ META          rm -f *.cmi *.cmo *.cma *.cmx *.a *.cmxa *.o *~ META
291          rm -f cduce$(EXE) ocamlprof.dump          rm -f cduce$(EXE) ocamlprof.dump
292          rm -f dtd2cduce$(EXE) webiface$(EXE) validate$(EXE) cdo2ml$(EXE)          rm -f dtd2cduce$(EXE) webiface$(EXE) cduce_validate$(EXE) \
293                    cdo2ml$(EXE) mlcduce_wrapper$(EXE) evaluator$(EXE)
294          rm -Rf prepro package          rm -Rf prepro package
295          rm -f web/www/*.html web/*~          rm -f web/www/*.html web/*~
296          rm -f web/*.cdo          rm -f web/*.cdo
297            rm -f configure.log
298            rm -rf web/doc
299            rm -f META
300    
301  distclean: clean  distclean: clean
302          rm -f Makefile.conf          rm -f Makefile.conf
303    
304  ocamliface/mltypes.$(EXTENSION)): ocamliface/caml_cduce.$(EXTENSION)  ocamliface/mltypes.$(EXTENSION): ocamliface/caml_cduce.$(EXTENSION)
305    
306  $(ALL_OBJECTS:.cmo=.$(EXTENSION)): misc/q_symbol.cmo  $(ALL_OBJECTS:.cmo=.$(EXTENSION)): misc/q_symbol.cmo
307  $(ALL_INTERFACES): misc/q_symbol.cmo  $(ALL_INTERFACES): misc/q_symbol.cmo
# Line 301  Line 326 
326    
327  include depend  include depend
328    
329  # CDuce-generated files  # Documentation
   
 driver/examples.ml: cduce web/examples/build.cd web/examples/examples.xml  
         (cd web/examples; ../../cduce build.cd --arg examples.xml)  
330    
331  webpages: cduce web/site.cdo  doc: cduce web/site.cdo
332          (cd web; ../cduce --run site.cdo --arg site.xml)          mkdir -p web/doc
333            (cd web; ../cduce --run site.cdo --arg doc.xml -o doc)
334    
335  web/site.cdo: cduce web/xhtml.cdo web/site.cd  web/site.cdo: cduce web/xhtml.cdo web/site.cd
336          ./cduce -I web/ --compile web/site.cd          ./cduce -I web/ --compile web/site.cd
# Line 315  Line 338 
338  web/xhtml.cdo: cduce web/xhtml.cd  web/xhtml.cdo: cduce web/xhtml.cd
339          ./cduce -I web/ --compile web/xhtml.cd          ./cduce -I web/ --compile web/xhtml.cd
340    
341  website: webpages webiface  install_doc: doc
342            $(HIDE)mkdir -p $(MANDIR)/man1
343  install_web: website          $(HIDE)(cd doc; $(MAKE) install INSTALL=$(INSTALL) MANDIR=$(MANDIR) HIDE=$(HIDE))
344          cp  web/www/*.html web/cduce.css  $(HTML_DIR)/          mkdir -p $(DOCDIR)/img
345          cp CHANGES  INSTALL INSTALL.WIN32 $(HTML_DIR)/          cp web/doc/*.html $(DOCDIR)/
346          cp webiface $(CGI_DIR)/cduce          cp CHANGES INSTALL INSTALL.WIN32 README AUTHORS LICENSE $(DOCDIR)/
347          if test ! -d "$(HTML_DIR)/img" ; then \          cp web/img/left.gif web/img/right.gif $(DOCDIR)/img
           mkdir $(HTML_DIR)/img; \  
         fi;  
         cp web/img/*.*  $(HTML_DIR)/img  
348    
349    
350  ### Pack OCaml modules for the CDuce/OCaml interface  ### Pack OCaml modules for the CDuce/OCaml interface

Legend:
Removed from v.1196  
changed lines
  Added in v.1726

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