1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-17 00:29:31 +00:00

According to recent comments on my recent pull request, -Wc checking for -E flag has been removed again. Intead, -E flag has been added to cl65 without need of -Wc. Two functions have been introduced to disable compile, link or both. These function remove assigment repetions to DoAssemble and DoLink for litte overhead, having the maintainability in mind.

This commit is contained in:
mc78 2017-05-16 13:13:09 +02:00
parent 4cbfb4e199
commit 691df09a1f

View File

@ -156,7 +156,21 @@ static char* TargetLib = 0;
# endif
#endif
/*****************************************************************************/
/* Credential functions */
/*****************************************************************************/
void DisableAssembling(void){
DoAssemble = 0;
}
void DisableLinking(void){
DoLink = 0;
}
void DisableAssemblingAndLinking(void){
DisableAssembling();
DisableLinking();
}
/*****************************************************************************/
/* Command structure handling */
@ -1399,8 +1413,7 @@ int main (int argc, char* argv [])
case 'S':
/* Dont assemble and link the created files */
DoAssemble = 0;
DoLink = 0;
DisableAssemblingAndLinking();
break;
case 'T':
@ -1416,37 +1429,16 @@ int main (int argc, char* argv [])
case 'E':
/*Forward -E to compiler*/
CmdAddArg (&CC65, Arg);
DoAssemble = 0;
DoLink = 0;
DisableAssemblingAndLinking();
break;
case 'W':
if (Arg[2] == 'a' && Arg[3] == '\0') {
/* -Wa: Pass options to assembler */
OptAsmArgs (Arg, GetArg (&I, 3));
}
else if (Arg[2] == 'c' && Arg[3] == '\0') {
} else if (Arg[2] == 'c' && Arg[3] == '\0') {
/* -Wc: Pass options to compiler */
/* Get argument succeeding -Wc switch */
const char* WcSubArgs = GetArg (&I, 3);
/* Remember -Wc sub arguments in cc65 arg struct */
OptCCArgs (Arg, WcSubArgs);
/* Check for isolated -E switch given after -Wc*/
if (!strcmp("-E", WcSubArgs)){
/*If both -Wc and -E given, then prevent assembling
and linking */
DoAssemble = 0;
DoLink = 0;
}else{
/* Check for -E beeing part of comma separated arg
list given after -Wc*/
if ( (NULL!=strstr(WcSubArgs, "-E,")) ||
(NULL!=strstr(WcSubArgs, ",-E"))){
DoAssemble = 0;
DoLink = 0;
}
}
OptCCArgs (Arg, GetArg (&I, 3));
} else if (Arg[2] == 'l' && Arg[3] == '\0') {
/* -Wl: Pass options to linker */
OptLdArgs (Arg, GetArg (&I, 3));
@ -1458,7 +1450,7 @@ int main (int argc, char* argv [])
case 'c':
/* Don't link the resulting files */
DoLink = 0;
DisableLinking();
break;
case 'd':