Building Equip2 DLL from the CVS

Equip2 is a dataspace implementation that provides flexible access to programming language objects across a variety of platforms and programming languages. It is especially well suited as a higher level datastore for distributed applications.  Equip2 provides template-based data queries into the datastore and an integrated state/event model with change notification.

Equip2 is available on Sourceforge. There is a full paper from UbiComp 2007 entitled “Addressing Mobile Phone Diversity in Ubicomp Experience Development” that describes the reasoning behind the design of Equip2. Overall, Equip2 is really well documented, but even for a developer the available information can sometimes be a bit terse. This post is meant to supplement the existing installation guide and C++ build information.

Equip2 has been used in many of the ubicomp experiences that were developed at the MRL since about 2005. However, its learning curve is quite steep and it can actually be quite scary. This is especially true when getting in touch with its elaborate Java-Bytecode to C++ Sourcecode transcoding in the build process for the first time. Here are some notes from August 2007 that summarise my  experience with the build process.

[.. after CVS checkout and following the installation guide / C++ build information..]

Problems / actions:
cl.exe was not found
This is part of Visual Studio. Running the cl.exe from the vc7/bin folder didn’t work (mspdb71.dll not fount, etc.).
The solution is to take the VC command prompt from Start>Programs>Microsoft Visual Studio .NET 2003>Visual Studio .NET Tools>Visual Studio .NET 2003 Command Prompt
(as mentioned in equip2/doc/EQUIP2_CPP_Programming.html)

WTK was not installed and not mentioned in the build docs
Download and install the WTK 2.3, 2.5.1, or newer from Sun’s webpage

>> now it was possible to build /javatrans according to http://equip.sourceforge.net/javatrans/docs/Javatrans_introduction.html#Building_and_testing
“ant jar”, “cd targets/win32”, “buildlib-win32.bat”, “buildexample-win32.bat”

buildlog4j-win32.bat cannot find “java_lang_Object.h”
The file exists three times at the following locations below /equip2:

  • build.cpp/log4j.src.cpp/dependencies/java_lang_Object.h
  • build.cpp/src.cpp/dependencies/java_lang_Object.h
  • build.cpp/test.src.cpp/dependencies/java_lang_Object.h

The file also exists where it should be included from according the the batchfile at /javatrans/src.cpp/include

The cl.exe commandline sets the includedir in respect to %javatranshome% which is not set in the commandline-environment
(and also not mentioned in env.bat).
Solution:
‘set javatranshome=”D:\CVS-Dumas\Equator\javatrans\”‘
‘buildlog4j-win32.bat’
Will lead to the next problem, because javatranshome must be set to D:\CVS-Dumas\Equator\javatrans\
so:
‘set javatranshome=D:\CVS-Dumas\Equator\javatrans\’
‘buildlog4j-win32.bat’
works!

– ‘buildequip2-win32.bat’ now builds at first try

– ‘buildequip2test-win32.bat’ now works

Hope this helped someone.

Comments are closed.