[sent only to Chad by mistake]

# [EMAIL PROTECTED] / 2002-09-23 10:35:54 -0600:
> On Mon, Sep 23, 2002 at 05:35:16PM +0200, Roman Neuhauser wrote:
> > > unless you explicitly export things as environment variables,
> > > or set them on a command line when re-invoking Make.
> > 
> >     i'm not sure what to take of this. consider this makefile:
> > 
> > DESTDIR=
> > SOURCES=    foo bar baz
> > TARGETS:=   ${SOURCES:C;^;${DESTDIR}/;}
> > SRCFILE=    ${.TARGET:C,^${DESTDIR}/,,}     
> > 
> > .BEGIN:
> >     @echo "\$${DESTDIR}: ${DESTDIR}"
> >     @echo "\$${TARGETS}: ${TARGETS}"
> > 
> > all: ${TARGETS}
> > 
> > ${TARGETS}: ${SRCFILE}
> >     @echo "SRC: ${SRCFILE} -> TGT: ${.TARGET}"
> > 
> > .PHONY: all ${TARGETS}
> > 
> > roman@freepuppy ~/tmp 1133:0 > make all DESTDIR=/tmp/maketest
> > ${DESTDIR}: /tmp/maketest
> > ${TARGETS}: /foo /bar /baz
> > Graph cycles through /foo
> > 
> > Graph cycles through /bar
> > 
> > Graph cycles through /baz
> > 
> > `all' not remade because of errors.
> > roman@freepuppy ~/tmp 1133:0 > 
> 
> How about something like this:
> 
> #DESTDIR=     This overrides the command line setting.

    As I said earlier, with DESTDIR= in the Makefile, .BEGIN still
    displays the value passed on the command line. These two things
    (your statement, and the observed behavior) seem to contradict each
    other.

    Wait, I know the assignment in my Makefile overrides the commandline
    assignment: but only outside targets. I just wanted to point out
    that going into a bit more detail can save quite an amount of
    confusion. :)

> #DESTDIR?=    /my/default might work better?
> 
> SOURCES=      foo bar baz
> TARGETS:=     ${SOURCES:C;^;${DESTDIR}/;}
> 
> # Note: SRCFILE is evaluated at startup, which results in "" as .TARGET
> # is not yet defined, and then it is evaluated in each target..

    yup, per the man page.

> # Note that DESTDIR will be overriden by the define at the top by the
> # time we get into a target.

    i'm not sure i'm reading this right, but if i am, you're saying the
    opposite of what i'm seeing: DESTDIR is overriden by the command
    line assignment.

    [further explanation snipped]

> Good luck, and I hope that helps.
 
    you bet! awesome, thanks!

> > > Nik Clayton mentioned a tool to automatically diagram makefile dependency
> > > graphs by target at the last FreeBSD UKUG meeting, using graphviz, but I
> > > can't recall its name.
> > 
> >     I'll google, thanks.
> 
> Let me know if you find this :)

    yeah, i'm aware i don't have much to google for. :)

    btw, i'm sure i'll run into other delicate features in pmake. is it
    okay for me to continue asking here? questions@ doesn't seem to be
    *the* place.

-- 
begin 666 nonexistent.vbs
FreeBSD 4.7-RC
6:49PM up 6 days, 2:04, 29 users, load averages: 0.00, 0.04, 0.06
end

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to