X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=as%2Flink%2Fz80%2Flkmain.c;h=fe5c174de6317e03c5fa3f7bd3ad7a50795266e8;hb=d60a9db49385f694bb4b5a33c4d4c21d2e05d254;hp=0c6d5c7580918302452e76ab37879751c23d2c48;hpb=40a52b0fdc1132d08dbd207d135186ea9a73d2c5;p=fw%2Fsdcc diff --git a/as/link/z80/lkmain.c b/as/link/z80/lkmain.c index 0c6d5c75..fe5c174d 100644 --- a/as/link/z80/lkmain.c +++ b/as/link/z80/lkmain.c @@ -7,6 +7,7 @@ * Alan R. Baldwin * 721 Berkeley St. * Kent, Ohio 44240 + * 31-Feb-2008 AD added -y to create cdb file for non gameboy */ /* @@ -320,6 +321,14 @@ main(int argc, char *argv[]) #endif /* GAMEBOY */ syminit(); + + if (dflag){ + SaveLinkedFilePath(linkp->f_idp); //Must be the first one... + dfp = afile(linkp->f_idp,"cdb",1); + if (dfp == NULL) + lkexit(1); + } + for (pass=0; pass<2; ++pass) { cfp = NULL; sfp = NULL; @@ -449,6 +458,7 @@ lkexit(int i) if (rfp != NULL) fclose(rfp); if (sfp != NULL) fclose(sfp); if (tfp != NULL) fclose(tfp); + if (dfp != NULL) fclose(dfp); exit(i); } @@ -976,11 +986,15 @@ parse() case 'J': ++symflag; break; - case 'z': case 'Z': oflag = 3; break; #endif /* SDK */ +#ifndef GAMEBOY + case 'z': + dflag = 1; + return(0); +#endif case 'm': case 'M': ++mflag; @@ -1039,7 +1053,6 @@ parse() case 'L': addlib(); return(0); - default: fprintf(stderr, "Invalid option\n"); lkexit(1); @@ -1404,8 +1417,11 @@ afile(char *fn, char *ft, int wf) #else /* SDK */ if ((fp = fopen(fb, wf?"w":"r")) == NULL) { #endif /* SDK */ + if (strcmp(ft,"adb"))/*Do not complaint for optional adb files*/ + { fprintf(stderr, "%s: cannot %s.\n", fb, wf?"create":"open"); lkerr++; + } } return (fp); } @@ -1451,11 +1467,14 @@ char *usetxt[] = { "Output:", " -i Intel Hex as file[IHX]", " -s Motorola S19 as file[S19]", +#ifndef GAMEBOY + " -z Produce SDCdb debug as file[cdb]", +#endif #ifdef SDK #ifdef GAMEGEAR - " -z Gamegear image as file[GG]", + " -Z Gamegear image as file[GG]", #else - " -z Gameboy image as file[GB]", + " -Z Gameboy image as file[GB]", #endif /* GAMEGEAR */ #endif /* SDK */ "List:",