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",
        "-Wimplicit-function-declaration",
        "-Wbuiltin-declaration-mismatch",
        "-Wredundant-decls",
        "-Wdouble-promotion",
        "-Wchar-subscripts",
        "-fdata-sections",
        "-ffunction-sections",
        "-fsingle-precision-constant",
        "-fno-math-errno",
        "-fstack-usage",
        "-g",
        "-Wno-unused-parameter",
        "-Wno-type-limits",
        "-Wno-unused-variable",
        # "-Wno-stringop-overread",
        # "-Wno-stringop-overflow",
    ],
    CPPDEFINES=[
        "_GNU_SOURCE",
    ],
    LINKFLAGS=[
        "-mcpu=cortex-m4",
        "-mfloat-abi=hard",
        "-mfpu=fpv4-sp-d16",
        "-mlittle-endian",
        "-mthumb",
    ],
)
