wiki:FAQ

Frequently Asked Questions

  • What configuration options are supported by Acro?

See the  Acro Installation Summary.

  • Can Acro be built without installing the Python Packages?

Yes. Use the --without-python configuration option. This may be useful, for example, if the virtualenv utility does not work on your platform.

  • Compiling on Cygwin
    • When building PICO on Cygwin, the COIN-OR third-party software may fail to build. The GNU make version 3.81-1 delivered by the default setup program doesn't work with the automatic header file dependencies, generated by the compilers. The error message you will see because of this bug will look something like this:
      make[2]: Entering directory `/home/andreasw/COIN-svn/OBJgcc-debug/Clp/trunk/Clp/src'
      .deps/ClpCholeskyBase.Plo:1: *** multiple target patterns.  Stop.
      
      Here are two suggested fixes:
      1. Try to obtain the previous version (3.80); for example, you can download it from  http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2.
      2. Obtain a fixed 3.81 version, for example from  http://www.cmake.org/files/cygwin/make.exe. (See the Cygwin mailing list postings  http://cygwin.com/ml/cygwin/2006-09/msg00315.html and  http://cygwin.com/ml/cygwin/2006-09/msg00153.html)

    • Acro may fail to reconfigure with the current version of autoconf2.5 (2.63-1) giving the following error:
      config/acro_no_shared.m4:28: error: m4_defn: undefined macro: _m4_divert_diversion
      config/acro_no_shared.m4:28: the top level
      autom4te-2.63: /usr/bin/m4 failed with exit status: 1
      aclocal-1.10: autom4te failed with exit status: 1
      make: *** [aclocal.m4] Error 1
      
      The current workaround is to downgrade autoconf2.5 to the previous version (2.61-1).

Tips and Tricks (Mostly for Developers)

  • You can conveniently compile with acro/setup:
    ./setup configure build
    
    The output of configuration is put in test/config.out. The setup command tests this output for errors and summarizes the results in test/config.xml. Similarly, setup creates the test/build.out and test/build.xml files to summarize the build.
  • Run acro/bin/svn_status to verify that all of your edits have been committed. The subversion commit command does not cross the externals used in Acro, so you can easily miss some edits!
  • When running the 'nosetests' utility, keep in mind that this utility finds Python files that are imported, but the import does not change the current working directory. If you are generating text file outputs, or running commands with a shell, then you need to either specify absolute paths or change the working directory.
  • Use the lpython and lbin scripts to simplify the execution of Python scripts and command-line tools within the Acro source tree. The lbin tool is also handy for debugging executables. For example, you can run the gdb debugger as follows:
    gdb `lbin which PICO`
    
  • When building Acro under Cygwin, there is a well-known problem with the make command when rebuilding. If you get an *** multiple target patterns error, then see #2835 for details of how to update your installation of make.
  • The https://software.sandia.gov/svn/public/cxxtest repository is automatically synchronized with the tigris cxxtest repository daily. If updates are needed more immediately, you can execute the following script on software.sandia.gov: /home/jdsiiro/bin/sync-cxxtest . This script is run nightly, and you confirm its progress by inspecting the file: ~jdsiiro/svnsync.log.
  • The  gcovr command provides a useful summary of C/C++ code coverage. The following BASH script illustrates the use of gcovr to provide a coverage summary for non-UTILIB components in Acro:
    #!/bin/sh
    
    pwd=`pwd`
    bin/gcovr -r $pwd -d -e '.*/test/' -e $pwd/include/tinyxml -e $pwd/include/utilib -e $pwd/packages/utilib -e $pwd/tpl > tmp
    

Platform-Specific Notes

Odin/Makena?

  • Karen Devine notes that she usese mpicc for building, rather than the default icc compilers.
  • The default version of Python is too old for Acro. You need to update python by typing:
    module load tools/python-2.5.1
    
  • The following build line worked for Bill without any further changes:
    ./configure --with-mpi=/apps/x86_64/mpi/openmpi/gcc-3.4.6/openmpi-1.3_mx/ --enable-validating --with-mpi-libs='-lmpi -lmpi_cxx'
    

Note that the mpi configuration may change if a different openmpi module is used.