# -*- 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.
#

#
# Abinit build system environment variables
#
# Note: The following statements are in the Python "INI" format, with
#       case-sensitivity activated.
#

#
# Each section represents an environment variable
#
# Available options:
#
#   * declare     : whether to declare the environment variable in
#                   the configure script with AC_ARG_VAR (mandatory);
#
#   * description : help string (mandatory);
#
#   * reset       : whether to initialize the environment variable
#                   (yes or no, mandatory);
#
#   * substitute  : whether the configure script should substitute the
#                   environment variable (yes or no, mandatory);
#
#   * value       : which value to assign if reset = yes (defaults to
#                   empty string).
#
#   * status      : mandatory attribute, set in the '[DEFAULT]' section,
#                   which can be one of the following:
#
#                     * changed <what_changed> (e.g. 'changed meaning'),
#                       when the name of the option did not change;
#                     * new, for new options;
#                     * obsolete, for soon-to-be-removed options;
#                     * renamed <old_name>, for renamed options;
#                     * removed, for recently removed options;
#                     * dropped, for long-removed options;
#                     * stable, for unchanged options (expected default).
#
# Though the 'description' attribute must always be provided, 'status'
# may be omitted if it equals its default value (see '[DEFAULT]'
# section).

# WARNING: modify the defaults with *extreme* care!
[DEFAULT]
declare = no
reset = yes
substitute = yes
status = stable

[ABI_CPPFLAGS]
description = CPPFLAGS holder to permit C/Fortran mixing

[AR]
description = Library archiver
reset = no
substitute = no

[ARFLAGS]
description = Library archiver flags
reset = no
substitute = no

[ARFLAGS_64BITS]
description = Library archiver flags for 64-bit objects
status = removed

[ARFLAGS_CMD]
description = Library archiver commands
value = rc

[ARFLAGS_DEBUG]
description = Library archiver flags for debugging
declare = yes
reset = no

[ARFLAGS_EXTRA]
description = Additional library archiver flags
declare = yes
reset = no

[ARFLAGS_HINTS]
description = Tricky library archiver flags

[ARFLAGS_OPTIM]
description = Library archiver flags for optimization
declare = yes
reset = no

[LD]
description = Linker
reset = no
substitute = no

[NM]
description = List symbols from object files
reset = no
substitute = no

[RANLIB]
description = Generate index to archive
reset = no
substitute = no

[CC]
description = C compiler
reset = no
substitute = no

[CC_LDFLAGS]
description = C linker flags
declare = yes
reset = no

[CC_LDFLAGS_64BITS]
description = C linker flags for 64-bit objects
status = removed

[CC_LDFLAGS_GPU]
description = C linker flags for GPU

[CC_LDFLAGS_DEBUG]
description = C linker flags for debugging
declare = yes
reset = no

[CC_LDFLAGS_EXTRA]
description = Additional C linker flags
reset = no

[CC_LDFLAGS_HINTS]
description = Tricky C linker flags

[CC_LDFLAGS_OPTIM]
description = C linker flags for optimization
declare = yes
reset = no

[CC_LIBS]
description = C linker libraries
declare = yes
reset = no

[CC_LIBS_64BITS]
description = C linker additional libraries for 64-bit objects
status = removed

[CC_LIBS_GPU]
description = C linker additional libraries for GPU

[CC_LIBS_DEBUG]
description = C linker additional libraries for debugging
declare = yes
reset = no

[CC_LIBS_EXTRA]
description = C linker additional libraries
reset = no

[CC_LIBS_HINTS]
description = Tricky C linker additional libraries

[CC_LIBS_OPTIM]
description = C linker additional libraries for optimization
declare = yes
reset = no

[CFLAGS]
description = C compiler flags
reset = no
substitute = no

[CFLAGS_64BITS]
description = C flags for 64-bit objects
status = removed

[CFLAGS_GPU]
description = C flags for GPU

[CFLAGS_DEBUG]
description = C compiler flags for debugging
declare = yes
reset = no

[CFLAGS_EXTRA]
description = Additional C compiler flags
declare = yes
reset = no

