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

Diff of /cduce/trunk/Makefile.distrib

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

revision 1287 by abate, Tue Jul 10 18:37:31 2007 UTC revision 1628 by abate, Tue Jul 10 19:09:24 2007 UTC
# Line 1  Line 1 
1  include Makefile.conf  include Makefile.conf
2  VERSION = 0.2.1+1  VERSION = 0.3.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=\"native\"    SYNTAX += -symbol ocaml_compiler=\"native\"
# Line 72  Line 72 
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=\"bytecode\"    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  .PHONY: cduce_lib.cma
# Line 86  Line 86 
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 135  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 \
# Line 148  Line 144 
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 misc/bool.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 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 \   types/builtin_defs.cmo \
155   \   \
156   compile/lambda.cmo \   compile/lambda.cmo \
157   runtime/value.cmo \   runtime/value.cmo \
158   \   \
159   $(SCHEMA_OBJS) \   parser/location.cmo  parser/url.cmo \
160   \   \
161   parser/location.cmo parser/url.cmo parser/ulexer.cmo parser/ast.cmo parser/parser.cmo \   parser/ulexer.cmo parser/ast.cmo parser/parser.cmo \
162   \   \
163   types/externals.cmo \   types/externals.cmo \
164   typing/typed.cmo typing/typer.cmo \   typing/typed.cmo typing/typer.cmo \
165   \   \
166     $(SCHEMA_OBJS) \
167     \
168   runtime/load_xml.cmo runtime/run_dispatch.cmo \   runtime/load_xml.cmo runtime/run_dispatch.cmo \
169   runtime/explain.cmo \   runtime/explain.cmo \
170   runtime/print_xml.cmo runtime/eval.cmo \   runtime/print_xml.cmo runtime/eval.cmo \
# Line 173  Line 173 
173   \   \
174   types/builtin.cmo \   types/builtin.cmo \
175   driver/librarian.cmo \   driver/librarian.cmo \
176   driver/cduce.cmo   driver/cduce.cmo \
177     runtime/system.cmo
178    
179    schema/schema_types.ml: schema/schema_types.mli
180            cp $^ $@
181    
182  ML_INTERFACE_OBJS = \  ML_INTERFACE_OBJS = \
183    ocamliface/caml_cduce.cmo ocamliface/mltypes.cmo ocamliface/mlstub.cmo    ocamliface/caml_cduce.cmo \
184      ocamliface/mltypes.cmo ocamliface/mlstub.cmo
185    
186  ifneq ($(ML_INTERFACE), false)  ifneq ($(ML_INTERFACE), false)
187    OBJECTS += $(ML_INTERFACE_OBJS)    OBJECTS += $(ML_INTERFACE_OBJS)
# Line 191  Line 196 
196    PACKAGES += netclient    PACKAGES += netclient
197  endif  endif
198    
199  OBJECTS += runtime/cduce_pxp.cmo  PXP_PACK=pxp-engine pxp-lex-iso88591
200    ifeq ($(PXP_WLEX), true)
201      PXP_PACK += pxp-wlex-utf8
202    else
203      PXP_PACK += pxp-lex-utf8
204    endif
205    
206    ifeq ($(PXP),true)
207      OBJECTS += runtime/cduce_pxp.cmo
208      PACKAGES += $(PXP_PACK)
209    endif
210  ifeq ($(EXPAT), true)  ifeq ($(EXPAT), true)
211    OBJECTS += runtime/cduce_expat.cmo    OBJECTS += runtime/cduce_expat.cmo
212    PACKAGES += expat    PACKAGES += expat
213  endif  endif
214    
215    
216  CQL_OBJECTS= query/query_aggregates.cmo query/query.cmo query/query_parse.cmo  #CQL_OBJECTS= query/query_aggregates.cmo query/query.cmo query/query_parse.cmo
217  CQL_OBJECTS_RUN = query/query_run.cmo  #CQL_OBJECTS_RUN = query/query_run.cmo
218    CQL_OBJECTS= query/query_aggregates.cmo
219    CQL_OBJECTS_RUN=
220    
221  OBJECTS += $(CQL_OBJECTS)  OBJECTS += $(CQL_OBJECTS)
222    
223  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
224    
225  CDUCE = $(OBJECTS) driver/run.cmo $(CQL_OBJECTS_RUN)  OBJECTS += $(CQL_OBJECTS_RUN)
226  WEBIFACE  = $(OBJECTS) driver/examples.cmo driver/webiface.cmo  OBJECTS += driver/run.cmo
227  DTD2CDUCE = tools/dtd2cduce.cmo  CDUCE = $(OBJECTS) driver/start.cmo
228    
229  ALL_OBJECTS = $(OBJECTS) \  ALL_OBJECTS = $(OBJECTS) \
230   driver/run.cmo driver/examples.cmo driver/webiface.cmo \   driver/start.cmo driver/examples.cmo \
231   tools/dtd2cduce.cmo tools/validate.cmo \   driver/webiface.cmo driver/evaluator.cmo \
232     tools/validate.cmo \
233   $(ML_INTERFACE_OBJS) parser/cduce_curl.cmo \   $(ML_INTERFACE_OBJS) parser/cduce_curl.cmo \
234   parser/cduce_netclient.cmo \   parser/cduce_netclient.cmo \
235   runtime/cduce_expat.cmo \   runtime/cduce_expat.cmo runtime/cduce_pxp.cmo
236   $(CQL_OBJECTS_RUN)  
237  ALL_INTERFACES = schema/schema_types.mli  ALL_INTERFACES = schema/schema_types.mli
238    
239  DEPEND = $(ALL_OBJECTS:.cmo=.ml) $(ALL_OBJECTS:.cmo=.mli) $(ALL_INTERFACES)  DEPEND = $(ALL_OBJECTS:.cmo=.ml) $(ALL_OBJECTS:.cmo=.mli) $(ALL_INTERFACES)
# Line 241  Line 258 
258          @echo "Build $@"          @echo "Build $@"
259          $(HIDE)$(COMPILE) -a -o $@ cduce_lib.$(EXTENSION)          $(HIDE)$(COMPILE) -a -o $@ cduce_lib.$(EXTENSION)
260    
261    dtd2cduce: tools/dtd2cduce.ml
 webiface: $(WEBIFACE:.cmo=.$(EXTENSION))  
