]> git.sur5r.net Git - cc65/commitdiff
Added new cl65 options -Wc and --cc-args.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 21 Feb 2012 20:23:36 +0000 (20:23 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 21 Feb 2012 20:23:36 +0000 (20:23 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@5538 b7a2c559-68d2-44c3-8de9-860c34a00d81

doc/cl65.sgml
src/cl65/main.c

index b65f7f69bb522c9c6e2baaef52aec4f1955095ba..0f107c370ac067dcf7a04810e0c4a8d037916b95 100644 (file)
@@ -72,6 +72,7 @@ Long options:
   --bin-include-dir dir         Set an assembker binary include directory
   --bss-label name              Define and export a BSS segment label
   --bss-name seg                Set the name of the BSS segment
+  --cc-args options             Pass options to the compiler
   --cfg-path path               Specify a config file search path
   --check-stack                 Generate stack overflow checks
   --code-label name             Define and export a CODE segment label
@@ -172,6 +173,16 @@ There are a few remaining options that control the behaviour of cl65:
   if cl65 supports an option by itself, do not pass this option to the
   assembler by means of the <tt/-Wa/ switch.
 
+  <tag><tt>-Wc options, --cc-args options</tt></tag>
+
+  Pass options directly to the compiler. This may be used to pass options
+  that aren't directly supported by cl65. Several options may be separated by
+  commas, the commas are replaced by spaces when passing them to the
+  compiler. Beware: Passing arguments directly to the compiler may interfere
+  with some of the defaults, because cl65 doesn't parse the options passed. So
+  if cl65 supports an option by itself, do not pass this option to the
+  compiler by means of the <tt/-Wc/ switch.
+
   <tag><tt>-Wl options, --ld-args options</tt></tag>
 
   Pass options directly to the linker. This may be used to pass options that
@@ -182,7 +193,7 @@ There are a few remaining options that control the behaviour of cl65:
   supports an option by itself, do not pass this option to the linker by means
   of the <tt/-Wl/ switch.
 
-</descrip>
+</descrip>                        
 
 
 
index d10e03a307f7230fc32a22a0534089d38ac6d967..d20f1a2becb51f75038bec95a9da0f274571f565 100644 (file)
@@ -697,6 +697,7 @@ static void Usage (void)
             "  -V\t\t\t\tPrint the version number\n"
             "  -W name[,...]\t\t\tSuppress compiler warnings\n"
             "  -Wa options\t\t\tPass options to the assembler\n"
+            "  -Wc options\t\t\tPass options to the compiler\n"
             "  -Wl options\t\t\tPass options to the linker\n"
             "\n"
             "Long options:\n"
@@ -707,6 +708,7 @@ static void Usage (void)
             "  --bin-include-dir dir\t\tSet an assembler binary include directory\n"
             "  --bss-label name\t\tDefine and export a BSS segment label\n"
             "  --bss-name seg\t\tSet the name of the BSS segment\n"
+            "  --cc-args options\t\tPass options to the compiler\n"
             "  --cfg-path path\t\tSpecify a config file search path\n"
             "  --check-stack\t\t\tGenerate stack overflow checks\n"
             "  --code-label name\t\tDefine and export a CODE segment label\n"
@@ -813,6 +815,14 @@ static void OptBssName (const char* Opt attribute ((unused)), const char* Arg)
 
 
 
+static void OptCCArgs (const char* Opt attribute ((unused)), const char* Arg)
+/* Pass arguments to the compiler */
+{
+    CmdAddArgList (&CC65, Arg);
+}
+
+
+
 static void OptCfgPath (const char* Opt attribute ((unused)), const char* Arg)
 /* Config file search path (linker) */
 {
@@ -1229,6 +1239,7 @@ int main (int argc, char* argv [])
         { "--bin-include-dir",  1,      OptBinIncludeDir        },
                { "--bss-label",        1,      OptBssLabel             },
        { "--bss-name",         1,      OptBssName              },
+        { "--cc-args",          1,      OptCCArgs               },
                { "--cfg-path",         1,      OptCfgPath              },
                { "--check-stack",      0,      OptCheckStack           },
                { "--code-label",       1,      OptCodeLabel            },
@@ -1360,6 +1371,9 @@ int main (int argc, char* argv [])
                    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') {
+                       /* -Wc: Pass options to compiler */
+                       OptCCArgs (Arg, GetArg (&I, 3));
                    } else if (Arg[2] == 'l' && Arg[3] == '\0') {
                        /* -Wl: Pass options to linker */
                        OptLdArgs (Arg, GetArg (&I, 3));