]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/pxp/netstring/Makefile
Initial revision
[helm.git] / helm / DEVEL / pxp / netstring / Makefile
diff --git a/helm/DEVEL/pxp/netstring/Makefile b/helm/DEVEL/pxp/netstring/Makefile
new file mode 100644 (file)
index 0000000..98f9ef0
--- /dev/null
@@ -0,0 +1,151 @@
+# make all:            make bytecode archive
+# make opt:            make native archive
+# make install:        install bytecode archive, and if present, native archive
+# make uninstall:      uninstall package
+# make clean:          remove intermediate files
+# make distclean:      remove any superflous files
+# make release:        cleanup, create archive, tag CVS module 
+#                      (for developers)
+
+#----------------------------------------------------------------------
+# specific rules for this package:
+
+OBJECTS  = netstring_str.cmo \
+           netencoding.cmo netbuffer.cmo netstream.cmo \
+          mimestring.cmo cgi.cmo base64.cmo \
+           nethtml_scanner.cmo nethtml.cmo \
+          neturl.cmo \
+          netmappings.cmo netconversion.cmo
+XOBJECTS = $(OBJECTS:.cmo=.cmx)
+ARCHIVE  = netstring.cma
+XARCHIVE = netstring.cmxa
+
+NAME     = netstring
+REQUIRES = str
+
+ISO_MAPPINGS   = mappings/iso*.unimap
+OTHER_MAPPINGS = mappings/cp*.unimap \
+                 mappings/adobe*.unimap \
+                mappings/jis*.unimap \
+                 mappings/koi*.unimap \
+                 mappings/mac*.unimap \
+                 mappings/windows*.unimap
+
+all: $(ARCHIVE) \
+     netstring_top.cmo netstring_mt.cmo \
+     netmappings_iso.cmo netmappings_other.cmo
+
+opt: $(XARCHIVE) \
+     netstring_mt.cmx \
+     netmappings_iso.cmx netmappings_other.cmx
+
+
+$(ARCHIVE): $(OBJECTS) 
+       $(OCAMLC) -a -o $(ARCHIVE) $(OBJECTS)
+
+$(XARCHIVE): $(XOBJECTS) 
+       $(OCAMLOPT) -a -o $(XARCHIVE) $(XOBJECTS)
+
+netmappings_iso.ml:
+       $(MAKE) -C tools 
+       test ! -d mappings || tools/unimap_to_ocaml/unimap_to_ocaml \
+               -o netmappings_iso.ml $(ISO_MAPPINGS)
+
+netmappings_other.ml:
+       $(MAKE) -C tools 
+       test ! -d mappings || tools/unimap_to_ocaml/unimap_to_ocaml \
+               -o netmappings_other.ml $(OTHER_MAPPINGS)
+
+#----------------------------------------------------------------------
+# general rules:
+
+OPTIONS   =
+OCAMLC    = ocamlc $(DEBUG) $(OPTIONS) $(ROPTIONS)
+OCAMLOPT  = ocamlopt $(OPTIONS) $(ROPTIONS)
+OCAMLLEX  = ocamllex
+OCAMLDEP  = ocamldep $(OPTIONS)
+OCAMLFIND = ocamlfind
+
+DEBUG  =
+# Invoke with: make DEBUG=-g
+
+depend: *.ml *.mli
+       $(OCAMLDEP) *.ml *.mli >depend
+
+depend.pkg: Makefile
+       $(OCAMLFIND) use -p ROPTIONS= $(REQUIRES) >depend.pkg
+
+.PHONY: install
+install: all
+       { test ! -f $(XARCHIVE) || extra="*.cmxa *.a netstring_mt.cmx netmappings_iso.cmx netmappings_other.cmx netstring_mt.o netmappings_iso.o netmappings_other.o"; }; \
+       $(OCAMLFIND) install $(NAME) *.mli *.cmi *.cma netstring_top.cmo netstring_mt.cmo netmappings_iso.cmo netmappings_other.cmo META $$extra
+
+.PHONY: install-cgi
+install-cgi: 
+       $(OCAMLFIND) install cgi compat-cgi/META
+
+
+.PHONY: install-base64
+install-base64: 
+       $(OCAMLFIND) install base64 compat-base64/META
+
+
+.PHONY: uninstall
+uninstall:
+       $(OCAMLFIND) remove $(NAME)
+
+.PHONY: uninstall-cgi
+uninstall-cgi:
+       $(OCAMLFIND) remove cgi
+
+.PHONY: uninstall-base64
+uninstall-base64:
+       $(OCAMLFIND) remove base64
+
+.PHONY: clean
+clean:
+       rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
+       test ! -d mappings || rm -f netmappings_iso.ml netmappings_other.ml
+
+.PHONY: distclean
+distclean:
+       rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
+       rm -f *~ depend depend.pkg compat-cgi/*~ compat-base64/*~
+       $(MAKE) -C tests distclean
+       $(MAKE) -C doc distclean
+       $(MAKE) -C tools distclean
+
+RELEASE: META
+       awk '/version/ { print substr($$3,2,length($$3)-2) }' META >RELEASE
+
+.PHONY: dist
+dist: RELEASE
+       r=`head -1 RELEASE`; cd ..; gtar czf $(NAME)-$$r.tar.gz --exclude='*/CVS*' --exclude="*/depend.pkg" --exclude="*/depend" --exclude="*/doc/common.xml" --exclude="*/doc/config.xml" --exclude="*/doc/readme.dtd" --exclude="*/Mail" --exclude="*/mappings" $(NAME)
+
+.PHONY: tag-release
+tag-release: RELEASE
+       r=`head -1 RELEASE | sed -e s/\\\./-/g`; cd ..; cvs tag -F $(NAME)-$$r $(NAME)
+
+.PHONY: release
+release: distclean
+       test -f netmappings_iso.ml
+       test -f netmappings_other.ml
+       $(MAKE) tag-release
+       $(MAKE) dist
+
+.SUFFIXES: .cmo .cmi .cmx .ml .mli .mll
+
+.ml.cmx:
+       $(OCAMLOPT) -c -thread $<
+
+.ml.cmo:
+       $(OCAMLC) -c -thread $<
+
+.mli.cmi:
+       $(OCAMLC) -c $<
+
+.mll.ml:
+       $(OCAMLLEX) $<
+
+include depend
+include depend.pkg