# -*- INI -*-
#
# Copyright (C) 2009-2021 ABINIT Group (Yann Pouillon)
#
# This file is part of the ABINIT software package. For license information,
# please see the COPYING file in the top-level directory of the ABINIT source
# distribution.
#

#
# Configuration file for the debugging options of Abinit
#
# Note: The following statements are in the Python "INI" format, with
#       case-sensitivity activated.
#

#
# Each section represents a programming language
#
# Available options:
#
#   * comp            : name assigned to the compile flags (see 'stages');
#
#   * cpu_vendor_test : shell variable containing the results of CPU
#                       detection (mandatory);
#
#   * cpu_vendors     : supported CPUs for the compiler (mandatory);
#
#   * debug_test      : shell variable containing the status of the
#                       debug mode (mandatory);
#
#   * levels          : supported debugging levels, as defined in
#                       options.conf (mandatory); the order is very
#                       important for the 'mode' option;
#
#   * link            : name assigned to the link flags (see 'stages');
#
#   * mode            : how to treat debugging flags between levels (mandatory)
#       * append  : build the flags by appending to those of previous levels;
#       * replace : build the flags by replacing those of previous levels;
#
#   * prep            : name assigned to the preprocessing flags
#                      (see 'stages');
#
#   * stages          : build steps where to apply the flags (mandatory)
#       * comp : when compiling;
#       * link : when linking;
#       * prep : when preprocessing;
#
#   * vendor_test     : shell variable containing the compiler vendor
#                       (mandatory);
#
#   * vendors         : supported vendors for the selected language
#                       (mandatory);
#
#   * version_test    : shell variable containing the compiler version
#                       (mandatory).
#

# WARNING: modify the defaults with *extreme* care!
[DEFAULT]
cpu_vendors = amd open64 ibm intel
cpu_vendor_test = abi_cpu_spec
levels = basic verbose enhanced paranoid naughty
mode = append
debug_test = abi_debug_flavor
stages = prep comp link
vendors = gnu

# Language: C
[cc]
vendors = aocc arm gnu ibm intel llvm
prep = CPPFLAGS_DEBUG
comp = CFLAGS_DEBUG
link = CC_LDFLAGS_DEBUG
vendor_test = abi_cc_vendor
version_test = abi_cc_version

# Language: C++
[cxx]
vendors = aocc arm gnu ibm intel llvm
prep = CXXCPPFLAGS_DEBUG
comp = CXXFLAGS_DEBUG
link = CXX_LDFLAGS_DEBUG
vendor_test = abi_cxx_vendor
version_test = abi_cxx_version

# Language: Fortran
[fc]
vendors = aocc arm gnu ibm intel nag llvm
prep = FPPFLAGS_DEBUG
comp = FCFLAGS_DEBUG
link = FC_LDFLAGS_DEBUG
vendor_test = abi_fc_vendor
version_test = abi_fc_version

