[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Shell for evaluating .SHELLFLAGS
From: |
David Boyce |
Subject: |
Re: Shell for evaluating .SHELLFLAGS |
Date: |
Tue, 26 May 2015 09:15:27 -0700 |
BTW /usr/bin/env creates a redundant process here. The reason people
use /usr/bin/env to translate an execv() (does not use PATH) to an
execvp() (does). But GNU make uses execvp() already; try "make
SHELL=sh” to see that.
-David Boyce
On Tue, May 26, 2015 at 5:14 AM, Paul Smith <address@hidden> wrote:
> On Mon, 2015-05-25 at 21:05 -0700, Afif Elghraoui wrote:
>> Hello,
>> I am trying to use sqlite3 as my Makefile shell. In order to have the
>> query outputs go to a file, I need to pass a file in to sqlite using its
>> -i flag. I rely on the process substitution feature in bash for the
>> .SHELLFLAGS to provide the file:
>>
>> SHELL=/usr/bin/env sqlite3
>> .SHELLFLAGS=-init <(echo ".output $@") $(DB)
>>
>> I get this error:
>> /bin/sh: 1: Syntax error: "(" unexpected
>> Makefile:13: recipe for target 'fq' failed
>>
>> It looks like .SHELLFLAGS is evaluated with /bin/sh regardless of what
>> SHELL is set to. Is there any way I could evaluate them with bash?
>
> You're missing the main point: the values of SHELL and SHELLFLAGS aren't
> being evaluated by /bin/sh, or bash... they're not being evaluated by
> any shell at all!
>
> The entire point of setting SHELL is you're choosing a shell that make
> will invoke. Make does not use a shell to start the shell that you
> requested: it invokes the shell you requested directly (using the exec()
> system calls).
>
> The simplest way to do what you want is create a script (outside of
> make) that will operate like this, then set SHELL in your makefile to
> that script. You can use #!/bin/bash at the top of that script to
> request it be run in bash, if you like.
>
>
> _______________________________________________
> Help-make mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/help-make
- Shell for evaluating .SHELLFLAGS, Afif Elghraoui, 2015/05/26
- Shell for evaluating .SHELLFLAGS, Afif Elghraoui, 2015/05/26
- RE: Shell for evaluating .SHELLFLAGS, Cook, Malcolm, 2015/05/26
- RE: Shell for evaluating .SHELLFLAGS, Cook, Malcolm, 2015/05/26
- Re: Shell for evaluating .SHELLFLAGS, Afif Elghraoui, 2015/05/26
- Re: Shell for evaluating .SHELLFLAGS, Afif Elghraoui, 2015/05/26
- RE: Shell for evaluating .SHELLFLAGS, Cook, Malcolm, 2015/05/26