# 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) 2006 Cisco Systems, Inc.  All Rights Reserved.
# 
# Contributor(s): 
# 
# END LICENSE BLOCK

Adding new libraries to the ECLiPSe distribution
-------------------------------------------------

Author: Joachim Schimpf
Date: 2002-01-30



There are 3 categories of libraries:

    public source (can be distributed),
    private source (internal distribution for IC-Parc),
    no source (never ends up in any eclipse installation).

In addition, any of the 3 library categories can be "development
system only", which simply means they don't go in the runtime system
package.  The table shows which category goes into which distribution
package in what form:


		runtime	    devel.	source	    private	for
		system	    system	distrib.    icparc	example
						    only
		eclipse_rt  eclipse_basic	    eclipse_private
					eclipse_source

Category

public source	.eco	    .eco	.ecl	    -		calendar
dev+rt

public source	-	    .eco	.ecl	    -		document
dev only

private source	.eco	    .eco	-	    .ecl	ic
dev+rt

private source	-	    .eco	-	    .ecl	pretty_printer
dev only

no source	.eco	    .eco	-	    -		kernel
dev+rt

no source	-	    .eco	-	    -		tracer_tcl
dev only




Build/Pack process:

1.  The source of a library is initially located somewhere in the
    Eclipse source tree (under CVS control), e.g. in Eclipse/Kernel/lib/
    or Eclipse/icparc_solvers/.

2. Every source directory has an INSTALL script (which often invokes
    make). This script is supposed to
    - create .eco files in Eclipse/lib, if needed for any distribution
    - copy the source to Eclipse/lib, if needed for any distribution

3. The Eclipse/lib directory should then contain the union of all the
    library files we want to go into one of the distribution packages.

4. Packing: The Eclipse/PACK script packs 4 subsets:

    - eclipse_rt.tgz		the runtime system
    - eclipse_basic.tgz		the development system
    - eclipse_source.tgz	the public sources
    - eclipse_private.tgz	extra stuff for icparc only

   The contents of eclipse_rt.tgz is determined by the positive-list
    - eclipse_rt.lst

   The contents of eclipse_private.tgz is determined by the positive-list
    - eclipse_private.lst

   The contents of eclipse_source.tgz is all sources with the exception of
    - what's listed in eclipse_private.lst
    - everything eplex-related (packed separately)
    - pteclipse licensing stuff (only in runtime)

   The contents of eclipse_basic.tgz is everything with the exception of
    - what's listed in eclipse_private.lst
    - the sources in eclipse_source.tgz
    - everything eplex-related (packed separately)
    - pteclipse licensing stuff (only in runtime)

   Eplex is packed separately in several versions (one for each Cplex/Xpress
   version) under names like if_{xpress,cplex}XY.tgz, without sources.


Where to mention the library files:


			INSTALL/	eclipse_rt.lst	eclipse_private.lst
			Makefile
Category

public source		.eco.ecl	.eco		-
dev+rt

public source		.eco.ecl	-		-
dev only

private	source		.eco.ecl	.eco		.ecl
dev+rt

private	source		.eco.ecl	-		.ecl
dev only

no source		.eco		.eco		-
dev+rt

no source		.eco		-		-
dev only




