« Successful Build on sons-sc-cc | Main | Building salira2 »

XAM Build

  • Got XAM ant build to work. Test build almost working
  • Ported Build.pl for use in XAM

I assume you mean the state of XAM. Here's what I've done:

  • Moved .../platform/L3/platform/src/com/hp/platform/fcas -> .../platform/XAM/server/src/com/hp/platform/fcas
  • Moved .../platform/L3/platform/src/test/com/hp/platform/fcas -> .../platform/XAM/server/src/test/com/hp/platform/fcas
  • Moved .../riss/W2/xam/client -> .../platform/XAM/client/c

By "moved" I mean that I copied those areas from the old place to the new place, added them to source control and rmnamed the old areas. This is as per Rational's recommendation for moving things in a UCM environment.

Next I attempted to build fcas in the new area. It became quickly apparent that we need to port over the buildTools directory with its build_common.xml if we wish to replicate the build environment of L3.

With Rahul's help I managed to build the server component in XAM. I have not tackled the client component nor test at this time. I've checked in the buildTools/build_common.xml and the build.xml under the server area.

Here's how you can build XAM:

  • If necessary rebase your RISS15_xam substream or create view from RISS15_xam
  • Change directory to .../platform/XAM/server/src/com/hp/platform/fcas
  • type "ant -Dbase_dir=/vobs/platform/XAM -DviewBase=/vobs"

Note: viewBase would be different if you are using a snapshot view.

Since XAM will be separated from L3 the question is: How are dependencies handled? For example, this XAM "depends on" or "imports" code from L3's core and csfr. To address this we added:

<pathelement path="${viewBase}/platform/L3/code"/>

to the ext.classpath in build_common.xml even though the comment for this states:

<!--
    Class path element for Build. Don't add libraries here Libraries
    should go under devenv/buildenv/lib those libs will be
    automatically picked up by the following element
-->

You see we now have two different types of libraries, ext.classpath libraries that are built elsewhere and just deposited into devenv/buildenv/lib and our own libraries that are built in another component (in this case the L3 component).

Also, the above ${viewBase}/platform/L3/code assumes that that directory exists and contains compiled class files. It assume that L3 was built before XAM is built. This introduces the notion of dependencies between components.

Finally you'll note that we don't build from the /vobs/platform/XAM level, rather we descend down into the /vobs/platform/XAM/server/src/com/hp/platform/fcas level to do our ant build. Questions:

  • Do we need a Build.pl to sit in /vobs/platform/XAM to build everything underneath it?
  • Can't ant do recursive ants like make does recursive makes?