httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From (Ralf S. Engelschall)
Subject Re: [PATCH] for generating modules/Makefile (reprise)
Date Mon, 17 Mar 1997 07:30:36 GMT

In article <> you wrote:

> On Sat, 15 Mar 1997, Rodent of Unusual Size wrote:
> > +       \$(MAKE) CC=\$(CC) AUX_CFLAGS='$(MOD_CFLAGS)' RANLIB='$(RANLIB)'; \\

> I think you want that to read:

> +         \$(MAKE) CC=\$(CC) AUX_CFLAGS='\$(MOD_CFLAGS)' RANLIB='\$(RANLIB)'; \\

> Otherwise on Linux where /bin/sh is bash it tries to run a subshell when
> it sees $(MOD_CFLAGS).

> Other than that it seems to work as advertised and I'll +1 it with this
> change.

Are you sure? I don't think this is correct. The $(VAR) syntax is a Makefile
syntax for interpolation of _Make_ variables.  When the above statements gets
evaluated by Make (which is done _BEFORE_ it gets send to $(SHELL)=bash in
your case) all $(VAR) are expanded first. So the Shell will not see any $(VAR)
strings. It is correct without the backslashes.



        echo X'$(A)'Y

    | rse@en1:/u/rse
    | :> make
    | echo X1Y
    | X1Y
    | rse@en1:/u/rse
    | :> gmake
    | echo X1Y
    | X1Y
    | rse@en1:/u/rse
    | :> _

    As you can see the command send to the shell is already "echo X1Y" and not
    "echo X'$(A)'Y".

                                       Ralf S. Engelschall

View raw message