New target "hc08" for the Motorola 68hc08 family of micros
[fw/sdcc] / src / SDCCmain.c
index ea98540c91ec5e9b1679a82fa83e7c1f1161c4e5..2002576ff8f922d86aa5f5941096b1e10f4e6133 100644 (file)
@@ -304,6 +304,7 @@ static PORT *_ports[] =
 #if !OPT_DISABLE_DS400
   &ds400_port, 
 #endif 
+  &hc08_port,
 };
 
 #define NUM_PORTS (sizeof(_ports)/sizeof(_ports[0]))
@@ -485,10 +486,16 @@ void
 setParseWithComma (set **dest, char *src)
 {
   char *p;
+  int length;
 
   /* skip the initial white spaces */
   while (isspace(*src))
     src++;
+  
+  /* skip the trailing white spaces */
+  length = strlen(src);
+  while (length && isspace(src[length-1]))
+    src[--length] = '\0';
 
   for (p = strtok(src, ","); p != NULL; p = strtok(NULL, ","))
     addSet(dest, Safe_strdup(p));
@@ -1381,7 +1388,7 @@ linkEdit (char **envp)
   /* standard library path */
     if (!options.nostdlib)
     {
-        if (!(TARGET_IS_Z80 || TARGET_IS_GBZ80)) /*Not for the z80, gbz80*/
+        if (!(TARGET_IS_Z80 || TARGET_IS_GBZ80 || TARGET_IS_HC08)) /*Not for the z80, gbz80*/
         {
             switch (options.model)
             {
@@ -1420,7 +1427,9 @@ linkEdit (char **envp)
         }
         else /*for the z80, gbz80*/
         {
-            if (TARGET_IS_Z80)
+            if (TARGET_IS_HC08)
+                c = "hc08";
+            else if (TARGET_IS_Z80)
                 c = "z80";
             else
                 c = "gbz80";
@@ -1459,13 +1468,18 @@ linkEdit (char **envp)
         }
 #endif
 #endif
-        if (!(TARGET_IS_Z80 || TARGET_IS_GBZ80)) /*Not for the z80, gbz80*/
+        if (!(TARGET_IS_Z80 || TARGET_IS_GBZ80
+              || TARGET_IS_HC08)) /*Not for the z80, gbz80*/
         { /*Why the z80 port is not using the standard libraries?*/
             fprintf (lnkfile, "-l %s\n", STD_LIB);
             fprintf (lnkfile, "-l %s\n", STD_INT_LIB);
             fprintf (lnkfile, "-l %s\n", STD_LONG_LIB);
             fprintf (lnkfile, "-l %s\n", STD_FP_LIB);
         }
+        else if (TARGET_IS_HC08)
+        {
+            fprintf (lnkfile, "-l hc08\n");
+        }
         else if (TARGET_IS_Z80)
         {
             fprintf (lnkfile, "-l z80\n");