diff --git a/NT/tools/rntecl b/NT/tools/rntecl index e68c60db0e43cc42dcad882a8774382c4a0e27c0..00288d825c14a2ca1ec2da9f7209169eefdcede2 100755 --- a/NT/tools/rntecl +++ b/NT/tools/rntecl @@ -1,7 +1,7 @@ #!/usr/local/bin/pike // -*- Pike -*- -// $Id: rntecl,v 1.3 2000/08/01 15:53:31 grubba Exp $ +// $Id: rntecl,v 1.4 2000/08/14 16:11:46 grubba Exp $ // RNTECL, a front-end to Intel ECL with options similar to GCC // Written by Fredrik Hubinette & Henrik Grubbström. @@ -40,6 +40,13 @@ string remove_ext(string file) return reverse(file); } +string o_to_obj(string fname) +{ + if (fname[sizeof(fname)-3..] == ".o") { + return fname + "bj"; + } + return fname; +} int main(int argc, string *argv) { @@ -197,7 +204,7 @@ int main(int argc, string *argv) // Scan through the remaining arguments argv=Getopt.get_args(argv); - cflags+=Array.map(argv[1..],fixpath); + cflags+=Array.map(Array.map(argv[1..],fixpath), o_to_obj); foreach(argv[1..], string tmp) { @@ -220,7 +227,7 @@ int main(int argc, string *argv) case "obj": if(!output) output=remove_ext(argv[1])+".o"; - cflags+=({"-Fo"+fixpath(output)}); + cflags+=({"-Fo"+fixpath(output+"bj")}); wantfile=output; break; @@ -310,6 +317,16 @@ int main(int argc, string *argv) if(wantfile) { + if (target == "obj") { + if(!file_stat(wantfile+"bj")) + { + werror("RNTECL: output file not generated (%s).\n", + wantfile+"bj"); + exit(1); + } + rm(wantfile); + hardlink(wantfile+"bj", wantfile); + } if(!file_stat(wantfile)) { werror("RNTECL: output file not generated (%s).\n",wantfile);