####################################################################### # # # OCamlP3l # # # # (C) 2004-2007 # # Roberto Di Cosmo (dicosmo@dicosmo.org) # # Zheng Li (zli@lip6.fr) # # Pierre Weis (Pierre.Weis@inria.fr) # # Francois Clement (Francois.Clement@inria.fr) # # # # Based on original Ocaml P3L System # # (C) 1997 by # # Roberto Di Cosmo (dicosmo@ens.fr) # # Marco Danelutto (marcod@di.unipi.it) # # Xavier Leroy (Xavier.Leroy@inria.fr) # # Susanna Pelagatti (susanna@di.unipi.it) # # # # This program is free software; you can redistribute it and/or # # modify it under the terms of the GNU Library General Public License # # as published by the Free Software Foundation; either version 2 # # of the License, or (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU Library General Public License for more details. # # # ####################################################################### # $Id: Makefile.distrib,v 1.17 2007-01-24 14:34:18 weis Exp $ # Just for $(PACKAGE) maintainers, distribution of the software. # Usage: # make -f Makefile.distrib distribute # Need an INSTALL and README file in the main directory. # Need a doc directory where the documentation has been written, # presumably in HTML with an index.html file. This directory is copied # onto the WEB site directory of the package, as mentioned in # $(WEBSITEDIR). Presumably the doc directory contains 2 files named # eng.htm and fra.htm that respectively contain the English and French # documentation. # A tar ball file with the source files is also constructed and moved # into the $(FTPDIR) directory. PACKAGEROOT = bazar-ocaml/$(PACKAGE) WEBSITEDIR = /net/yquem/infosystems/www/bazaar/$(PACKAGE) FTPSITEDIR = /net/yquem/infosystems/ftp/bazaar/$(PACKAGE) FTPSITEDIR2 = /net/pauillac/infosystems/ftp/cristal/caml-light/bazar-ocaml/$(PACKAGE) YEAR = 2007 OLDYEAR = 2006 MAINVERSION = 2 SUBVERSION = 03 PATCHLEVEL = 0 VERSION = $(MAINVERSION).$(SUBVERSION) FULLVERSION = $(VERSION) OLDVERSION = 2.02 PACKAGEFULLNAME = $(PACKAGE)-$(FULLVERSION) CVSRELEASETAG = $(PACKAGE)-$(MAINVERSION)_$(SUBVERSION)_$(PATCHLEVEL) ANNOUNCEFILE = Announce-$(FULLVERSION) #PACKAGEVERSIONFILES = Source/version.ml #DOCVERSIONFILES = doc_src/Includes/env MANFILES = .PHONY: fake distribute package website ftp ftp2 tag retag untag announce version \ documentation release fake: @echo @echo 'This Makefile is used to distribute the software.' @echo 'Read it to understand how to use it!' @echo distribute: package website ftp ftp2 tag announce #version package: clean-all all documentation release clean-all:: cd doc_src; $(MAKE) $@ $(RM) doc release documentation: # Make documentation and test before release cd doc_src; $(MAKE) all # Build a clean documentation directory for distribution cd doc_src; $(MAKE) docdir release: # Then clean the old stuff $(RM) release $(MKDIR) release # And check out a brand new version, # clean it # copy the documentation in it cd release; $(CVS) -d "`cat ../CVS/Root`" co -P $(PACKAGEROOT); \ find . -name CVS | xargs $(RM); \ find . -name "*cvsignore*" | xargs $(RM); \ find . -name "banner*" | xargs $(RM); \ find . -name ".depend*" | xargs $(RM); \ find . -name Makefile.distrib | xargs $(RM); \ $(RM) $(PACKAGEROOT)/doc_src; \ $(CP) ../doc $(PACKAGEROOT) website: # Build the Web site $(RM) $(WEBSITEDIR).new $(MKDIR) $(WEBSITEDIR).new $(CP) release/$(PACKAGEROOT)/doc/* $(WEBSITEDIR).new; $(CHGRP) caml $(WEBSITEDIR).new $(CHMOD) ug+w $(WEBSITEDIR).new $(MV) $(WEBSITEDIR) $(WEBSITEDIR).old $(MV) $(WEBSITEDIR).new $(WEBSITEDIR) $(RM) $(WEBSITEDIR).old $(RM) doc ftp: # Build the FTP site # Copy the legalease to $(FTPSITEDIR) $(MKDIR) $(FTPSITEDIR) $(CP) release/$(PACKAGEROOT)/README $(FTPSITEDIR) $(CP) release/$(PACKAGEROOT)/COPYING $(FTPSITEDIR) $(CP) release/$(PACKAGEROOT)/LICENSE $(FTPSITEDIR) # Give the release its versionning name cd release; mv $(PACKAGEROOT) bazar-ocaml/$(PACKAGEFULLNAME); \ # Build the archive and move it in the proper ftp site cd release/bazar-ocaml; \ $(TARC) $(PACKAGEFULLNAME).tgz $(PACKAGEFULLNAME); \ $(MV) $(PACKAGEFULLNAME).tgz $(FTPSITEDIR) $(CP) $(FTPSITEDIR)/$(PACKAGEFULLNAME).tgz $(WEBSITEDIR)/ $(RM) release ftp2: # Build the FTP2 site # Copy the FTP site to $(FTPSITEDIR2) $(MKDIR) $(FTPSITEDIR2) $(CP) $(FTPSITEDIR)/* $(FTPSITEDIR2)/ tag: $(CVS) rtag -R $(CVSRELEASETAG) bazar-ocaml/$(PACKAGE) retag: $(CVS) rtag -R -F $(CVSRELEASETAG) bazar-ocaml/$(PACKAGE) untag: $(RM) ./release $(CVS) rtag -R -d $(CVSRELEASETAG) bazar-ocaml/$(PACKAGE) announce: mail -n -s "New release of $(PACKAGE)" \ caml-announce@inria.fr < $(ANNOUNCEFILE) # Automatic handling of versionning #version: # for i in $(PACKAGEVERSIONFILES) $(DOCVERSIONFILES); do \ # echo $$i; \ # $(MV) $$i $$i~; \ # sed -e '/ersion/s/$(OLDVERSION)/$(VERSION)/' $$i~ | \ # sed -e '/year/s/$(OLDYEAR)/$(YEAR)/' > $$i; \ # done include makefile