Date: Thu, 2 Nov 2006 21:41:51 -0500 From: Tom Rhodes <trhodes@FreeBSD.org> To: "Bruce A. Mah" <bmah@FreeBSD.org> Cc: freebsd-doc@FreeBSD.org Subject: Re: Install docs oddity Message-ID: <20061102214151.273c4ef8.trhodes@FreeBSD.org> In-Reply-To: <454A9A72.4050005@freebsd.org> References: <454A9A72.4050005@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 02 Nov 2006 17:25:06 -0800 "Bruce A. Mah" <bmah@freebsd.org> wrote: > This is a weird problem I ran into today. Basically I was trying to do > a "make install" from the top of the doc tree and it seemed to be taking > a *really* long time. When I looked at the output from make, it seemed > to be iterating multiple times over the tree. > > To see the problem, chdir to the top of a checked-out doc/ tree (I'm on > RELENG_6 if that's relevant) and do: > > % make -n install > > If you look at the commands that would get executed, it looks like we > recurse twice into each of the language subdirectories...first we hit > every subdirectory with some commands like this: > > echo "===> en_US.ISO8859-1" > cd /usr/doc/en_US.ISO8859-1 && make install DIRPRFX=en_US.ISO8859-1/ > > Then we do a big loop over all of the subdirectories like this: > > for entry in en_US.ISO8859-1 bn_BD.ISO10646-1 da_DK.ISO8859-1 > de_DE.ISO8859-1 el_GR.ISO8859-7 es_ES.ISO8859-1 fr_FR.ISO8859-1 > it_IT.ISO8859-15 ja_JP.eucJP nl_NL.ISO8859-1 pl_PL.ISO8859-2 > pt_BR.ISO8859-1 ru_RU.KOI8-R sr_YU.ISO8859-2 tr_TR.ISO8859-9 > zh_CN.GB2312 zh_TW.Big5; do if test -d /usr/doc/${entry}.i386; then > echo "===> ${entry}.i386 (install)"; edir=${entry}.i386; cd > /usr/doc/${edir}; else echo "===> $entry (install)"; edir=${entry}; > cd /usr/doc/${edir}; fi; make install DIRPRFX=$edir/; done > > If make insists on iterating over each directory of the tree twice every > time it gets to it, then with our three-level doc tree hierarchy, the > files for every document get installed to the target directory eight > times. :-( > > The first set of commands above is defined by the _SUBDIRUSE target in > doc.subdir.mk. The loop is defined in bsd.subdir.mk, which gets > included by doc.subdir.mk via bsd.obj.mk. > > The attached patch removes the iteration over subdirectories in > doc.subdir.mk and just relies on bsd.subdir.mk to handle subdirectories. > This seems to produce better behavior but I'm not sure if it's correct. > Any comments? I can't find a patch in this email. :( But I do think a lot of our build needs re-written, the problem is where to start and what do we want to accomplish. -- Tom Rhodes
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061102214151.273c4ef8.trhodes>