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