On Thu, Aug 07, 2003 at 02:50:51PM -0400, Andrew Gallatin wrote: > > Ruslan Ermilov writes: > > On Thu, Aug 07, 2003 at 02:42:30PM -0400, Andrew Gallatin wrote: > > > > > > Using BSD make, how can I apply different rules based on different > > > directories while using only a single makefile? > > > > > There's a .CURDIR variable that can be used to conditionalize > > parts of a makefile. > > > > > Ie, the appended Makefile results in the following compilations: > > > > > > gcc -DLIB -c lib/foo.c -o lib/foo.o > > > gcc -DLIB -c lib/bar.c -o lib/bar.o > > > gcc -DMCP -c mcp/baz.c -o mcp/baz.o > > > > > > Is it possible to do something similar with BSD make? > > > > > It just works "as is" with bmake. What's your problem, Drew? ;-) > > > > $ make -n > > cc -O -pipe -march=pentiumpro -c lib/foo.c > > ;) But its missing the -DLIB or -DMCP. > > Thanks for the .CURDIR hint. > Ah, didn't notice it. Try this:
.for f in $(LIB) $(f:.c=.o): $(f) gcc -DLIB -c $< -o $@ .endfor .for f in $(MCP) $(f:.c=.o): $(f) gcc -DMCP -c $< -o $@ .endfor Cheers, -- Ruslan Ermilov Sysadmin and DBA, [EMAIL PROTECTED] Sunbay Software Ltd, [EMAIL PROTECTED] FreeBSD committer
pgp00000.pgp
Description: PGP signature