Building on *nix

WARNING: this could be out of date. Not updated for the new version... yet...

 

To build daqAI yourself you need to do the following in a local release area (I've been basing it on p11.09, p12 seems to have a funny motif linkage in it):

addpkg -h CLIPS
addpkg -h daqAI
addpkg -h l3xDAQSuperComBase
addpkg -h l3monitor_utils
gmake lib
gmake daqAI.bin
gmake daqAI.script

Then, to put it down on the online system, you can use the move_to_online <version> command. Make sure you aren't using an old version -- look on the online system in /online/products/daqAI to see what the next version is. Once it is down there, you'll need to declare it in ups. A template command to do this can be found in the ups/daqAI.table file. Once you are satisfied with the version and declare it current in ups, please answer "y" to the Do you want to tag it question in the move_to_online script. If you are experimenting with a new version, answer "n" to the tag question and no updates and tags will be made in cvs.

Note there are a few build problems in the CLIPS package that give errors when you just type gmake. These need to be fixed.

Building on Windows

daqAI can be built debugged (with a real debugger) on Windows. It has only been tested on VC7.0 (VS.NET), but it may still build under VC 6.0.

  1. Check out from cvs the following packages: l3monitor_utils, l3xDAQSuperComBase, CLIPS, and daqAI. Extract them to the same directory. In that directory create a new directory called D0RunII, and extract itc and thread_util into that directory.
  2. Make sure you have ACE and xerces downloaded and their include paths part of the environment. The first time you do this it will be a bit of work to get it right (on Unix, the ups utility takes care of all of this for you).
  3. Build l3monitor_utils first. Go into the win subdirectory, and load the workspace. Right click and hit build. Get it building with no errors (you'll get warnings from ACE). The reason to build this first is it is a library, so linking isn't a requirement, and all you'll need to have this build is the include paths.
  4. Next build itc. Here you have to create a workspace. Do this by creating a win subdirectory, and then in that subdirectory creating an empty workspace that is called win. Then create a new C++ Windows project, a static link library, called libitc. Turn off precompiled headers. Add all the itc files in the itc/src directory, and add the include path "..\.." to the build. Make sure that it is building multi-threaded debug (under the code generation page). Build the library. You'll get lots of warnings from ACE, but ignore those.
  5. Repeat the process for thread_util. Due to some unix dependent code, however, the files Process_Manager.cpp, interlock.cpp, and Clique.cpp  will not build on Windows. Just remove them -- they are not required by the daqAI build.
  6. Load the daqAI workspace (in daqAI/win/win.vcproj). Build the daqAI_XMLMonitor project -- this should cause everything else to build that is required. Again, expect lots of ACE warnings.
  7. Before you run make sure the xerces library DLL is in your executable path, or a copy it to the Debug folder where the daqAI_XMLMonitor program sits.

To run from the IDE in debug mode, set the command line parameters to be "-r ../../scripts/daqai_rules.txt --offline". You can also add things like --dump-facts, etc., to help you out.