Getting Started with MIPP Online
This web page documents how online software can be built from scratch, and what new developers need to know to plug in.
- Online software is built using auto tools (automake, autoconf, libtool, etc).
You can get the latest versions of these at http://www.gnu.org or RPM's for RedHat 9 here.
- Some packages are meant to be built on both VME PowerPC's and our server (Pentium).
Configuration is based on the architecture, so Mac users may suffer. Feel free to correct the relevant configure.in files.
- VERY IMPORTANT
We are using libtool for versioning of development libraries.
All developers should update version info when they make a change to any library.
- Every directory which builds a library (all libraries are shared, no static libraries built by default), has a line like the one below in Makefile.am script:
libMippIo_la_LDFLAGS = -version-info A:B:C
This will build libMippIo.so.a.b.c.
- A:B:C stand for current interface:revision:age of interface
- Conversion between A:B:C and a.b.c is:
a = A - C
b = C
c = B
- Please change the numbers according to these rules and commit Makefile.am along with the rest of the changes.
Say, we start with initial version of 1:0:1
- If you only update the source code (.cxx files), increment the middle number by 1 (new version-info is 1:1:1, a.b.c=0.1.0).
- If you add a new file to the library, increment both first and last number and set middle number to 0 (new info is 2:0:2, a.b.c=0.2.0)
- If you remove a file from the library, set the first number to (1 + difference of first and last numbers), other two numbers to 0 (new info is 1:0:0, a.b.c=1.0.0).
- If you make a change to private interface of a class, follow guideline 1.
- If you make a change to public interface of a class which is backward compatible (say, add a function), follow guideline 2.
- If you make a change to public interface of a class which is not backward compatible (say, change return type of a function from int to const char*), follow guildeline 3.
- If you are confused over this, please e-mail me before you commit the code.
For full-blown version, go here.
- Length of lines shouldn't exceed 72 characters
- If you put Doxygen style comments, they will (eventually) make it into documentation.
- Class names begin with an uppercase letter, e.g.
class MippIoEvent {
...
};
- Class variables begin with lowercase 'f' (for field), followed by an uppercase leter, e.g.
int fId;
- Class functions begin with uppercase letters, e.g.
void GetId()
- Get access to the CVS repository (how do I do that?)
- To get all of the online code, type
cvs co online
- Presently, directories (packages) which are configured for building are
- Helpers
- Detectors
- RunControl
- e907r2dm
- SlowControl
- Executing
| C Shell variants |
Bourne Shell variants |
| source preconfigure.csh |
. preconfigure.sh |
in any of the above directories will create configure script
- Executing
source make_local.csh
will configure the build, build the code, and install it in $cwd.
Alternatively, you do the usual:
./configure --prefix=[directory] &&
make &&
make install
- The first package you should build is Helpers.
It has almost all libraries.
Directory where you install it (prefix) should be defined as MIPP_ONLINE_DIR environment variable in order to build other online packages which depend on libraries from Helpers.
- MIPP_ONLINE_DIR = /usr/local/mipp/online is the public directory where libraries and header files are installed.
- My private build area is /home/alebedev/mipp/online. I build and test code there before installing it into the public directory.
- Root directories of PowerPC's are mounted through NFS from e907daq:/ppcboot, thus
richppc:/usr/local is the same thing as e907daq:/ppcboot/common/usr/local,
richppc:/home is the same thing as e907daq:/ppcboot/common/home,
richppc:/etc is the same thing as e907daq:/ppcboot/richppc/etc.
- PowerPC's do not see the world, so if you want to bring code to PowerPC, you put it into /ppcboot/common/home/[your home], and compile on PowerPC.
Andre Lebedev
Last modified: Mon Mar 15 14:32:47 CST 2004