Commit ebe3ddf5 authored by Hamilton, Steven P's avatar Hamilton, Steven P
Browse files

Name updates and cleanup.

parent ee9ab1de
##---------------------------------------------------------------------------##
## Profugus/cmake/CallbackSetupExtraOptions.cmake
## ProfugusMC/cmake/CallbackSetupExtraOptions.cmake
## Thomas M. Evans
## Monday December 2 21:36:44 2013
##---------------------------------------------------------------------------##
IF (Profugus_SOURCE_DIR)
IF (ProfugusMC_SOURCE_DIR)
# We need to inject the Profugus/cmake directory to find several
# Profugus-specific macros
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${Profugus_SOURCE_DIR}/cmake")
......@@ -15,9 +15,6 @@ ENDIF()
# Enable documentation for this project
MACRO(TRIBITS_REPOSITORY_SETUP_EXTRA_OPTIONS)
#enable Profugus documentation
INCLUDE(ProfugusDoc)
# Add install RPATH when building shared
IF(BUILD_SHARED_LIBS)
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
......@@ -36,11 +33,8 @@ MACRO(TRIBITS_REPOSITORY_SETUP_EXTRA_OPTIONS)
ENDIF()
ENDIF()
# Disable EpetraExt HDF5 if we are loading HDF5
SET(EpetraExt_ENABLE_HDF5 OFF CACHE BOOL "Turn off HDF5 in Trilinos.")
ENDMACRO()
##---------------------------------------------------------------------------##
## end of Profugus/cmake/CallbackSetupExtraOptions.cmake
## end of ProfugusMC/cmake/CallbackSetupExtraOptions.cmake
##---------------------------------------------------------------------------##
......@@ -103,4 +103,4 @@
# upstream repo.
#
SET(Profugus_EXTRAREPOS_DIR_REPOTYPE_REPOURL_PACKSTAT_CATEGORY)
SET(ProfugusMC_EXTRAREPOS_DIR_REPOTYPE_REPOURL_PACKSTAT_CATEGORY)
......@@ -7,36 +7,6 @@
# Native repositories for Profugus project builds
SET(NATIVE_REPOS .)
# Search to see if MCLS exists in the Profugus source tree
FIND_PATH(MCLS_EXISTS
NAMES MCLS/PackagesList.cmake
PATHS ${CMAKE_CURRENT_SOURCE_DIR})
IF (MCLS_EXISTS)
SET(NATIVE_REPOS MCLS ${NATIVE_REPOS})
ELSE()
MESSAGE(STATUS "MCLS repository is not available")
ENDIF()
# Search to see if Temere exists in the Profugus source tree
FIND_PATH(Temere_EXISTS
NAMES Temere/PackagesList.cmake
PATHS ${CMAKE_CURRENT_SOURCE_DIR})
IF (Temere_EXISTS)
SET(NATIVE_REPOS Temere ${NATIVE_REPOS})
ELSE()
MESSAGE(STATUS "Temere repository is not available")
ENDIF()
# Search to see if ParaSails exists in the Profugus source tree
FIND_PATH(ParaSails_EXISTS
NAMES ParaSails/PackagesList.cmake
PATHS ${CMAKE_CURRENT_SOURCE_DIR})
IF (ParaSails_EXISTS)
SET(NATIVE_REPOS ParaSails ${NATIVE_REPOS})
ELSE()
MESSAGE(STATUS "ParaSails repository is not available")
ENDIF()
# Assume the user has already symlinked Trilinos into the current dir
SET(NATIVE_REPOS Trilinos ${NATIVE_REPOS})
......
##---------------------------------------------------------------------------##
## ProfugusAddCFlags.cmake
## ProfugusMCAddCFlags.cmake
## Seth R Johnson
## Thu Sep 13 14:02:49 EDT 2012
##---------------------------------------------------------------------------##
......@@ -14,11 +14,11 @@ INCLUDE(CheckCCompilerFlag)
#
# This is useful for excluding warnings in GCC without breaking older versions
# of GCC.
MACRO(PROFUGUS_ADD_CXX_FLAGS)
MACRO(PROFUGUSMC_ADD_CXX_FLAGS)
FOREACH(THEFLAG ${ARGN})
string(REGEX REPLACE "[^0-9a-zA-Z]" "_" FLAGNAME ${THEFLAG})
check_cxx_compiler_flag("${THEFLAG}" PROFUGUS_USE_CXX_FLAG_${FLAGNAME})
if(PROFUGUS_USE_CXX_FLAG_${FLAGNAME})
check_cxx_compiler_flag("${THEFLAG}" PROFUGUSMC_USE_CXX_FLAG_${FLAGNAME})
if(PROFUGUSMC_USE_CXX_FLAG_${FLAGNAME})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${THEFLAG}")
endif()
ENDFOREACH()
......@@ -29,16 +29,16 @@ ENDMACRO()
#
# This is useful for excluding warnings in GCC without breaking older versions
# of GCC.
MACRO(PROFUGUS_ADD_C_FLAGS)
MACRO(PROFUGUSMC_ADD_C_FLAGS)
FOREACH(THEFLAG ${ARGN})
string(REGEX REPLACE "[^0-9a-zA-Z]" "_" FLAGNAME ${THEFLAG})
check_c_compiler_flag("${THEFLAG}" PROFUGUS_USE_C_FLAG_${FLAGNAME})
if(PROFUGUS_USE_C_FLAG_${FLAGNAME})
check_c_compiler_flag("${THEFLAG}" PROFUGUSMC_USE_C_FLAG_${FLAGNAME})
if(PROFUGUSMC_USE_C_FLAG_${FLAGNAME})
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${THEFLAG}")
endif()
ENDFOREACH()
ENDMACRO()
##---------------------------------------------------------------------------##
## end of ProfugusAddCFlags.cmake
## end of ProfugusMCAddCFlags.cmake
##---------------------------------------------------------------------------##
##---------------------------------------------------------------------------##
## ProfugusDoc.cmake
## Tribits-based Denovo documentation utility macros
## Seth R Johnson
## Tuesday August 7 16:18:45 2012
##---------------------------------------------------------------------------##
find_package(Doxygen)
if(DOXYGEN_FOUND)
SET(ENABLE_DOCUMENTATION OFF CACHE BOOL
"Enable documentation for the ${PROJECT_NAME} project." )
SET(ENABLE_DOCUMENTATION_PDF OFF CACHE BOOL
"Enable PDF Doxygen processing.")
SET(ENABLE_DOCUMENTATION_XML OFF CACHE BOOL
"Enable XML Doxygen processing.")
# if pdf documentation is on, make sure documentation is on
if(ENABLE_DOCUMENTATION_PDF AND NOT ENABLE_DOCUMENTATION)
SET(ENABLE_DOCUMENTATION ON)
endif()
# if xml documentation is on, make sure documentation is on
if(ENABLE_DOCUMENTATION_XML AND NOT ENABLE_DOCUMENTATION)
SET(ENABLE_DOCUMENTATION ON)
endif()
if(ENABLE_DOCUMENTATION)
add_custom_target(doc
COMMENT "Creating documentation"
)
endif()
endif()
include(CMakeParseArguments)
# This global property takes advantage of the Tribits call sequence to track
# dependencies between documented packages alongside the actual package
# dependencies
set_property(GLOBAL PROPERTY DOCUMENTED_SUBPACKAGE_FULLNAMES "")
################################################################################
# Set up documentation for a particular subpackage
# This assumes SUBPACKAGE_NAME is set by Tribits, along with all the
# accompanying properties.
#
# DENOVO_ADD_DOC(
# [IS_PACKAGE_LEVEL]
# [LIST_EXTERNALS]
# [INPUTS dir|file [...]]
# [CONF_INPUTS file [...]]
# [IMAGE_PATH dir]
# [DEPENDS name1 [name2...] ]
# )
#
# IS_PACKAGE_LEVEL Indicate that this is a *package* we're documenting
# rather than a subpackage
#
# LIST_EXTERNALS Show classes from dependent projects (via tag files) in the
# current documentation directory's class list
#
# INPUTS Directories and files to be passed as inputs to the Doxygen
# configuration, as paths relative to the current source dir
#
# CONF_INPUTS Directories and files to be passed as inputs to the Doxygen
# configuration, as paths relative to the current *bin* dir
#
# IMAGE_PATH Directory name where included images can be found
#
# DEPENDS Extra paths whose modification should force the
# documentation to regenerate
#
# If neither INPUTS nor CONF_INPUTS is set, it defaults to searching the current
# directory and the 'doc' subdirectory for valid input.
# Use the true macro depending on whether Doxygen is found.
if(DOXYGEN_FOUND AND ENABLE_DOCUMENTATION)
macro(DENOVO_ADD_DOC)
_DENOVO_ADD_DOC(${ARGN})
endmacro()
else()
macro(DENOVO_ADD_DOC)
# no-op
#message(STATUS "skipping documentation for ${SUBPACKAGE_FULLNAME}")
endmacro()
endif()
macro(_DENOVO_ADD_DOC)
# Prefixes of "DDOC" are parsed arguments
# Prefixes of "EXNIL_DOC" are used in the Doxyfile.in configuration
cmake_parse_arguments(DDOC
"IS_PACKAGE_LEVEL;LIST_EXTERNALS"
"IMAGE_PATH"
"INPUTS;CONF_INPUTS;DEPENDS"
${ARGN})
if(DDOC_IS_PACKAGE_LEVEL)
# we're not a subpackage, and therefore ${SUBPACKAGE_FULLNAME} is invalid
set(SUBPACKAGE_NAME "")
set(SUBPACKAGE_FULLNAME ${PACKAGE_NAME})
endif()
#message(STATUS "Configuring documentation in ${SUBPACKAGE_FULLNAME}")
# >>> SET UP DOCUMENTED SUBPACKAGES
# - Get the global list of documented subpackages; add the current subpackage
# to that list
# - Get the Tribits dependency list for the current subpackage
# - For each dependency, see if it is in the list of documented subpackages
#
# result: _SUBPACKAGE_DEPENDS is set to documented subpackages that are
# explicit dependencies of the current subpackage
get_property(_ALL_DOCUMENTED_SUBPACKAGES GLOBAL
PROPERTY DOCUMENTED_SUBPACKAGE_FULLNAMES)
set_property(GLOBAL APPEND
PROPERTY DOCUMENTED_SUBPACKAGE_FULLNAMES ${SUBPACKAGE_FULLNAME})
set(_SUBPACKAGE_DEPENDS)
foreach(_SPFN ${${SUBPACKAGE_FULLNAME}_LIB_REQUIRED_DEP_PACKAGES})
# See if each dependency has documentation
list(FIND _ALL_DOCUMENTED_SUBPACKAGES ${_SPFN} _FOUND_SUBPACKAGE)
if(NOT _FOUND_SUBPACKAGE EQUAL -1)
# The dependency has documentation; add a line in the tag file
set(_TAGFILE "${PROJECT_BINARY_DIR}/doc/${_SPFN}.tag")
set(_BINDIR ${${_SPFN}_BINARY_DIR})
set(EXNIL_DOC_IN_TAGFILES "${EXNIL_DOC_IN_TAGFILES} \\
${_TAGFILE}=${_BINDIR}/html")
list(APPEND _SUBPACKAGE_DEPENDS ${_SPFN})
endif()
endforeach()
# >>> SET UP DOXYFILE INPUTS
set(EXNIL_DOC_PACKAGE_NAME "${PACKAGE_NAME}: ${SUBPACKAGE_NAME}")
set(EXNIL_DOC_PACKAGE_VERSION "${${PROJECT_NAME}_VERSION_STRING}")
set(EXNIL_DOC_WARN_IF_UNDOCUMENTED "YES")
set(EXNIL_DOC_GENERATE_TAGFILE "${PROJECT_BINARY_DIR}/doc/${SUBPACKAGE_FULLNAME}.tag")
set(EXNIL_DOC_IMAGE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/doc ${DDOC_IMAGE_PATH} ${PARENT_PACKAGE_SOURCE_DIR}")
set(EXNIL_DOC_LIST_EXTERNALS ${DDOC_LIST_EXTERNALS})
# >>> Turn on PDF if requested
set(EXNIL_DOXYGEN_PDF "NO")
if(ENABLE_DOCUMENTATION_PDF)
set(EXNIL_DOXYGEN_PDF "YES")
endif()
# >>> Turn on XML if requested
set(EXNIL_DOXYGEN_XML "NO")
if(ENABLE_DOCUMENTATION_XML)
set(EXNIL_DOXYGEN_XML "YES")
endif()
# > Set up input list
# If no inputs are supplied, assume we're looking for stuff in the current
# source directory and the "doc" subdirectory
set(EXNIL_DOC_INPUT_FILES)
if(NOT DDOC_INPUTS AND NOT DDOC_CONF_INPUTS)
set(DDOC_INPUTS . doc)
endif()
# Paths relative to subpackage source directory
foreach(input_value ${DDOC_INPUTS})
set(EXNIL_DOC_INPUT_FILES "${EXNIL_DOC_INPUT_FILES} \\
${${SUBPACKAGE_FULLNAME}_SOURCE_DIR}/${input_value}"
)
endforeach(input_value)
# Paths relative to current binary directory
foreach(input_value ${DDOC_CONF_INPUTS})
set(EXNIL_DOC_INPUT_FILES "${EXNIL_DOC_INPUT_FILES} \\
${CMAKE_CURRENT_BINARY_DIR}/${input_value}"
)
endforeach(input_value)
# > Set up tag file list
set(EXNIL_DOC_IN_TAGFILES) # Series of of Doxygen tag files that we use
foreach(_SPFN ${_SUBPACKAGE_DEPENDS})
set(_TAGFILE "${PROJECT_BINARY_DIR}/doc/${_SPFN}.tag")
set(_BINDIR ${${_SPFN}_BINARY_DIR})
set(EXNIL_DOC_IN_TAGFILES "${EXNIL_DOC_IN_TAGFILES} \\
${_TAGFILE}=${_BINDIR}/html")
endforeach()
# >>> CONFIGURE DOXYFILE
set(_CONFIGURED_DOXYFILE "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
configure_file(
${PROJECT_SOURCE_DIR}/doc/Doxyfile.in
${_CONFIGURED_DOXYFILE}
@ONLY #operate on @VAR@, not ${VAR}
)
# >>> CREATE TARGET AND DEPENDENCIES
set(_TARGET "doc_${SUBPACKAGE_FULLNAME}")
add_custom_command(
OUTPUT ${EXNIL_DOC_GENERATE_TAGFILE}
COMMAND ${DOXYGEN_EXECUTABLE} ${_CONFIGURED_DOXYFILE}
DEPENDS ${_CONFIGURED_DOXYFILE} ${DDOC_DEPENDS}
COMMENT "Generating ${PACKAGE_NAME} ${SUBPACKAGE_NAME} docs with Doxygen"
)
add_custom_target(${_TARGET}
COMMENT "Created documentation for ${PACKAGE_NAME} ${SUBPACKAGE_NAME}"
DEPENDS ${EXNIL_DOC_GENERATE_TAGFILE}
)
foreach(_SPFN ${_SUBPACKAGE_DEPENDS})
#message(STATUS "Adding dependency on doc_${_SPFN} to ${_TARGET}")
add_dependencies(${_TARGET} "doc_${_SPFN}")
endforeach()
add_dependencies(doc ${_TARGET})
endmacro()
##---------------------------------------------------------------------------##
## end of ProfugusDoc.cmake
##---------------------------------------------------------------------------##
##---------------------------------------------------------------------------##
## Profugus/cmake/ProjectDependenciesSetup.cmake
## Thomas M. Evans
## ProfugusMC/cmake/ProjectDependenciesSetup.cmake
## Steven P. Hamilton
## Monday December 2 21:40:34 2013
##---------------------------------------------------------------------------##
# Used when Profugus is built as the "Profugus" project.
SET_DEFAULT(Profugus_REPOSITORY_MASTER_EMAIL_ADDRESSS
evanstm@ornl.gov)
# Used when ProfugusMC is built as the "ProfugusMC" project.
SET_DEFAULT(ProfugusMC_REPOSITORY_MASTER_EMAIL_ADDRESSS
hamiltonsp@ornl.gov)
##---------------------------------------------------------------------------##
## end of Profugus/cmake/ProjectDependenciesSetup.cmake
## end of ProfugusMC/cmake/ProjectDependenciesSetup.cmake
##---------------------------------------------------------------------------##
##---------------------------------------------------------------------------##
## Profugus/cmake/RepositoryDependenciesSetup.cmake
## ProfugusMC/cmake/RepositoryDependenciesSetup.cmake
## Thomas M. Evans
## Tuesday August 7 16:22:41 2012
##---------------------------------------------------------------------------##
# Used when "Profugus" is a repository in another project build.
SET_DEFAULT(Profugus_REPOSITORY_MASTER_EMAIL_ADDRESSS
evanstm@ornl.gov)
# Used when "ProfugusMC" is a repository in another project build.
SET_DEFAULT(ProfugusMC_REPOSITORY_MASTER_EMAIL_ADDRESSS
hamilton@ornl.gov)
##---------------------------------------------------------------------------##
## end of Profugus/cmake/RepositoryDependenciesSetup.cmake
## end of ProfugusMC/cmake/RepositoryDependenciesSetup.cmake
##---------------------------------------------------------------------------##
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = build
# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
endif
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
rm -rf $(BUILDDIR)/*
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Profugus.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Profugus.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/Profugus"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Profugus"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
*****************
Building The Code
*****************
.. highlight:: sh
The most straightforward method for building |Profugus| is to use the scripts
in :file:`Profugus/install`. |Profugus| uses the :download:`TriBITS build
system <../../Trilinos/TrilinosBuildQuickRef.pdf>`. This system is a set of
package-based extensions to standard cmake_. So, first you need to obtain
`Trilinos` and `TriBITS` and put them in your top-level |Profugus| directory::
> cd Profugus
> git clone https://github.com/TriBITSPub/TriBITS.git
> ln -s $PATH_TO_TRILINOS .
The preferred mechanism for using the build scripts is to make a *target*
directory where the build is to be performed::
> pwd
/home/me
> mkdir debug
> cd debug
> mkdir target
> cd target
> pwd
/home/me/debug/target
The :file:`install` directory contains several example build scripts. General
options for all platforms (which can be overridden at configure time) are
specified in the :file:`install/base.cmake`:
.. literalinclude:: install/base.cmake
:language: cmake
By default, all of the packages inside of |Profugus| are turned on.
Furthermore, `C++-11` is **required**. The default options specify the
appropriate compiler flags for gcc_. The tests are also turned on by default;
to disable tests in any upstream package simply do not explicitly `ENABLE`
that package. For example, to build the `SPn` package and all of its tests
but only include required *source* from upstream packages, the user would
specify:
.. code-block:: cmake
SET(Profugus_ENABLE_SPn ON CACHE BOOL "")
In this case, only the pieces of `Utils` needed to build `SPn` are compiled.
All tests can be turned off by setting :makevar:`Profugus_ENABLE_TESTS` to
:makevar:`OFF`.
The :file:`install` directory contains several build scripts that are all
suffixed by the platform name. For example, to build on a Linux `x86_64`
system the :file:`install/cmake_x86_64.sh` script can be used:
.. literalinclude:: install/cmake_x86_64.sh
:language: sh
The source and install locations must be set. Also, to enable a optimized
build set :makevar:`BUILD` to :makevar:`RELEASE`. Adjust the paths and
libraries for LAPACK_ to fit your platform. The example assumes that the
ATLAS_ LAPACK_ is available. Any standard LAPACK_ distribution will
work. HDF5_ is **not** required, to build/run/test the applications; however,
problem output will be severely curtailed if a parallel HDF5_ option is not
provided. If HDF5_ is not available, setting::
-DTPL_ENABLE_HDF5:BOOL=OFF \
will disable HDF5_.
To complete the configuration, execute this script inside the *target*
directory and then make/test/install::
> pwd
/home/me/debug/target
> sh /home/me/Profugus/install/cmake_x86_64.sh
> make -j 8
> ctest -j 8