Packaging deal.II for a Unix-like distribution
    Overview
    
      This page describes how to write packaging scripts
      for deal.II. deal.II is written in
      C++11 and is known to work with GCC, Clang, and Intel compilers. It is
      licensed under the LGPL v2.1. We recommend reading
      the porting document first for a description of
      the requirements of the build system. deal.II does not
      support any type of plug-in architecture for dependencies: all
      dependencies must be provided at compile-time.
      The only required dependency of deal.II is boost.
    
    Examples
    deal.II is already available in many Linux distributions:
    for examples of packaging scripts see, e.g.,
    
      
    
    Suggestions
    
      - 
        deal.II defaults to installing several
        configuration files
        (LICENSE.md, README.md, detailed.log,
        and summary.log) in the installation prefix. We recommend
        deleting these files. LICENSE.md should be installed in the
        correct directory for software licenses.
      
- 
        By default, all tutorial programs are compiled in both debug and release
        mode and installed in the bin subdirectory of the installation
        prefix. We recommend disabling the examples by configuring with
        the -DDEAL_II_COMPILE_EXAMPLES=OFF option.
      
- 
        The CMake configuration of deal.II will determine
        what compiler is being used and pick reasonable optimization and
        debugging flags automatically. Further flags for debug and release mode
        may be supplied by DEAL_II_CXX_FLAGS_DEBUG
        and DEAL_II_CXX_FLAGS_RELEASE variables passed to CMake,
        respectively.
      
- 
        The flag DEAL_II_ALLOW_PLATFORM_INTROSPECTION (enabled by
        default) enables (as the name implies) CPU-specific issues (usually for
        vectorization).
      
- 
        The flag DEAL_II_WITH_64BIT_INDICES changes an integral type
        used for indices in the library. This value should be made consistent
        with the way PETSc is configured.
      
- 
        deal.II includes copies of boost, muParser, TBB, and
        UMFPACK. These bundled packages should be disabled
        via -DDEAL_II_ALLOW_BUNDLED=OFF and these dependencies should
        instead be resolved by ensuring that whenever deal.II
        is installed, the packages above are also installed.
      
- 
        The standard build of GSL does not link libgsl.so against a
        CBLAS implementation, which results in underlinkage
        in deal.II. This is resolved, for example, in the
        Arch Linux PKGBUILD script by stripping the -Wl,--as-needed
        flag from the linker flags.
      
  
     
  
    