Subject: Re: make(8) .PREFIX issue
To: Christos Zoulas <>
From: Hauke Fath <hauke@Espresso.Rhein-Neckar.DE>
List: current-users
Date: 10/21/2004 21:04:46
At 17:00 Uhr +0000 21.10.2004, Christos Zoulas wrote:
>So $*, or ${.PREFIX} in BSD make will strip directory names and suffix
>components taking the longest suffix from the list of known suffixes.

Yes, I've learned that in the meantime.

>Yes, the man page should be clearer on that,

...insert a section about what make(8) sees as a suffix, maybe, and refer
to that?

>but the TOG man page is not much better.
>I suspect that what you want is:
>	@echo ${.TARGET:R}

In the end, I went with

MAKEMAP =       /usr/sbin/makemap
MMOPTS =        -v hash
DBS =           mailertable.db access.db

# Else, gives a "make: Graph cycles through mailertable.db"
.SUFFIXES       : .db

${DBS}          : ${.PREFIX}
        ${MAKEMAP} ${MMOPTS} ${.PREFIX} < ${.PREFIX}

which does the trick nicely. I'll think about the doc PR.


/~\  The ASCII Ribbon Campaign
\ /    No HTML/RTF in email
 X     No Word docs in email
/ \  Respect for open standards