[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: .ONESHELL enhancement?
From: |
Paul Smith |
Subject: |
Re: .ONESHELL enhancement? |
Date: |
Tue, 22 Sep 2009 15:34:10 -0400 |
On Tue, 2009-09-22 at 12:29 -0400, David Boyce wrote:
> I have an interest in seeing the .ONESHELL special target enhancement
> implemented, as recommended by POSIX (see the RATIONALE section within
> http://www.opengroup.org/onlinepubs/009695399/). So I have a few
> questions for the GNU make gatekeepers:
>
> - Would such an enhancement be welcomed, with a likelihood of eventual
> incorporation?
Sure, this is something I'd like to have.
> - If it could be shown reliably to not affect anyone not specifying
> .ONESHELL, would it have a chance of making the 3.82 release? That's
> assuming 3.82 isn't still on an Oct 1 schedule, of course.
3.82 was never going to be released on Oct 1. I was going to start the
release candidate cycle on Oct 1. In the past, RC cycles have lasted a
month or more. Some have asked to delay to Oct 15; I'm going to see
what's what when Oct 1 rolls around.
As for 3.82 inclusion, it all depends on when it gets done :-). I
probably wouldn't hold the release for a long time for it but if it was
"close" I would consider it.
> - This _feels_ like a pretty easy feature to add; though I don't know
> the sources well, it appears that the "recipe" is contained within
> file->cmds->commands in a newline-separated sequence of commands.
> AFAICT it seems like a simple matter of splitting this on newlines and
> replacing them with " && ", which is supported by both POSIX and
> Windows shells. Am I right, and if so can anyone suggest the best
> place to make the change? I'm looking at execute_file_commands() or
> new_job() but there may be a better place. Of course it would be most
> elegant to separate commands in the string with "&&" in the first
> place rather than replacing later, but I suspect that due to parse
> order we might not have seen .ONESHELL in time to do this.
I can't speak to the Windows implementation, but why do you need to do
any translation of the script on POSIX systems? You can pass a string
containing a newline to the shell and it will work; you don't have to
add in "&&" or ";" or anything.
E.g., for a command like:
all:
echo hi
echo there
why can't you just take this string as-is and invoke:
/bin/sh -c "echo hi
echo there"
??
- .ONESHELL enhancement?, David Boyce, 2009/09/22
- Re: .ONESHELL enhancement?, Eli Zaretskii, 2009/09/22
- Re: .ONESHELL enhancement?, Boris Kolpackov, 2009/09/22
- Re: .ONESHELL enhancement?, David Boyce, 2009/09/22
- Re: .ONESHELL enhancement?,
Paul Smith <=
- Re: .ONESHELL enhancement?, David Boyce, 2009/09/22
- Re: .ONESHELL enhancement?, Eric Melski, 2009/09/23
- Re: .ONESHELL enhancement?, David Boyce, 2009/09/23
- Re: .ONESHELL enhancement?, Eric Melski, 2009/09/23
- Re: .ONESHELL enhancement?, David Boyce, 2009/09/23
- Re: .ONESHELL enhancement?, Paul Smith, 2009/09/23
- Re: .ONESHELL enhancement?, David Boyce, 2009/09/23