The PACE Application Aware Partitioner clang tool

PREREQUISITES:

1. Xerces-C libraries

   From http://xerces.apache.org/xerces-c or through most package managers.

2. libcgraph

   Part of the GraphViz suite available online at http://graphviz.org or
   through most package managers.

3. LLVM 2.8 with clang:
   Checkout the source by doing

   svn co http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_28 llvm
   cd llvm/tool/
   svn co http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_28 clang

   and follow their build instructions. During the configure step, you must
   include the --enable-shared option.

A. If you plan to partition code based on profile information, you will need to
   install HPCToolkit (http://hpctoolkit.org/software.html).



BUILDING:

1. bootstrap

   Run ./bootstrap in the local directory.

2. ./configure

   The AAP needs to know about LLVM, which it does through the llvm-config
   tool. If the llvm-config tool is not in your path, it can be specified to
   configure using the --with-llvm-config option. If clang is installed in a
   different location from llvm, you should specify --with-clang-includes and
   --with-clang-libs too. You may optionally provide a --prefix argument to
   indicate AAP install path.

3. make 

   The result will an executable named AAP in build's bin/ directory. The build
   directory will be either Debug or Release, depending on the build of LLVM.


   [optionally]

4. make docs

   Generates doxygen docs in docs/html/. If the build is done against an LLVM
   source tree, then the documentation will automatically link against the
   documentation from that tree.

5. make check

   Runs the test suite, which is far from comprehensive.

6. make install

   Copies the AAP executable into the configured --prefix directory.

