mirror of
https://github.com/cc65/cc65.git
synced 2025-08-08 06:25:17 +00:00
Added new command line options, one bug fixed
git-svn-id: svn://svn.cc65.org/cc65/trunk@973 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
141
src/cl65/main.c
141
src/cl65/main.c
@@ -6,7 +6,7 @@
|
|||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* (C) 1999-2000 Ullrich von Bassewitz */
|
/* (C) 1999-2001 Ullrich von Bassewitz */
|
||||||
/* Wacholderweg 14 */
|
/* Wacholderweg 14 */
|
||||||
/* D-70597 Stuttgart */
|
/* D-70597 Stuttgart */
|
||||||
/* EMail: uz@musoftware.de */
|
/* EMail: uz@musoftware.de */
|
||||||
@@ -545,6 +545,7 @@ static void Usage (void)
|
|||||||
" -Or\t\t\tOptimize code, honour the register keyword\n"
|
" -Or\t\t\tOptimize code, honour the register keyword\n"
|
||||||
" -Os\t\t\tOptimize code, inline known C funtions\n"
|
" -Os\t\t\tOptimize code, inline known C funtions\n"
|
||||||
" -S\t\t\tCompile but don't assemble and link\n"
|
" -S\t\t\tCompile but don't assemble and link\n"
|
||||||
|
" -T\t\t\tInclude source as comment\n"
|
||||||
" -V\t\t\tPrint the version number\n"
|
" -V\t\t\tPrint the version number\n"
|
||||||
" -W\t\t\tSuppress warnings\n"
|
" -W\t\t\tSuppress warnings\n"
|
||||||
" -c\t\t\tCompiler and assemble but don't link\n"
|
" -c\t\t\tCompiler and assemble but don't link\n"
|
||||||
@@ -559,9 +560,16 @@ static void Usage (void)
|
|||||||
" -vm\t\t\tVerbose map file\n"
|
" -vm\t\t\tVerbose map file\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Long options:\n"
|
"Long options:\n"
|
||||||
|
" --add-source\t\tInclude source as comment\n"
|
||||||
" --ansi\t\tStrict ANSI mode\n"
|
" --ansi\t\tStrict ANSI mode\n"
|
||||||
" --asm-include-dir dir\tSet an assembler include directory\n"
|
" --asm-include-dir dir\tSet an assembler include directory\n"
|
||||||
|
" --bss-name seg\tSet the name of the BSS segment\n"
|
||||||
|
" --check-stack\t\tGenerate stack overflow checks\n"
|
||||||
|
" --code-name seg\tSet the name of the CODE segment\n"
|
||||||
|
" --codesize x\t\tAccept larger code by factor x\n"
|
||||||
" --cpu type\t\tSet cpu type\n"
|
" --cpu type\t\tSet cpu type\n"
|
||||||
|
" --create-dep\t\tCreate a make dependency file\n"
|
||||||
|
" --data-name seg\tSet the name of the DATA segment\n"
|
||||||
" --debug\t\tDebug mode\n"
|
" --debug\t\tDebug mode\n"
|
||||||
" --debug-info\t\tAdd debug info\n"
|
" --debug-info\t\tAdd debug info\n"
|
||||||
" --feature name\tSet an emulation feature\n"
|
" --feature name\tSet an emulation feature\n"
|
||||||
@@ -569,7 +577,10 @@ static void Usage (void)
|
|||||||
" --include-dir dir\tSet a compiler include directory path\n"
|
" --include-dir dir\tSet a compiler include directory path\n"
|
||||||
" --listing\t\tCreate an assembler listing\n"
|
" --listing\t\tCreate an assembler listing\n"
|
||||||
" --mapfile name\tCreate a map file\n"
|
" --mapfile name\tCreate a map file\n"
|
||||||
|
" --rodata-name seg\tSet the name of the RODATA segment\n"
|
||||||
|
" --signed-chars\tDefault characters are signed\n"
|
||||||
" --start-addr addr\tSet the default start address\n"
|
" --start-addr addr\tSet the default start address\n"
|
||||||
|
" --static-locals\tMake local variables static\n"
|
||||||
" --target sys\t\tSet the target system\n"
|
" --target sys\t\tSet the target system\n"
|
||||||
" --version\t\tPrint the version number\n"
|
" --version\t\tPrint the version number\n"
|
||||||
" --verbose\t\tVerbose mode\n",
|
" --verbose\t\tVerbose mode\n",
|
||||||
@@ -578,6 +589,14 @@ static void Usage (void)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void OptAddSource (const char* Opt, const char* Arg)
|
||||||
|
/* Strict source code as comments to the generated asm code */
|
||||||
|
{
|
||||||
|
CmdAddArg (&CC65, "-T");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void OptAnsi (const char* Opt, const char* Arg)
|
static void OptAnsi (const char* Opt, const char* Arg)
|
||||||
/* Strict ANSI mode (compiler) */
|
/* Strict ANSI mode (compiler) */
|
||||||
{
|
{
|
||||||
@@ -595,6 +614,41 @@ static void OptAsmIncludeDir (const char* Opt, const char* Arg)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void OptBssName (const char* Opt, const char* Arg)
|
||||||
|
/* Handle the --bss-name option */
|
||||||
|
{
|
||||||
|
CmdAddArg (&CC65, "--bss-name");
|
||||||
|
CmdAddArg (&CC65, Arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void OptCheckStack (const char* Opt, const char* Arg)
|
||||||
|
/* Handle the --check-stack option */
|
||||||
|
{
|
||||||
|
CmdAddArg (&CC65, "--check-stack");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void OptCodeName (const char* Opt, const char* Arg)
|
||||||
|
/* Handle the --code-name option */
|
||||||
|
{
|
||||||
|
CmdAddArg (&CC65, "--code-name");
|
||||||
|
CmdAddArg (&CC65, Arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void OptCodeSize (const char* Opt, const char* Arg)
|
||||||
|
/* Handle the --codesize option */
|
||||||
|
{
|
||||||
|
CmdAddArg (&CC65, "--codesize");
|
||||||
|
CmdAddArg (&CC65, Arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void OptCPU (const char* Opt, const char* Arg)
|
static void OptCPU (const char* Opt, const char* Arg)
|
||||||
/* Handle the --cpu option */
|
/* Handle the --cpu option */
|
||||||
{
|
{
|
||||||
@@ -602,7 +656,24 @@ static void OptCPU (const char* Opt, const char* Arg)
|
|||||||
CmdAddArg (&CA65, "--cpu");
|
CmdAddArg (&CA65, "--cpu");
|
||||||
CmdAddArg (&CA65, Arg);
|
CmdAddArg (&CA65, Arg);
|
||||||
CmdAddArg (&CC65, "--cpu");
|
CmdAddArg (&CC65, "--cpu");
|
||||||
CmdAddArg (&CA65, Arg);
|
CmdAddArg (&CC65, Arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void OptCreateDep (const char* Opt, const char* Arg)
|
||||||
|
/* Handle the --create-dep option */
|
||||||
|
{
|
||||||
|
CmdAddArg (&CC65, "--create-dep");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void OptDataName (const char* Opt, const char* Arg)
|
||||||
|
/* Handle the --data-name option */
|
||||||
|
{
|
||||||
|
CmdAddArg (&CC65, "--data-name");
|
||||||
|
CmdAddArg (&CC65, Arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -669,6 +740,23 @@ static void OptMapFile (const char* Opt, const char* Arg)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void OptRodataName (const char* Opt, const char* Arg)
|
||||||
|
/* Handle the --rodata-name option */
|
||||||
|
{
|
||||||
|
CmdAddArg (&CC65, "--rodata-name");
|
||||||
|
CmdAddArg (&CC65, Arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void OptSignedChars (const char* Opt, const char* Arg)
|
||||||
|
/* Make default characters signed */
|
||||||
|
{
|
||||||
|
CmdAddArg (&CC65, "-j");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void OptStartAddr (const char* Opt, const char* Arg)
|
static void OptStartAddr (const char* Opt, const char* Arg)
|
||||||
/* Set the default start address */
|
/* Set the default start address */
|
||||||
{
|
{
|
||||||
@@ -678,6 +766,14 @@ static void OptStartAddr (const char* Opt, const char* Arg)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void OptStaticLocals (const char* Opt, const char* Arg)
|
||||||
|
/* Place local variables in static storage */
|
||||||
|
{
|
||||||
|
CmdAddArg (&CC65, "-Cl");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void OptTarget (const char* Opt, const char* Arg)
|
static void OptTarget (const char* Opt, const char* Arg)
|
||||||
/* Set the target system */
|
/* Set the target system */
|
||||||
{
|
{
|
||||||
@@ -714,20 +810,30 @@ int main (int argc, char* argv [])
|
|||||||
{
|
{
|
||||||
/* Program long options */
|
/* Program long options */
|
||||||
static const LongOpt OptTab[] = {
|
static const LongOpt OptTab[] = {
|
||||||
|
{ "--add-source", 0, OptAddSource },
|
||||||
{ "--ansi", 0, OptAnsi },
|
{ "--ansi", 0, OptAnsi },
|
||||||
{ "--asm-include-dir", 1, OptAsmIncludeDir },
|
{ "--asm-include-dir", 1, OptAsmIncludeDir },
|
||||||
|
{ "--bss-name", 1, OptBssName },
|
||||||
|
{ "--check-stack", 0, OptCheckStack },
|
||||||
|
{ "--code-name", 1, OptCodeName },
|
||||||
|
{ "--codesize", 1, OptCodeSize },
|
||||||
{ "--cpu", 1, OptCPU },
|
{ "--cpu", 1, OptCPU },
|
||||||
{ "--debug", 0, OptDebug },
|
{ "--create-dep", 0, OptCreateDep },
|
||||||
{ "--debug-info", 0, OptDebugInfo },
|
{ "--data-name", 1, OptDataName },
|
||||||
{ "--feature", 1, OptFeature },
|
{ "--debug", 0, OptDebug },
|
||||||
{ "--help", 0, OptHelp },
|
{ "--debug-info", 0, OptDebugInfo },
|
||||||
{ "--include-dir", 1, OptIncludeDir },
|
{ "--feature", 1, OptFeature },
|
||||||
{ "--listing", 0, OptListing },
|
{ "--help", 0, OptHelp },
|
||||||
{ "--mapfile", 1, OptMapFile },
|
{ "--include-dir", 1, OptIncludeDir },
|
||||||
{ "--start-addr", 1, OptStartAddr },
|
{ "--listing", 0, OptListing },
|
||||||
{ "--target", 1, OptTarget },
|
{ "--mapfile", 1, OptMapFile },
|
||||||
{ "--verbose", 0, OptVerbose },
|
{ "--rodata-name", 1, OptRodataName },
|
||||||
{ "--version", 0, OptVersion },
|
{ "--signed-chars", 0, OptSignedChars },
|
||||||
|
{ "--start-addr", 1, OptStartAddr },
|
||||||
|
{ "--static-locals", 0, OptStaticLocals },
|
||||||
|
{ "--target", 1, OptTarget },
|
||||||
|
{ "--verbose", 0, OptVerbose },
|
||||||
|
{ "--version", 0, OptVersion },
|
||||||
};
|
};
|
||||||
|
|
||||||
unsigned I;
|
unsigned I;
|
||||||
@@ -768,7 +874,7 @@ int main (int argc, char* argv [])
|
|||||||
case 'C':
|
case 'C':
|
||||||
if (Arg[2] == 'l' && Arg[3] == '\0') {
|
if (Arg[2] == 'l' && Arg[3] == '\0') {
|
||||||
/* Make local variables static */
|
/* Make local variables static */
|
||||||
CmdAddArg (&CC65, "-Cl");
|
OptStaticLocals (Arg, 0);
|
||||||
} else {
|
} else {
|
||||||
/* Specify linker config file */
|
/* Specify linker config file */
|
||||||
LinkerConfig = GetArg (&I, 2);
|
LinkerConfig = GetArg (&I, 2);
|
||||||
@@ -808,7 +914,7 @@ int main (int argc, char* argv [])
|
|||||||
|
|
||||||
case 'T':
|
case 'T':
|
||||||
/* Include source as comment (compiler) */
|
/* Include source as comment (compiler) */
|
||||||
CmdAddArg (&CC65, "-T");
|
OptAddSource (Arg, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'V':
|
case 'V':
|
||||||
@@ -844,6 +950,11 @@ int main (int argc, char* argv [])
|
|||||||
OptHelp (Arg, 0);
|
OptHelp (Arg, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'j':
|
||||||
|
/* Default characters are signed */
|
||||||
|
OptSignedChars (Arg, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'l':
|
case 'l':
|
||||||
/* Create an assembler listing */
|
/* Create an assembler listing */
|
||||||
OptListing (Arg, 0);
|
OptListing (Arg, 0);
|
||||||
|
Reference in New Issue
Block a user