{ 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, "<func[,func,...]> Cause the called function to save registers insted of the caller", CLAT_SET },
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;
#ifdef SDCC_SUB_VERSION_STR
"/" SDCC_SUB_VERSION_STR
#endif
- " #%s (" __DATE__ ") (%s)\n",
- getBuildNumber(), getBuildEnvironment() );
+ " #%s (%s) (%s)\n",
+ getBuildNumber(), getBuildDate(), getBuildEnvironment() );
}
static void
/* if code size specified */
if (options.code_size)
fprintf (lnkfile, "-w 0x%04x\n", options.code_size);
-
- if (options.debug)
- fprintf (lnkfile, "-z\n");
}
+ if (options.debug)
+ fprintf (lnkfile, "-z\n");
+
#define WRITE_SEG_LOC(N, L) \
if (N) \
{ \
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];
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}"));
/* standard include path */
if (!options.nostdinc) {
- inclList = appendStrSet(includeDirsSet, "-I\"", "\"");
+ inclList = appendStrSet(includeDirsSet, "-isystem \"", "\"");
mergeSets(&preArgvSet, inclList);
}
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)