[CFLAGS_HINTS]
description = Tricky C compiler flags

[CFLAGS_OPTIM]
description = C compiler flags for optimization
declare = yes
reset = no

[CPP]
description = C preprocessor
reset = no
substitute = no

[CPPFLAGS]
description = C preprocessor flags
reset = no
substitute = no

[CPPFLAGS_64BITS]
description = C preprocessor flags for 64-bit objects
status = removed

[CPPFLAGS_GPU]
description = C preprocessor flags for GPU

[CPPFLAGS_DEBUG]
description = C preprocessor flags for debugging
declare = yes
reset = no

[CPPFLAGS_EXTRA]
description = Additional C preprocessor flags
declare = yes
reset = no

[CPPFLAGS_HINTS]
description = Tricky C preprocessor flags

[CPPFLAGS_OPTIM]
description = C preprocessor flags for optimization
declare = yes
reset = no

[CXX]
description = C++ compiler
reset = no
substitute = no

[CXX_LDFLAGS]
description = C++ linker flags
declare = yes
reset = no
substitute = no

[CXX_LDFLAGS_64BITS]
description = C++ linker flags for 64-bit objects
status = removed

[CXX_LDFLAGS_GPU]
description = C++ linker flags for GPU

[CXX_LDFLAGS_DEBUG]
description = C++ linker flags for debugging
declare = yes
reset = no

[CXX_LDFLAGS_EXTRA]
description = Additional C++ linker flags
declare = yes
reset = no

[CXX_LDFLAGS_HINTS]
description = Tricky C++ linker flags

[CXX_LDFLAGS_OPTIM]
description = C++ linker flags for optimization
declare = yes
reset = no

[CXX_LIBS]
description = C++ linker additional libraries
declare = yes
reset = no

[CXX_LIBS_64BITS]
description = C++ linker additional libraries for 64-bit objects
status = removed

[CXX_LIBS_GPU]
description = C++ linker additional libraries for GPU

[CXX_LIBS_DEBUG]
description = C++ linker additional libraries for debugging
declare = yes
reset = no

[CXX_LIBS_EXTRA]
description = C++ linker additional libraries
reset = no

[CXX_LIBS_HINTS]
description = Tricky C++ linker additional libraries

[CXX_LIBS_OPTIM]
description = C++ linker additional libraries for optimization
declare = yes
reset = no

[CXXFLAGS]
description = C++ compiler flags
reset = no
substitute = no

[CXXFLAGS_64BITS]
description = C++ flags for 64-bit objects
status = removed

[CXXFLAGS_GPU]
description = C++ flags for GPU

[CXXFLAGS_DEBUG]
description = C++ compiler flags for debugging
declare = yes
reset = no

[CXXFLAGS_EXTRA]
description = Additional C++ compiler flags
declare = yes
reset = no

[CXXFLAGS_HINTS]
description = Tricky C++ compiler flags

[CXXFLAGS_OPTIM]
description = C++ compiler flags for optimization
declare = yes
reset = no

[DEFS]
description = C preprocessor definitions
reset = no
substitute = no

[F77]
description = Fortran 77 compiler
reset = no
substitute = no

[FC]
description = Fortran compiler
reset = no
substitute = no

[FC_LDFLAGS]
description = Fortran linker flags
declare = yes
reset = no
substitute = no

[FC_LDFLAGS_64BITS]
description = Fortran linker flags for 64-bit objects
status = removed

[FC_LDFLAGS_DEBUG]
description = Fortran linker flags for debugging
declare = yes
reset = no

[FC_LDFLAGS_EXTRA]
description = Additional Fortran linker flags
declare = yes
reset = no

[FC_LDFLAGS_HINTS]
description = Tricky Fortran linker flags

[FC_LDFLAGS_OPTIM]
description = Fortran linker flags for optimization
declare = yes
reset = no

[FC_LIBS]
description = Fortran linker additional libraries
declare = yes
reset = no

[FC_LIBS_64BITS]
description = Fortran linker additional libraries for 64-bit objects
status = removed

