On this page:
This document is intended for developers of the pfspd toolset. It takes only a few minutes to read it. All developers are expected to adhere to the guidelines described in this document to assure a similar development infrastructure and a similar way of working in the pfspd project.
It is assumed that the reader is familiar with the project philosophy. A short, generic cvs introduction is described in the cvs guideline.
This document describes which infrastructure is assumed, how to setup an account at the sourceforge server, how to setup a working environment, how to define a new utility. In addition, the release procedure is described.
Descriptions in this document in italics font refer to information that is site specific. Usually, the Nat. Lab. (the Philips research site in Eindhoven, Netherlands) is taken as an example.
On our systems (at the NatLab) these are installed by:
cadenv -r3.80 gmake
cadenv -r4.2.0 gcc
The ssh and gtar commands are by default installed at the Nat. Lab.
The current versions are (feb. 2005):
mkdir -p ~/opensource/pfspd
CVSREAD= CVS_RSH=ssh export CVSREAD CVS_RSHOr make to following change to your .cshrc if you are using csh/tcsh:
setenv CVSREAD "" setenv CVS_RSH sshMake sure to activate these settings in your current shell. With ksh or bash, use ". ~/.profile"; with csh or tsh use "source .cshrc".
ssh -t <username>,email@example.com create
cd ~/opensource/pfspd cvs -d <username>@pfspd.cvs.sourceforge.net:/cvsroot/pfspd checkout mtkThis will create a local development directory ~/opensource/pfspd/mtk. All the files will be created with readonly acces (due to CVSREAD) so you can not make unwanted modifications. You are in business.
All directory names shall not contain uppercase characters.
All applications reside in their own separate directory in the cvs repository on the sourceforge server.
Examples of applications are:
Application name : directory name ------------------------------------------ make tool kit : mtk pfspd file access library : cpfspd pfspd viewer : pv pfspd player : pp
cd ~/innersource/pfspd mkdir newtool
cvs add newtool
cd newtool mkdir src cvs add src
cvs add Readme.txt newtool.sh cvs add src/Make* cvs add src/parse_options.* cvs add src/newtool.*
MTK supports several features for testing and debugging. First of all, the command "gmake debug" compiles the application with debug information. Furthermore the Rational tools purify, pureconverage and quantify are supported by MTK using build target "purify", "purecov" and "quantify" respectively. These tools enable detection of run time memory corruption or memory leaks, test coverage and performance analysis.
As the Rational tools manipulate object code, the version relation between compilers and tools is quite critical. We have used the Rational tools only on HP systems. Versions are shown in the table below. With the latest release, we only tested purify. The tools purecov and quantify suffered from licence problems.
It is strongly recommended not to build a release on the cygwin platform. During release build, the access rights of the whole directory tree are set according to the application requirements. There is some subtile unwanted behaviour with access rights in the cygwin environment. This is especially true when the directory tree is on a samba mounted unix network disk. Also when unpacking the generated tar file, the access rights are not restored properly. And then, the unpacking on a unix machine differs from unpacking on cygwin. Apart from this, cygwin has it's own understanding of the unix "x" access bit. In spite of all these objections, release build on cygwin is supported (only after a confirmation check in the makefile) for situations where no unix machine is readily available.
During a release the cvs tree will be tagged with that version. Because dots are not allowed in cvs tag name, we use a dash '-' instead.
On the Nat. Lab, releases of an application reside in directory /natlab/softtv/appls/utils/pv/release.
To create a release follow the procedure described here. This example builds release version "1.0.0" of the tool pv.
cvs tag rel_1-0-0 Readme.txt pv.sh setup.sh Make.env.* srcMaybe there are more directories and/or files, e.g. doc, test, etc.
cd /natlab/softtv/appls/utils/pv/release cvs -d <username>@pfspd.cvs.sourceforge.net:/cvsroot/pfspd/ export -r rel_1-0-0 -d pv-1.0.0 pv
cd ~/opensource/pfspd/pts cvs update
./setup.sh # script to creat a Make.env file with site specific # definitions of the location of tools and libraries # in the file system ./Make.env # generated by setup_natlab.sh script; NOT in cvs repository ./Make.env.natlab # input to setup.sh for the Nat. Lab. environment ./Make.env.svl # input to setup.sh for the Sunnyvale environment src/Makefile # application specific definitions; includes Make.mtk src/Make.mtk # copy from mtk. src/parse_options.c # copy from mtk. src/parse_options.h # copy from mtk.
File Make.mtk shall not be edited. ./Make.env shall be generated by ./setup.sh and does not need to be edited when you are situated at the NatLab.
Note that mtk contains a simple application example, mainly illustrating standard command option handling. This does not show all functionality to keep it straightforward and clear.
Authors: Bram Riemens Robert Jan Schutten Martijn van Balen
This page is hosted by
Copyright (c) KONINKLIJKE PHILIPS ELECTRONICS N.V. 2000-2006
Philips Research Laboratories, Eindhoven, The Netherlands
CVS id: $Id: developers.html,v 1.8 2009/11/19 15:28:12 riemens Exp $