    // Inspect the following #defines. Change them to taste. If you don't
    // need a particular option, change its value into an empty string

    // For more information about this file: 'man 7 icmconf'

// MAINTENANCE RELATED DEFINES THAT ARE TAILORED TO THE CURRENT PROJECT:
// =====================================================================

    // Uncomment to clear the screen starting the compilation
//#define CLS

    // Uncomment to construct a library. Optionally use another name (don't
    // use lib or an extension like .a)
//#define LIBRARY             "ofiles"

    // The source containing main():
#define MAIN                "main.cc"

    // The pattern locating sources in a directory:
#define SOURCES             "*.cc"

    //  The extension of object modules:
#define OBJ_EXT             ".o"

    // Uncomment to construct a shared library 
//#define SHARED

    // If the constructed shared library requires additional libraries then
    // specify these here. E.g., if a library /usr/lib/special/libspecial.so
    // is required then specify  "-L/usr/lib/special -lspecial" 
    // Predefined paths (e.g., /lib, /usr/lib) do not have to be specified
//#define SHAREDREQ           ""

    // Directory to contain temporary results
#define TMP_DIR             "tmp"

    // Uncomment to use the ALL facility and a class dependency setup in the
    // CLASSES file. When a directory contains a file ALL (optionally rename
    // this filename by providing an alternative name) then all its sources
    // and all sources of all classes depending on it are also compiled.  
    // Class dependencies are indicated by the class name (as the first
    // word on a line) optionally followed by additional class names, which
    // are the classes directly depending on the line's first class name.
//#define USE_ALL           "a"

    // By default dependencies are determined by icm-dep (via icmake -d),
    // passing it the following options. If icm-dep should not be called,
    // activate ICM_DEP as an empty string. Alternatively specify your own
    // icm-dep options
//#define ICM_DEP           "-V go"

    // should commands be echoed (ON) or not (OFF) ?
//#define USE_ECHO            ON

    //  Use the VERSION file
//#define USE_VERSION

    // When DEFCOM "program" is specified './icmbuild' is shorthand for 
    // './icmbuild [-s] program'
    // When DEFCOM "library" is specified './icmbuild' is shorthand for 
    // './icmbuild [-s] library'

    // Note that the icmstart script may add a DEFCOM specification to this
    // file, in which case you don't have to uncomment a DEFCOM line here:
//#define DEFCOM "program"
//#define DEFCOM "library"

// COMPILATION AND LINKING RELATED DEFINES
// =======================================

    // The compiler to use. Define CC if a C compiler is used. 
#define CXX                 "g++"
//#define CC                  "gcc"

    // The standard compiler options to use. Define CFLAGS if a C compiler is
    // used. 
    // To suppress colored error messages add option -fdiagnostics-color=never
    // To add debug-code to object files add option -g 
    //
    // Additional options (e.g., --std=c++26) can also be defined in the 
    // ICMAKE_CPPSTD environment variable
#define CXXFLAGS            "-Werror -Wall -O2"
//#define CFLAGS              " -Wall -O2"

    // The extension of internal header files. See PRECOMP below
#define IH                  ".ih"

    // Uncomment to generate a Single Precompiled Header (SPCH).  When
    // activated internal header files are precompiled when they are more
    // recent than the SPCH. SPCH requires IH
//#define SPCH           ""
    // Uncomment to specify a filename to contain the headers to process when
    // generating an SPCH. By default the file 'spch' is used.
//#define SPCH_FILE      "spch"

    // (Deprecated) Uncomment to generate directory-specific precompiled
    // headers. When activated internal header files are precompiled when they
    // are more recent than their precompiled versions. PRECOMP requires IH
//#define PRECOMP           "-x c++-header"

    // Uncomment to suppress warnings about non-existing IH files in 
    // class-directories. This option is only interpreted when PRECOMP
    // (now deprecated) has also been defined
//#define NO_PRECOMP_WARNING

    // Uncomment to use threaded compilation. Th first word is the name of the
    // file (under TMP_DIR) containing the information about the files to
    // compile (defined when calling 'icmbuild'). Additional words can be used
    // to specify icm_multicomp options
//#define MULTICOMP           "jobs -q"

    // Uncomment to relink the binary, even when no sources were changed 
//#define REFRESH

    // Options passed to the linker
//#define LDFLAGS             ""


// LIBRARIES REQUIRED BY THE CONSTRUCTED PROGRAM OR LIBRARY:
// =========================================================

    // any additional libraries the program may need:
//#define ADD_LIBRARIES       ""

    // additional paths (other than the standard paths) to locate additional
    // libraries (specify absolute paths or relative to TMP_DIR):
//#define ADD_LIBRARY_PATHS   ""


// IF NO SCANNER AND NO PARSER ARE USED ALL OF THE FOLLOWING DEFINES 
// CAN BE REMOVED


// DEFINES RELATED TO USING A PARSER GENERATOR
// ===========================================

    // The sub-directory containing the parser's specification file.
    // If the PARSER_DIR directive is specified, then all other directives
    // related to generating a parser must also be specified.
//#define PARSER_DIR          ""

    // What is the program generating a parser?
//#define PARSGEN             "bisonc++"

    // Flags to pass to PARSGEN:
//#define PARSFLAGS           "-V"

    // What is the top-level (or only) grammar specification file?
//#define PARSSPEC            "grammar"

    // Optionally use patterns to specify additional grammar specification 
    // files. These files are (in)directly included by the file specified by
    // the PARSSPEC directive. Specify patterns relative to PARSER_DIR
//#define PARSFILES           ""

    // The source file generated by the parser generator
//#define PARSOUT             "parse.cc"


// DEFINES RELATED TO USING A LEXICAL SCANNER GENERATOR
// ====================================================

    // The sub-directory containing the scanner's specification file.
    // If the SCANNER_DIR directive is specified, then all other directives
    // related to generating a lexical scanner must also be specified.
//#define SCANNER_DIR         ""  

    // What is the program generating the lexical scanner?
//#define SCANGEN             "flexc++"

    // Flags to provide SCANGEN with:
//#define SCANFLAGS           ""

    // Name of the lexical scanner specification file
//#define SCANSPEC            "lexer"
    
    // Optionally use patterns to specify additional scanner specification 
    // files. These files are (in)directly included by the file specified by
    // the SCANSPEC directive. Specify patterns relative to SCANNER_DIR
//#define SCANFILES            ""

    // The source file generated by the lexical scanner
//#define SCANOUT             "lex.cc"






