Instructions for Producing a Local Shore Release
Instructions for Producing a Local Shore Release
PREPARING PUBLIC BUILD WORKSPACES
There is a source-only workspace /p/shore/build/ws.source.
This is meant ONLY for checking out the lastest release.
If it's new, do :
-
cd /p/shore/build/ws.source
-
cvs checkout localrelease
If it already exists, do :
-
cd /p/shore/build/ws.source
-
cvs update -A
DO NOT build makefiles, dependencies, symlinks, or ANYTHING
in this workspace!!!
All other build workspaces are shadow directories,
(where nodebug@ --> @sys/nodebug
and
debug@ --> @sys/debug).
The build workspaces are created thus:
-
log on to appropriate machine
-
cd /p/shore/build/nodebug
-
lndir /p/shore/build/ws.source
-
cd /p/shore/build/debug
-
lndir /p/shore/build/ws.source
Now use three windows, one for building in the debug
workspace, one for the nodebug workspace, and one for the documentation
release.
- Window DEBUG:
- (csh:) set TOP = /p/shore/build/debug
If workspace isn't fresh:
- re-run: lndir /p/shore/build/ws.source
- cd $TOP/src
- make clean
If the workspace is fresh:
- cd config
- cp shore.def.example shore.def
- #define INSTALL_PATH /p/shore/installed/NEW/debug
- #define DEBUGCODE ON (should not be necessary)
- #define DEBUGGERSYMBOLS ON (should not be necessary)
- #define OPTIMIZE OFF (should not be necessary)
- update GCC_PATH if necessary
- update FORCE_SOLARIS if necessary
- #undef CHEAP_RC (should not be necessary)
- update GNU_MAKE if necessary
- if you're using GNU make, setenv GNU_MAKE
Check all the above values:
- cd /p/shore/build
- fgrep INSTALL_PATH */debug/config/shore.def
- fgrep DEBUG */debug/config/shore.def
- fgrep GCC_PATH */debug/config/shore.def
- fgrep SOLARIS */debug/config/shore.def
- fgrep CHEAP */debug/config/shore.def
- fgrep GNU_MAKE */debug/config/shore.def
- Window NODEBUG:
- (csh:) set TOP = /p/shore/build/nodebug
If workspace isn't fresh:
- re-run: lndir /p/shore/build/ws.source
- cd $TOP/src
- make clean
If the workspace is fresh:
- cd config
- cp shore.def.example shore.def
- #define INSTALL_PATH /p/shore/installed/NEW/nodebug
- #define DEBUGCODE OFF
- #define DEBUGGERSYMBOLS OFF
- #define OPTIMIZE ON
- update GCC_PATH if necessary
- update FORCE_SOLARIS if necessary
- #undef CHEAP_RC (should not be necessary)
- update GNU_MAKE if necessary
- if you're using GNU make, setenv GNU_MAKE
Check all the above values:
- cd /p/shore/build
- fgrep INSTALL_PATH */nodebug/config/shore.def
- fgrep DEBUG */nodebug/config/shore.def
- fgrep GCC_PATH */nodebug/config/shore.def
- fgrep SOLARIS */nodebug/config/shore.def
- fgrep CHEAP */nodebug/config/shore.def
- fgrep GNU_MAKE */nodebug/config/shore.def
- Window DOC:
- (csh:) set TOP = /p/shore/build/ws.doc
- cd $TOP
- If public workspace is new:
-
cvs checkout localreleasedoc
- If public workspace is alreay more-or-less up-to-date:
- cd $TOP/releasedoc
- make clean
- cd $TOP
- cvs update -A
If the workspace is fresh:
- cd config
- cp shore.def.example shore.def
- #define INSTALL_PATH /p/shore/installed/NEW
- update GCC_PATH if necessary
- update FORCE_SOLARIS if necessary
- update GNU_MAKE if necessary
Check all the above values:
- cd /p/shore/build
- fgrep INSTALL_PATH */nodebug/config/shore.def
- fgrep GCC_PATH */nodebug/config/shore.def
- fgrep SOLARIS */nodebug/config/shore.def
- fgrep GNU_MAKE */nodebug/config/shore.def
BUILDING -- Window DEBUG
- (csh:) set TOP = /p/shore/build/debug
- FOR THIS SECTION ONLY (csh:)
set INST = /p/shore/installed/NEW/debug
- cd $TOP/src
- ../tools/makemake ..
- ../tools/depend
- Ignore error messages about .h files not found in examples/* and oo7/.
These arise because the .h files are generated, and generating them
requires an installed Shore.
- Alternatively, we could run the installed shore to make those
files, but I don't think we want the files to exist for the
source release.
- make
- (if building on sunos:) cd $TOP/src/util/mount/sunos
- (if building on sunos:) make
- cd $TOP/src
- make install
- cd $INST
- see that everything is there, including bin/{sshutdown,smount,mnt}
BUILDING -- Window NODEBUG
- (csh:) set TOP = /p/shore/build/nodebug
- FOR THIS SECTION ONLY (csh:)
set INST = /p/shore/installed/NEW/nodebug
Follow the numbered steps for the DEBUG workspace, above.
BUILDING -- Window DOC
INSTALLS DOCUMENTATION AND EXAMPLES ONCE in /p/shore/installed/NEW
- FOR THIS SECTION ONLY (csh:) set INST = /p/shore/installed/NEW
- if you're using GNU make, setenv GNU_MAKE
- (csh:) set TOP = /p/shore/build/ws.doc
- cd $TOP
- tools/makemake .
- tools/depend
- cd $TOP/releasedoc; make; make install
- cd $TOP/src/examples
- make install
- cd $TOP/src/oo7
- make install
- cd $INST
- Make sure that docs.html/ docs.ps/ examples/ and examples/oo7 are there.
Notifying users
- cd /p/shore/installed
- look at the script installnew.sh. Either run it or
carefully run the appropriate parts of it.
(It's designed to install all new documents, but if the documents
haven't changed and you haven't built them, you can edit the script
to hang onto the old documents.)
Also, be certain that all necessary architectures have been built
before you run the script!
- mail shore_uw, telling users what's new.