Perforce Version Copy Utility (VCP) Build Installation Instructions
THESE INSTRUCTIONS ARE FOR LINUX AND BSD
The build installation scripts and structure provide a means for creating
repeatable builds of the vcp binary.
LAST UPDATED: December 28, 2005
TODO: Extend scripts so they can also be used to install the VCP module
into an existing version of Perl, with or without PAR.
--------------------------------------------------------------------------------
Prerequisites:
--------------------------------------------------------------------------------
NOTE: Do not attempt to build VCP on a Solaris platform over an NFS
mounted drive. Use the local file system instead.
Make sure the following program paths are in your $PATH environment
variable:
gcc usually found in /usr/local/bin.
ar usually found in /usr/ccs/bin.
% PATH=/usr/local/bin:$PATH # for gcc
% PATH=/usr/ccs/bin:$PATH # for ar
% export PATH
You must have the following software installed on your system first in
order to install and build the vcp binary:
- GNU Wget:
http://www.gnu.org/software/wget/wget.html
- Expat XML Parser:
http://download.sourceforge.net/expat/expat-1.95.8.tar.gz
--------------------------------------------------------------------------------
Creating a clean build of VCP binary on a Unix platform:
--------------------------------------------------------------------------------
% cd BUILD
% sh retrieve.sh # Retrieves Perl and VCP dependent modules (17MB)
% sh build-perl.sh # You will need to hit RETURN at one point
% sh build-modules.sh
% # Copy the VCP release into the Tars directory
% # e.g.: cp ../../dist/VCP-0.9.tar.gz Tars
% sh build-vcp.sh
At this point you will have a fresh Perl installed with only the
modules required for PAR and VCP, VCP will be installed, and
the new binary and html files installed into the dist directory
--------------------------------------------------------------------------------
File List:
--------------------------------------------------------------------------------
Policy.sh - This file is configuration file for building Perl.
build-modules.sh - This script builds, tests, and installs required
modules.
build-perl.sh - This script builds, tests, and installs Perl.
build-vcp.sh - This script builds, tests, and installs VCP.
gen-list.sh - This script generates the list of required modules for
retrieval.
retrieve.sh - This script retrieves the requires modules from CPAN.
PodToHTML.Pod.HTML_Elements.pm.patch - Patch file for HTM_Elements.pm
vcp.bin.build_vcp_executable.pl.patch - Patch file for
build_vcp_executable.pl
vcp.bin.vcp.patch - Patch file for VCP.
Tars/modules.list - List of required modules.
par-deps.list - Ordered list of required modules for PAR.
vcp-deps.list - Ordered list of required modules for VCP.
VCP-0.90.0.tar.gz - VCP 0.90 release.
--------------------------------------------------------------------------------
Directory Structure:
--------------------------------------------------------------------------------
dist/ - Distribution location, will contain built binary and html pages.
html/ - Directory of VCP documentation.
vcp-VER#.#-kernelinfo#.#.exe.gz - Binary for specified platform for
example vcp-0.9-5.8.exe.gz
PerlModules/ - Installation directory for Perl module extensions.
PerlSrc/ - Created by build-perl.sh during building, testing and installing
of a local copy of Perl.
perl/ - Installation directory of local Perl.
bin/ - Perl, VCP, and PP will all end up installed into this directory.
This path will need to be added to the beginning of your PATH
environment variable if not already present.
perl-5.#.#/ - Build and test directory for local Perl.
perl-addons/ - Installation directory for local Perl extensions.
Tars/ - Contains the modules.list file and all retrieved module tar
bundles.
tmp/ - Temporary working directory.
--------------------------------------------------------------------------------
Creating a new module.lists file
--------------------------------------------------------------------------------
% sh gen-lists.sh
This script will check for the latest releases for all of the required
modules and add in the reference URI into the modules.list file for
retrieval.