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.