#! /bin/sh # # BEGIN LICENSE BLOCK # Version: CMPL 1.1 # # The contents of this file are subject to the Cisco-style Mozilla Public # License Version 1.1 (the "License"); you may not use this file except # in compliance with the License. You may obtain a copy of the License # at www.eclipse-clp.org/license. # # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. # # The Original Code is The ECLiPSe Constraint Logic Programming System. # The Initial Developer of the Original Code is Cisco Systems, Inc. # Portions created by the Initial Developer are # Copyright (C) 2000-2006 Cisco Systems, Inc. All Rights Reserved. # # Contributor(s): IC-Parc, Imperial College London # # END LICENSE BLOCK # # IC-Parc, $Id: BUILD_ROTD,v 1.18 2015/05/05 14:47:13 jschimpf Exp $ # # Build ECLiPSe Release-Of-The-Day. # # # Directory structure used: # # ...// Top-level directory # rotd-/ Release of the day # build/ Initial build of checked-out sources # archives/ Packed distribution archives # logs/ Log files # results/ Test result files # milestones/ Files marking successfully completed stages # / Architecture-specific stuff # install/ Installation from archive # test/ Test of installation # # # Operational plan: # # Check out sources # Build from these sources each specified architecture # Build documentation # Generate distribution archives for each architecture # For each architecture # Install distribution archive # Check out tests # Run tests # Update stable archives and symlinks # # # Tags ("milestones") to mark successful completion of stages: # # checked_out_sources # checked_out_tests # built_ # built_documentation # built_archives # installed_(all|)_(standard|runtime) # tested_(all|)_(standard|runtime)_(standalone|java)_(|) # incremented_build_number # committed_build_number # packed_source # updated_symlinks # copied_to_ftp_ # # Note that we don't milestone cleaning up, since we probably want to re-do # that anyway. # # XXX - TODO: add dependencies, so that if, for instance, an architecture is # built, then the archives will get re-built, any tests for that achitecture # will be re-done, etc. # # XXX - Note that cleaning up might not work properly: the machines chosen # for testing might be different to last time, in which case the old # directories will be left lying around. # # XXX - Note that if the previous attempt cleaned up, certain directories # might be missing that we need this time, but that we don't re-create # because their creation worked fine last time (e.g. the test template # directory). --- We handle the test template directory issue by no longer # deleting it when cleaning up. Note that re-creating it if such is # necessary is undesirable since we may not get the same version out of the # repository. # # To prematurely abort a running build, create a file 'abort' in the # build's toplevel directory. This will have a similar effect to # milestones, i.e. all subsequent stages will be skipped. # #set -x usage="\ Usage: $0 [options] [architectures] Options: --patch Build a patch version using the specified tag (rather than a rotd using the current version on the main branch). --date Build a version using sources from the given date, rather than the current time. --last-sucessful Re-build the version tagged last_successful_ or the last successful main branch. You cannot give a --date or --increment-buildnum option at the same time. --clean-up After building, testing, etc., delete anything that probably won't be needed again. (default) --no-clean-up Don't delete anything. --increment-buildnum If all build and tests successful, increment the build number in the repository. --no-increment-buildnum Do not increment the build number. (default) --install-archives If an architecture successfully builds, tests, etc., copy the corresponding archive files to the main archive directory. (default) --no-install-archives Don't copy any archive files to the main archive directory. --jeclipse-tests If an architecture built a \"jeclipse\" executable, run the tests using that as well. (default) --no-jeclipse-tests Don't run any tests using \"jeclipse\". --cvsroot The location of the ECLiPSe CVS repository. --umask Umask to use. (default 022) --nice Run remote jobs with the specified nice value. --rotd-dir The location where ROTDs are installed. --local-rotd-dir Where the ROTD directory appears on the local machine, if different from the above. This is primarily intended for when this script is running under Windows (using Cygwin or the like) and the filesystem is not arranged the same as on the Unix machines. In this case the directory specification should be of the form \":/\", where is the Windows drive letter. --rotd-name The name to use for the rotd (rather than constructing it from the date). --build-script