Subject: Re: Weird "make all" behaviort
To: Matthias Drochner <drochner@zelux6.zel.kfa-juelich.de>
From: Eric Haszlakiewicz <haszlaki@UAccess.NET>
List: current-users
Date: 11/06/1997 04:15:56
> [make skips "all" in eg "make clean all install"]
> 
> Looking at bsd.prog.mk, there is a rule:
> .if !defined(BUILD)
> ${DESTDIR}${BINDIR}/${PROGNAME}: .MADE
> .endif

	ok, let's try this again.  I found this works a bit better:
.if !defined(BUILD) && !make(all) && !make(${PROG})
...

and in bsd.man.mk
.if !defined(BUILD) && !make(all) && !make(${CATPAGES})
...

and in bsd.lib.mk
.if !defined(BUILD) && !make(all) && !make(lib${LIB}.a)
${DESTDIR}${LIBDIR}/lib${LIB}.a: .MADE
...
(similarly for the different types of libs.)

There are several other .mk files which use .MADE, however I didn't look at
them yet: I'd like to get some feedback as to whether this is a valid
way of fixing this.  I've tried it out on several examples and it appears
to work.  It seems logically correct because each .mk file has it's own
single 'thing' that it's making for each .MADE  (i.e. bsd.prog.mk is
making ${PROG}, etc..) and the couple !make() cases cover all the ways you
can make that 'thing'.
	Anyone see any problems with this?  If not I'll finish the changes
and make a set of diffs.

eric
(amazing what one can get working and still feel confused about. :) )