[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #62118] Fix parsing of command line options -f, --file, --makefile.
From: |
Paul D. Smith |
Subject: |
[bug #62118] Fix parsing of command line options -f, --file, --makefile. |
Date: |
Sun, 27 Feb 2022 18:10:57 -0500 (EST) |
Update of bug #62118 (project make):
Status: None => Fixed
Assigned to: None => psmith
Open/Closed: Open => Closed
Operating System: None => Any
Fixed Release: None => SCM
Triage Status: None => Medium Effort
_______________________________________________________
Follow-up Comment #1:
Thanks for the patches Dmitry.
When looking at the test results I noticed that we were leaving the temporary
files behind if we had to re-exec, because the re-exec'd version of make
didn't realize they were temporary.
I decided to fix this, rather than apply the changes you provided. However I
preserved the tests you wrote.
What I did was create a new command line option which is only used by make
when it re-execs itself, to specify that the filename provided is a temporary
batch file. When the re-exec'd make sees that option it manages that file as
a temporary file: it marks it as up to date and it will delete the file when
it exits. Because of this, we no longer need that extra "-o" option either.
I changed the argv updates accordingly: also I didn't try to preserve the
exact command line options that the user provided. I converted all makefile
options from whatever they were (--file <foo>, --makefile <foo>, --file=<foo>,
--makefile=<foo>) into simply "-f<foo>".
To allow this to be tested I added another hack :( to the test framework: if
the makefile string provided to run_make_test() is the empty string then the
test framework doesn't add any -f options when it invokes make. A few tests
that had used the empty string were updated to pass a blank line instead.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?62118>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/