README revision 7c478bd95313f5f23a4c958a745db2134aa03244
#
# Copyright 2001-2002 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "%Z%%M% %I% %E% SMI"
#
This directory contains utilities that help port and patch a standard perl
5.6.1 build directory into the ON tree. It is hoped that future ports and
patches will be able to use the same framework, so details of the process used
for 5.6.1 are documented here.
Porting
=======
Step 1.
Generate a config.sh file for both the sparc and i386 architectures. To do
this, unpack perl 5.6.1 and then run the ConfigPerl script from inside the
directory, then run 'make; make test' in the 5.6.1 directory. The resulting
config.sh file is then copied to the appropriate sparc or i386 subdirectory.
Step 2.
Generate sorted lists of all the files in a stock perl 5.005_03 build
directory, the Solaris 8 perl 5.005_03 directory and a stock perl 5.6.1
directory. These are the files flist.500503, flist.s8 and flist.561
respectively.
Step 3.
Use the Flist script to produce a CSV file containing a first-pass attempt at
figuring out the mappings between a stock 5.6.1 directory and a Solaris 9 perl
5.6.1 directory. The vast bulk of these mappings are correct, but minor edits
for new files or files that were incorrectly included in 5.005_03 will be
required.
Step 4.
Load the resulting file (Flist.csv) into a spreadsheet and manually enter
and/or correct the details for the mappings as necessary.
Step 5.
Use the mkcopy script to generate a ksh script which will copy all the required
files from a stock 5.6.1 directory into an ON workspace and issue the necessary
SCCS and Teamware commands to check them in.
Step 6.
Verify that the resulting script looks sane, then run it to perform the
integration. Examine the output to make sure that the integration succeeded -
if it failed, go back to step 4.
Step 7.
Generate the makefiles and associated infrastructure to build the resulting
perl 5.6.1 workspace. If there are any missing files or other errors, go back
to step 4.
Step 8.
On both sparc and intel run the ConfigPerl script in the stock 5.6.1
directory, and copy the resulting Config.sh and config.h files into the
appropriate sparc and intel subdirectories in the ON workspace.
Step 9.
Celebrate.
Patching
========
Step 1.
Untar a stock perl 5.6.1 image into a clean directory, and copy the contents of
perl/5.6.1/distrib back into it.
Step 2.
Apply the required patches to the stock directory, run ConfigPerl to configure,
followed by 'make regen_headers; make; make test', and make sure everything is
clean.
Step 3.
Run the PatchPerl script using the Flist.csv mapping file from this directory
to check any changed files back into the workspace.
Step 4.
For additional architectures to the base architecture used for steps 1-3, rerun
ConfigPerl on the relevant architecture and then manually copy the resulting
config.sh file into the appropriate architecture directory under perl/5.6.1.
Step 5.
Build and test the workspace as normal. The generated perl Makefiles are
sometimes missing all the dependencies needed for incremental builds to work
correctly, so check that both fresh and incremental builds work.
Step 6.
Update the local_patches array in distrib/patchlevel.h to include the
description of all the applied patches.
Files
=====
A full list of the files in this directory is given below.
ConfigPerl Generates a config.sh file suitable for ON.
ConfigPerlGcc Generates Config.pm and config.h files for use with gcc.
Flist Merges the 3 files below into a CSV file
flist.500503 Sorted list of stock 5.005_03 files
flist.561 Sorted list of stock 5.6.1 files
flist.s8 Sorted list of 5.005_03 files as integrated into Solaris 8.
Flist.csv Merged CSV file
mkcopy Reads CSV file and generates SCCS/Teamware commands to copy
a stock 5.6.1 build directory into an ON workspace.
mkmerge Reads CSV file and generates SCCS/Teamware commands to merge
a stock 5.6.1 build directory on top of a 5.005_03 ON workspace.
PatchPerl Deltas changes from a perl build directory onto an ON workspace.
README This file.