This file includes instructions for porting ICE on platforms
other than SPARC/SUN and OS2/PS2.

Here "ICE" means the full pathname to the ice directory.
"PORT" means the machine/os you are porting ice to.

0. Create config files 

   In order to generate the ice Makefiles from the Imakefiles, you need
to create the files PORT.cf in the directories ICE/pisces/config and
ICE/cool/config where "PORT" is the new machine/os type you are porting
ice to.  I suggest that you start with mips.cf and edit reference to MIPS
to the new machine type.  This new file might need different "rules"
macros. See os2.cf for examples.  If this is a UNIX based port, you
probably will not need additional macros or definitions.

    cd ICE/pisces/config
    cp mips.cf PORT.cf
    ;; edit references of MIPS in PORT.cf
    
    cd ICE/cool/config
    cp mips.cf PORT.cf
    ;; edit references of MIPS in PORT.cf

0.1 Create empty directories

   cd ICE  # ICE here means the full pathname to the ice directory
   mkdir bin include include/cool lib lib/PORT

1. Bootstrap

   After creating the .cf files, you will need to create the pimake and
cpp executables which are used to create Makefiles from the Imakefiles
under ice.

   cd ICE/pisces/pimake
   cp bootstrap.sparc bootstrap.PORT
   ;; edit bootstrap.PORT to refer to PORT
   ;; if maintaining RCS remove  #define RCSDependFlag
   make -f bootstrap.PORT install clean TOP=ICE

   cd ICE/pisces/cpp
   cp bootstrap.sparc bootstrap.PORT
   ;; edit bootstrap.PORT to refer to PORT
   ;; if maintaining RCS remove  #define RCSDependFlag
   make -f bootstrap.PORT install clean TOP=ICE

   set path=(/ICE/bin $path) # set path to include the /ICE/bin directory

   cd ICE
   ;; "port" is the new  machine/os you are porting ice to
   pimake -Dport -DTOPDIR=/ICE -DREV=1 -I/ICE/cool/config
   make bootstrap

   2. Build ICE

*************************************************************************
   You might need to alter ICE/CCC/config.h and ICE/CCC/CCC.c to
   allow for the new machine/os, ie, PORT.

   Note: ICE assumes AT&T cfront 2.0 with:
      CC2                     C++ compiler 
     /usr/include/CC2         C++ include directory
     cfront2                  cfront translator
     patch2                   patch program
     -lC2                     C++ library name
   If these names are wrong on your PORT system you need to either 
       link the correct names to the names ICE requires ...
   or  set environment variables:  cfrontC (cfront2), patchC (patch2), 
       LIBRARY (-lC2)
   or  edit files "ICE/cool/config/PORT.cf" references to "CC2".
       and edit files "ICE/CCC/config.h" references
       to "cfront2", "patch2", and "-lC2".

   Also in "ICE/CCC/config.h"  it assumes tmp directory name of "/tmp".

*************************************************************************

   cd ICE
   make clean clobber

   cd ICE/pisces     
   make all install   ;; Note that the only two systems you need
			 to build pisces is "pimake" and "cpp".
			 Edit pisces/Imakefile to the specific
                         systems you wish to build.

   [ if maintaining RCS on ICE do: cd ICE; make forcecheckout depend;
     (ignore errors from make depend) ]

   cd ICE
   make all runtest results

   cd ICE                   # This is optional;  
   chmod 444 include/*.p    # The .p files should only be modified when
			    # compiling COOL library files;
			    # Before updating COOL library, do: chmod +w *.p
3. Done
   ls ICE/bin
   ls ICE/lib/PORT
   ls ICE/include/*.p

#To remake just cool:
   rm /ice/lib/PORT/libCOOL.a
   cd ICE/cool
   make clean clobber includes all runtest results