[FC_LIBS_DEBUG]
description = Fortran linker additional libraries for debugging
declare = yes
reset = no

[FC_LIBS_EXTRA]
description = Fortran linker additional libraries
reset = no

[FC_LIBS_HINTS]
description = Tricky Fortran linker additional libraries

[FC_LIBS_OPTIM]
description = Fortran linker additional libraries for optimization
declare = yes
reset = no

[FCFLAGS]
description = Fortran compiler flags
reset = no

[FCFLAGS_64BITS]
description = Fortran flags for 64-bit objects
status = removed

[FCFLAGS_DEBUG]
description = Fortran compiler flags for debugging
declare = yes
reset = no

[FCFLAGS_EXTRA]
description = Additional Fortran compiler flags
declare = yes
reset = no

[FCFLAGS_FIXEDFORM]
description = Fortran flags for fixed-form source files
declare = yes
reset = no

[FCFLAGS_FREEFORM]
description = Fortran flags for free-form source files
declare = yes
reset = no

[FCFLAGS_MODDIR]
description = Fortran compiler flags to use a module directory
declare = yes
reset = no

[FCFLAGS_HINTS]
description = Tricky Fortran compiler flags
declare = yes
reset = no

[FCFLAGS_OPTIM]
description = Fortran compiler flags for optimization
declare = yes
reset = no

[FCFLAGS_OPENMP]
description = Fortran compiler flags to enable openmp
declare = yes
reset = no

[FFT_CFLAGS]
description = C compiler flags for external FFT support
declare = yes
reset = no
status = new

[FFT_FCFLAGS]
description = Fortran compiler flags for external FFT support
declare = yes
reset = no
status = new

[FPP]
description = Fortran preprocessor
declare = yes
reset = no

[FPPFLAGS]
description = Fortran preprocessor flags
declare = yes
reset = no

[FPPFLAGS_DEBUG]
description = Fortran preprocessor flags for debugging
declare = yes
reset = no

[FPPFLAGS_EXTRA]
description = Additional Fortran preprocessor flags
declare = yes
reset = no

[FPPFLAGS_HINTS]
description = Tricky Fortran preprocessor flags

[FPPFLAGS_OPTIM]
description = Fortran preprocessor flags for optimization
declare = yes
reset = no

[LTXFLAGS]
description = LaTeX flags
reset = no
status = removed

[MDFLAGS]
description = Markdown text-to-HTML processor flags
reset = no
status = removed

[MODEXT]
description = Fortran module extension
reset = yes

[MPI_RUNNER]
description = MPI runner command
declare = yes
reset = no
status = removed

[NVCC]
description = nVidia CUDA C compiler
reset = no

[NVCC_CFLAGS]
description = nVidia CUDA C compiler flags
reset = no

[NVCC_CPPFLAGS]
description = nVidia CUDA preprocessing options
reset = no

[NVCC_LDFLAGS]
description = nVidia CUDA C linker flags
reset = no

[NVCC_LIBS]
description = nVidia CUDA C linker additional libraries
reset = no

[PDFFLAGS]
description = DVI->PDF converter flags
reset = no
status = removed

[PYFLAGS]
description = Execution flags for the Python interpreter
declare = yes
reset = no
status = new

[PYTHON_CPPFLAGS]
description = C preprocessing flags for C/Python bindings
declare = yes
reset = no
status = new

[SERIAL_RUNNER]
description = Serial runner command
declare = yes
reset = no
status = removed

[TRUE_CPP]
description = True stand-alone C preprocessor for use with Fortran wrappers
substitute = no

[XPP]
description = C++ preprocessor
declare = yes
reset = no

[XPPFLAGS]
description = C++ preprocessor flags
declare = yes
reset = no

[XPPFLAGS_DEBUG]
description = C++ preprocessor flags for debugging
declare = yes
reset = no

[XPPFLAGS_EXTRA]
description = Additional C++ preprocessor flags
declare = yes
reset = no

[XPPFLAGS_OPTIM]
description = C++ preprocessor flags for optimization
declare = yes
reset = no

