X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2FSDCCmain.c;h=12909d3b01abdb824a3eb09c0f60bd690b8c5223;hb=3bd25d75bcad68055bb616dcc29dde8a2965965e;hp=77b695a107fbf95fef67b09e6f057e9129437e46;hpb=9e57217f1c4cb55acac19d7b6e1830e5be70568f;p=fw%2Fsdcc diff --git a/src/SDCCmain.c b/src/SDCCmain.c index 77b695a1..12909d3b 100644 --- a/src/SDCCmain.c +++ b/src/SDCCmain.c @@ -186,8 +186,8 @@ optionsTable[] = { { 0, OPTION_SMALL_MODEL, NULL, "internal data space is used (default)" }, { 0, "--stack-auto", &options.stackAuto, "Stack automatic variables" }, { 0, "--xstack", &options.useXstack, "Use external stack" }, - { 0, "--int-long-reent", &options.intlong_rent, "Use reenterant calls on the int and long support functions" }, - { 0, "--float-reent", &options.float_rent, "Use reenterant calls on the float support functions" }, + { 0, "--int-long-reent", &options.intlong_rent, "Use reentrant calls on the int and long support functions" }, + { 0, "--float-reent", &options.float_rent, "Use reentrant calls on the float support functions" }, { 0, "--main-return", &options.mainreturn, "Issue a return after main()" }, { 0, "--xram-movc", &options.xram_movc, "Use movc instead of movx to read xram (xdata)" }, { 0, OPTION_CALLEE_SAVES, &options.calleeSavesSet, " Cause the called function to save registers insted of the caller", CLAT_SET }, @@ -283,7 +283,7 @@ static const char *_baseValues[] = { NULL }; -static const char *_preCmd = "{cpp} -nostdinc -Wall -std=c99 {cppextraopts} \"{fullsrcfilename}\" \"{cppoutfilename}\""; +static const char *_preCmd = "{cpp} -nostdinc -Wall {cppstd}{cppextraopts} \"{fullsrcfilename}\" \"{cppoutfilename}\""; PORT *port; @@ -2014,6 +2014,14 @@ preProcess (char **envp) break; } + /* set macro corresponding to compiler option */ + if (options.intlong_rent) + addSet(&preArgvSet, Safe_strdup("-DSDCC_INT_LONG_REENT")); + + /* set macro corresponding to compiler option */ + if (options.float_rent) + addSet(&preArgvSet, Safe_strdup("-DSDCC_FLOAT_REENT")); + /* add SDCC version number */ { char buf[20]; @@ -2022,6 +2030,13 @@ preProcess (char **envp) addSet(&preArgvSet, Safe_strdup(buf)); } + /* add SDCC revision number */ + { + char buf[25]; + SNPRINTF(buf, sizeof(buf), "-DSDCC_REVISION=%s", getBuildNumber()); + addSet(&preArgvSet, Safe_strdup(buf)); + } + /* add port (processor information to processor */ addSet(&preArgvSet, Safe_strdup("-DSDCC_{port}")); addSet(&preArgvSet, Safe_strdup("-D__{port}")); @@ -2034,7 +2049,7 @@ preProcess (char **envp) /* standard include path */ if (!options.nostdinc) { - inclList = appendStrSet(includeDirsSet, "-I\"", "\""); + inclList = appendStrSet(includeDirsSet, "-isystem \"", "\""); mergeSets(&preArgvSet, inclList); } @@ -2239,6 +2254,20 @@ initValues (void) setMainValue ("linkdstfilename", "{stdlinkdstfilename}"); } + /* + * Make sure the preprocessor is called with the "-std" option + * corresponding to the --std used to start sdcc + */ + if (options.std_c99) + { + if (!options.std_sdcc) + setMainValue ("cppstd", "-std=c99 "); + } + else + { + if (!options.std_sdcc) + setMainValue ("cppstd", "-std=c89 "); + } } static void doPrintSearchDirs(void)