Subject: Re: pkg/34207 (/usr/pkgsrc/Makefile -- "make index" deletes INDEX's dependency PKGDB)
To: None <grant@NetBSD.org, gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org,>
From: Joerg Sonnenberger <joerg@britannica.bec.de>
List: pkgsrc-bugs
Date: 01/02/2007 12:00:08
The following reply was made to PR pkg/34207; it has been noted by GNATS.

From: Joerg Sonnenberger <joerg@britannica.bec.de>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: pkg/34207 (/usr/pkgsrc/Makefile  -- "make index" deletes INDEX's dependency PKGDB)
Date: Tue, 2 Jan 2007 12:55:47 +0100

 On Tue, Jan 02, 2007 at 11:40:02AM +0000, Woodchuck wrote:
 >  The relevavnt part is:
 >  
 >  ${.CURDIR}/INDEX:
 >    @${MAKE} ${.CURDIR}/PKGDB
 >    @${RM} -f ${.CURDIR}/INDEX
 >    @${AWK} -f ./mk/scripts/genindex.awk PKGSRCDIR=${.CURDIR} SORT=${SORT} $
 >    {.CURDIR}/PKGDB
 >    @${RM} -f ${.CURDIR}/PKGDB
 
 [added some indentation]
 
 >  It is the rm'ing of PKGDB that prompted the report;  perhaps this
 >  file should be created and removed everytime "make index" is
 >  executed.
 
 There are two parts involved here. The removal itself is one part, the
 dependency on PKGDB another. Before the explicit dependency forced a
 rebuild of INDEX everytime it was used as dependency e.g. of the search
 target. Now it only does that when called explicitly via "make index".
 
 >  Since this is many, many hours of CPU work, I did not
 >  think that was the intent.  But now I do believe it is the intent
 >  of the author.  Otherwise, a messy dependency chain to create PKGDB
 >  would be necessary, and make would probably take longer to check it
 >  than to create PKGDB from nothing.
 
 I don't even think we can cleanly express a correct dependency chain for
 PKGDB without doing something like depending on all Makefiles +
 buildlink3.mk files. That's why I removed the dependency of PKGDB.
 
 The reason why I asked whether the behaviour works as intented is that
 one additional question is unresolved. When we recreate PKGDB and build
 the index, should it try to minimise the time it is non-existing or not?
 I don't think it matters, but you might differ :-)
 
 Joerg