Import("ENV")


ENV.AppendUnique(
    CFLAGS=[
        "-std=gnu17",
    ],
    CXXFLAGS=[
        "-std=c++17",
        "-fno-rtti",
        "-fno-use-cxa-atexit",
        "-fno-exceptions",
        "-fno-threadsafe-statics",
        "-ftemplate-depth=4096",
    ],
    CCFLAGS=[
        "-mcpu=cortex-m4",
        "-mfloat-abi=hard",
        "-mfpu=fpv4-sp-d16",
        "-mthumb",
        # "-MMD",
        # "-MP",
        "-Wall",
        "-Wextra",
        "-Werror",
        "-Wno-address-of-packed-member",
        "-Wredundant-decls",
        "-Wdouble-promotion",
        "-fdata-sections",
        "-ffunction-sections",
        "-fsingle-precision-constant",
        "-fno-math-errno",
        # Generates .su files with stack usage information
        # "-fstack-usage",
        "-g",
    ],
    CPPDEFINES=[
        "_GNU_SOURCE",
        *GetOption("extra_defines"),
    ],
    LINKFLAGS=[
        "-mcpu=cortex-m4",
        "-mfloat-abi=hard",
        "-mfpu=fpv4-sp-d16",
        "-mlittle-endian",
        "-mthumb",
    ],
)