/[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 1181 by abate, Tue Jul 10 18:29:02 2007 UTC revision 1187 by abate, Tue Jul 10 18:29:32 2007 UTC
# Line 1  Line 1 
1  include Makefile.conf  include Makefile.conf
2  VERSION = 0.2.0-rc1  VERSION = 0.2.0-rc1
3    
4    all: cduce dtd2cduce validate cdo2ml cduce_lib.cma
5    ifeq ($(NATIVE),true)
6    all: cduce_lib.cmxa
7    endif
8    
9  PACKAGES = pxp-engine pxp-lex-iso88591 ulex camlp4 num cgi pcre netstring  PACKAGES = pxp-engine pxp-lex-iso88591 ulex camlp4 num cgi pcre netstring
10  ifeq ($(PXP_WLEX), true)  ifeq ($(PXP_WLEX), true)
11    PACKAGES += pxp-wlex-utf8    PACKAGES += pxp-wlex-utf8
# Line 8  Line 13 
13    PACKAGES += pxp-lex-utf8    PACKAGES += pxp-lex-utf8
14  endif  endif
15    
16    
17    # Call make with VERBOSE=true to get a trace of commands
18    
19    VERBOSE=false
20    
21    ifneq ($(VERBOSE), true)
22       HIDE=@
23    else
24       HIDE=
25    endif
26    
27  # webiface can be made static to be able to move it more easily  # webiface can be made static to be able to move it more easily
28  # (to compile it on a machine which is not the web server)  # (to compile it on a machine which is not the web server)
29  # Seems to be some problems with statically linking curl  # Seems to be some problems with statically linking curl
# Line 18  Line 34 
34    -symbol build_date=\"$(shell date +%Y-%m-%d)\" \    -symbol build_date=\"$(shell date +%Y-%m-%d)\" \
35    -symbol session_dir=\"$(SESSION_DIR)\"    -symbol session_dir=\"$(SESSION_DIR)\"
36    
 ifeq ($(NATIVE), true)  
         SYNTAX += -symbol ocaml_compiler=\"native\"  
 else  
         SYNTAX += -symbol ocaml_compiler=\"bytecode\"  
 endif  
   
 ifeq ($(EXPAT), true)  
   PACKAGES += expat  
   SYNTAX += -symbol EXPAT=  
 endif  
   
 ifeq ($(CURL), true)  
   PACKAGES += curl  
   SYNTAX += -symbol CURL=  
 endif  
   
 ifeq ($(NETCLIENT), true)  
   PACKAGES += netclient  
   SYNTAX += -symbol NETCLIENT=  
 endif  
   
37  SYNTAX_PARSER = -syntax camlp4o $(SYNTAX:%=-ppopt %)  SYNTAX_PARSER = -syntax camlp4o $(SYNTAX:%=-ppopt %)
38    
39  CAMLC_P = ocamlc -g  CAMLC_P = ocamlc -g
# Line 72  Line 67 
67    EXTENSION_LIB = cmxa    EXTENSION_LIB = cmxa
68    COMPILE = $(CAMLOPT)    COMPILE = $(CAMLOPT)
69    LINK = $(CAMLOPT) -linkpkg gramlib.cmxa    LINK = $(CAMLOPT) -linkpkg gramlib.cmxa
70      SYNTAX += -symbol ocaml_compiler=\"bytecode\"
71  else  else
72    EXTENSION = cmo    EXTENSION = cmo
73    EXTENSION_LIB = cma    EXTENSION_LIB = cma
74    COMPILE = $(CAMLC)    COMPILE = $(CAMLC)
75    LINK = $(CAMLC) -custom -linkpkg gramlib.cma    LINK = $(CAMLC) -custom -linkpkg gramlib.cma
76      SYNTAX += -symbol ocaml_compiler=\"native\"
77  endif  endif
78    
 ifneq ($(ML_INTERFACE), false)  
   SYNTAX += -symbol ML_INTERFACE=  
   ML_LIB = oCaml_all.$(EXTENSION_LIB)  
   ML_INTERFACE_OBJ = ocamliface/mltypes.cmo ocamliface/mlstub.cmo  
 else  
   ML_INTERFACE_OBJ =  
 endif  
79    
80  INSTALL := $(shell which install)  INSTALL := $(shell which install)
81    
 all: cduce dtd2cduce validate cdo2ml  
   
 ifneq ($(ML_INTERFACE), false)  
 all: cDuce_all.cma  
 endif  
82    
83  ifeq ($(NATIVE),true)  ifeq ($(NATIVE),true)
84  all: cDuce_all.cmxa  cduce_lib.cma:
85  cDuce_all.cma:          $(HIDE)$(MAKE) NATIVE=false $@
         $(MAKE) NATIVE=false $@  
86  endif  endif
87    
88  install: all install_lib  install: all install_lib
# Line 111  Line 95 
95          $(INSTALL) -m644 doc/validate.1 $(MANDIR)/man1/          $(INSTALL) -m644 doc/validate.1 $(MANDIR)/man1/
96    
97  install_lib:  install_lib:
98  ifneq ($(ML_INTERFACE), false)          @echo "Build META"
99          @echo "--> Build META"          $(HIDE)echo 'version="$(VERSION)"' > META
100          @echo 'version="$(VERSION)"' > META          $(HIDE)echo 'requires="$(PACKAGES) camlp4.gramlib"' >> META
101          @echo 'requires="$(PACKAGES) camlp4.gramlib"' >> META          $(HIDE)echo 'description="Runtime support for CDuce"' >> META
102          @echo 'description="Runtime support for CDuce"' >> META          $(HIDE)echo 'archive(byte)="cduce_lib.cma"' >> META
103          @echo 'archive(byte)="oCaml_all.cma,cDuce_all.cma"' >> META          $(HIDE)echo 'archive(native)="cduce_lib.cmxa"' >> META
         @echo 'archive(native)="oCaml_all.cmxa,cDuce_all.cmxa"' >> META  
104          -$(OCAMLFIND) remove cduce          -$(OCAMLFIND) remove cduce
105          -$(OCAMLFIND) install cduce META \          -$(OCAMLFIND) install cduce META \
106           cDuce_all.cmi oCaml_all.cmi \           cduce_lib.cmi cduce_lib.cmi \
107           $(wildcard *.cma) $(wildcard *.cmxa) $(wildcard *.a)           $(wildcard *.cma) $(wildcard *.cmxa) $(wildcard *.a)
 endif  
108    
109  uninstall:  uninstall:
110          rm -f $(BINDIR)/cduce$(EXE) $(BINDIR)/dtd2cduce$(EXE) \          rm -f $(BINDIR)/cduce$(EXE) $(BINDIR)/dtd2cduce$(EXE) \
# Line 153  Line 135 
135  # Objects to build  # Objects to build
136    
137  OBJECTS = \  OBJECTS = \
138     driver/config.cmo \
139   misc/stats.cmo \   misc/stats.cmo \
140   misc/serialize.cmo misc/custom.cmo \   misc/serialize.cmo misc/custom.cmo \
141   misc/state.cmo misc/pool.cmo misc/encodings.cmo misc/bool.cmo \   misc/state.cmo misc/pool.cmo misc/encodings.cmo misc/bool.cmo \
# Line 186  Line 169 
169   compile/operators.cmo \   compile/operators.cmo \
170   \   \
171   types/builtin.cmo \   types/builtin.cmo \
172   driver/librarian.cmo   driver/librarian.cmo \
173     driver/cduce.cmo
174    
175    ML_INTERFACE_OBJS = \
176      ocamliface/caml_cduce.cmo ocamliface/mltypes.cmo ocamliface/mlstub.cmo
177    
178    ifneq ($(ML_INTERFACE), false)
179      OBJECTS += $(ML_INTERFACE_OBJS)
180    endif
181    
182    ifneq ($(CURL), false)
183      OBJECTS += parser/cduce_curl.cmo
184      PACKAGES += curl
185    endif
186    ifneq ($(NETCLIENT), false)
187      OBJECTS += parser/cduce_netclient.cmo
188      PACKAGES += netclient
189    endif
190    
191    ifeq ($(EXPAT), true)
192      OBJECTS += runtime/cduce_expat.cmo
193      PACKAGES += expat
194    else
195      OBJECTS += runtime/cduce_pxp.cmo
196    endif
197    
 OBJECTS += $(ML_INTERFACE_OBJ) driver/cduce.cmo  
198    
199  CQL_OBJECTS= query/query.cmo query/query_parse.cmo  CQL_OBJECTS= query/query.cmo query/query_parse.cmo
200  CQL_OBJECTS_RUN = query/query_run.cmo  CQL_OBJECTS_RUN = query/query_run.cmo
# Line 205  Line 211 
211   $(CQL_OBJECTS_RUN)   $(CQL_OBJECTS_RUN)
212  ALL_INTERFACES = schema/schema_types.mli  ALL_INTERFACES = schema/schema_types.mli
213    
 ifneq ($(ML_INTERFACE), false)  
   ALL_INTERFACES += ocamliface/mltypes.mli ocamliface/mlstub.mli  
 endif  
   
214  DEPEND = $(ALL_OBJECTS:.cmo=.ml) $(ALL_OBJECTS:.cmo=.mli) $(ALL_INTERFACES)  DEPEND = $(ALL_OBJECTS:.cmo=.ml) $(ALL_OBJECTS:.cmo=.mli) $(ALL_INTERFACES)
215    
216  INCLUDES = $(DIRS:%=-I %)  INCLUDES = $(DIRS:%=-I %)
217    
218  cduce: $(CDUCE:.cmo=.$(EXTENSION))  cduce: $(CDUCE:.cmo=.$(EXTENSION))
219          $(LINK) $(INCLUDES) -o $@ $(ML_LIB) $^ $(EXTRA_LINK_OPTS)          @echo "Build $@"
220            $(HIDE)$(LINK) $(INCLUDES) -o $@ $^ $(EXTRA_LINK_OPTS)
221    
222  cduce_packed.ml: $(CDUCE:.cmo=.ml)  cduce_packed.ml: $(CDUCE:.cmo=.ml)
223          rm -f cduce_packed.ml          rm -f cduce_packed.ml
224          ocaml tools/pack.ml $^ > cduce_packed.ml          ocaml tools/pack.ml $^ > cduce_packed.ml
225    
226  cduce_packed: cduce_packed.$(EXTENSION)  cduce_packed: cduce_packed.$(EXTENSION)
227          $(LINK) $(INCLUDES) -o $@ $(ML_LIB) $^ $(EXTRA_LINK_OPTS)          $(LINK) $(INCLUDES) -o $@ $^ $(EXTRA_LINK_OPTS)
   
228    
 cDuce_all.$(EXTENSION_LIB): $(OBJECTS:.cmo=.$(EXTENSION))  
         @echo "--> Build $@"  
         @$(COMPILE) -o cDuce_all.$(EXTENSION) -pack $^  
         @$(COMPILE) -a -o $@ cDuce_all.$(EXTENSION)  
229    
230    cduce_lib.$(EXTENSION_LIB): $(OBJECTS:.cmo=.$(EXTENSION))
231            @echo "Build $@"
232            $(HIDE)$(COMPILE) -o cduce_lib.$(EXTENSION) -pack $^
233            $(HIDE)$(COMPILE) -a -o $@ cduce_lib.$(EXTENSION)
234    
 oCaml_all.$(EXTENSION_LIB):  
         cd cdo2cmo; $(MAKE) PREFIX=$(ML_MODULES) MODEL=$(ML_INTERFACE) $@  
235    
236  webiface: $(WEBIFACE:.cmo=.$(EXTENSION))  webiface: $(WEBIFACE:.cmo=.$(EXTENSION))
237          $(LINK) -verbose $(INCLUDES) -o $@ $(ML_LIB) $^ $(EXTRA_OPTS_WEBIFACE)          @echo "Build $@"
238            $(HIDE)$(LINK) -verbose $(INCLUDES) -o $@ $^ $(EXTRA_OPTS_WEBIFACE)
239    
240  dtd2cduce: $(DTD2CDUCE:.cmo=.$(EXTENSION))  dtd2cduce: $(DTD2CDUCE:.cmo=.$(EXTENSION))
241          $(LINK) $(INCLUDES) -o $@ $^          @echo "Build $@"
242            $(HIDE)$(LINK) $(INCLUDES) -o $@ $^
243    
244  validate: $(VALIDATE_OBJECTS:.cmo=.$(EXTENSION)) tools/validate.$(EXTENSION)  validate: $(VALIDATE_OBJECTS:.cmo=.$(EXTENSION)) tools/validate.$(EXTENSION)
245          $(LINK) $(INCLUDES) -o $@ $^          @echo "Build $@"
246            $(HIDE)$(LINK) $(INCLUDES) -o $@ $^
247    
248  cdo2ml: ocamliface/cdo2ml.ml  cdo2ml: ocamliface/cdo2ml.ml
249          ocamlc -o $@ -pp camlp4o -I +camlp4 camlp4.cma pr_o.cmo $^          @echo "Build $@"
250            $(HIDE)ocamlc -o $@ -pp camlp4o -I +camlp4 camlp4.cma pr_o.cmo $^
251    
252  .PHONY: compute_depend  .PHONY: compute_depend
253  compute_depend: $(DEPEND_OCAMLDEP)  compute_depend: $(DEPEND_OCAMLDEP)
# Line 255  Line 259 
259          for i in $(CLEAN_DIRS); do \          for i in $(CLEAN_DIRS); do \
260          (cd $$i; rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa *~); \          (cd $$i; rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa *~); \
261          done          done
262          (cd expat; $(MAKE) clean)          rm -f ocamliface/cmi2ml ocamliface/asttypes.ml
263          rm -f `find . -name "*~"`          rm -f `find . -name "*~"`
264          rm -f *.cmi *.cmo *.cma *.cmx *.a *.cmxa *.o *~ META          rm -f *.cmi *.cmo *.cma *.cmx *.a *.cmxa *.o *~ META
265          rm -f cduce$(EXE) ocamlprof.dump          rm -f cduce$(EXE) ocamlprof.dump
# Line 267  Line 271 
271  distclean: clean  distclean: clean
272          rm -f Makefile.conf          rm -f Makefile.conf
273    
274  $(ML_INTERFACE_OBJ:.cmo=.$(EXTENSION)): oCaml_all.$(EXTENSION_LIB)  ocamliface/mltypes.$(EXTENSION)): ocamliface/caml_cduce.$(EXTENSION)
275    
276  $(ALL_OBJECTS:.cmo=.$(EXTENSION)): misc/q_symbol.cmo  $(ALL_OBJECTS:.cmo=.$(EXTENSION)): misc/q_symbol.cmo
277  $(ALL_INTERFACES): misc/q_symbol.cmo  $(ALL_INTERFACES): misc/q_symbol.cmo
# Line 275  Line 279 
279  .SUFFIXES: .ml .mli .cmo .cmi .cmx  .SUFFIXES: .ml .mli .cmo .cmi .cmx
280    
281  misc/q_symbol.cmo: misc/q_symbol.ml  misc/q_symbol.cmo: misc/q_symbol.ml
282          $(CAMLC) -c -pp 'camlp4o pa_extend.cmo q_MLast.cmo' $<          @echo "Build $@"
283            $(HIDE)$(CAMLC) -c -pp 'camlp4o pa_extend.cmo q_MLast.cmo' $<
284    
285  .ml.cmo:  .ml.cmo:
286          $(CAMLC) -c $(INCLUDES) $(SYNTAX_PARSER) $<          @echo "Build $@"
287            $(HIDE)$(CAMLC) -c $(INCLUDES) $(SYNTAX_PARSER) $<
288    
289  .ml.cmx:  .ml.cmx:
290          $(CAMLOPT) -c $(SYNTAX_PARSER) $(INCLUDES) $<          @echo "Build $@"
291            $(HIDE)$(CAMLOPT) -c $(SYNTAX_PARSER) $(INCLUDES) $<
292    
293  .mli.cmi:  .mli.cmi:
294          $(CAMLC) -c $(SYNTAX_PARSER) $(INCLUDES) $<          @echo "Build $@"
295            $(HIDE)$(CAMLC) -c $(SYNTAX_PARSER) $(INCLUDES) $<
296    
297  include depend  include depend
298    
# Line 313  Line 321 
321          fi;          fi;
322          cp web/img/*.*  $(HTML_DIR)/img          cp web/img/*.*  $(HTML_DIR)/img
323    
324    
325    ### Pack OCaml modules for the CDuce/OCaml interface
326    
327    
328    ocamliface/caml_cduce.cmo:
329            @cd ocamliface; \
330            $(MAKE) PREFIX=$(ML_MODULES) MODEL=$(ML_INTERFACE) \
331                    HIDE=$(HIDE) caml_cduce.cmo
332    
333    ocamliface/caml_cduce.cmx:
334            @cd ocamliface; \
335            $(MAKE) PREFIX=$(ML_MODULES) MODEL=$(ML_INTERFACE) \
336                    HIDE=$(HIDE) caml_cduce.cmx

Legend:
Removed from v.1181  
changed lines
  Added in v.1187

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