262          @echo "Build $@"          @echo "Build $@"
263          $(HIDE)$(LINK) -verbose $(INCLUDES) -o $@ $^ $(EXTRA_OPTS_WEBIFACE)          $(HIDE)$(OCAMLFIND) $(CAML) -o $@ -ccopt -static -package "$(PXP_PACK) cgi" -linkpkg $^
264    
265  dtd2cduce: $(DTD2CDUCE:.cmo=.$(EXTENSION))  cduce_validate: $(VALIDATE_OBJECTS:.cmo=.$(EXTENSION)) tools/validate.$(EXTENSION)
266          @echo "Build $@"          @echo "Build $@"
267          $(HIDE)$(LINK) $(INCLUDES) -o $@ $^          $(HIDE)$(LINK) $(INCLUDES) -o $@ $^
268    
269  validate: $(VALIDATE_OBJECTS:.cmo=.$(EXTENSION)) tools/validate.$(EXTENSION)  mlcduce_wrapper: $(OBJECTS) ocamliface/mlcduce_wrapper.ml
270          @echo "Build $@"          @echo "Build $@"
271          $(HIDE)$(LINK) $(INCLUDES) -o $@ $^          $(HIDE)$(CAMLC) -linkpkg $(INCLUDES) -o $@ odyl.cma camlp4.cma pr_o.cmo $^ $(EXTRA_LINK_OPTS)
272    
273  cdo2ml: ocamliface/cdo2ml.ml  cdo2ml: ocamliface/cdo2ml.ml
274          @echo "Build $@"          @echo "Build $@"
# Line 272  Line 288 
288          rm -f `find . -name "*~"`          rm -f `find . -name "*~"`
289          rm -f *.cmi *.cmo *.cma *.cmx *.a *.cmxa *.o *~ META          rm -f *.cmi *.cmo *.cma *.cmx *.a *.cmxa *.o *~ META
290          rm -f cduce$(EXE) ocamlprof.dump          rm -f cduce$(EXE) ocamlprof.dump
291          rm -f dtd2cduce$(EXE) webiface$(EXE) validate$(EXE) cdo2ml$(EXE)          rm -f dtd2cduce$(EXE) webiface$(EXE) cduce_validate$(EXE) \
292                    cdo2ml$(EXE) mlcduce_wrapper$(EXE) evaluator$(EXE)
293          rm -Rf prepro package          rm -Rf prepro package
294          rm -f web/www/*.html web/*~          rm -f web/www/*.html web/*~
295          rm -f web/*.cdo          rm -f web/*.cdo
296          rm -f configure.log          rm -f configure.log
297            rm -rf web/doc
298            rm -f META
299    
300  distclean: clean  distclean: clean
301          rm -f Makefile.conf          rm -f Makefile.conf
# Line 306  Line 325 
325    
326  include depend  include depend
327    
328  # CDuce-generated files  # Documentation
329    
330  driver/examples.ml: cduce web/examples/build.cd web/examples/examples.xml  doc: cduce web/site.cdo
331          (cd web/examples; ../../cduce build.cd --arg examples.xml)          mkdir -p web/doc
332            (cd web; ../cduce --run site.cdo --arg doc.xml -o doc)
 webpages: cduce web/site.cdo  
         (cd web; ../cduce --run site.cdo --arg site.xml)  
333    
334  web/site.cdo: cduce web/xhtml.cdo web/site.cd  web/site.cdo: cduce web/xhtml.cdo web/site.cd
335          ./cduce -I web/ --compile web/site.cd          ./cduce -I web/ --compile web/site.cd
# Line 320  Line 337 
337  web/xhtml.cdo: cduce web/xhtml.cd  web/xhtml.cdo: cduce web/xhtml.cd
338          ./cduce -I web/ --compile web/xhtml.cd          ./cduce -I web/ --compile web/xhtml.cd
339    
340  website: webpages webiface  install_doc: doc
341            $(HIDE)mkdir -p $(MANDIR)/man1
342  install_web: website          $(HIDE)(cd doc; $(MAKE) install INSTALL=$(INSTALL) MANDIR=$(MANDIR) HIDE=$(HIDE))
343          cp  web/www/*.html web/cduce.css  $(HTML_DIR)/          mkdir -p $(DOCDIR)/img
344          cp CHANGES  INSTALL INSTALL.WIN32 $(HTML_DIR)/          cp web/doc/*.html $(DOCDIR)/
345          cp webiface $(CGI_DIR)/cduce          cp CHANGES INSTALL INSTALL.WIN32 README AUTHORS LICENSE $(DOCDIR)/
346          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  
347    
348    
349  ### Pack OCaml modules for the CDuce/OCaml interface  ### Pack OCaml modules for the CDuce/OCaml interface

Legend:
Removed from v.1287  
changed lines
  Added in v.1628

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