From owner-freebsd-doc@FreeBSD.ORG Fri Nov 3 01:25:12 2006 Return-Path: X-Original-To: freebsd-doc@freebsd.org Delivered-To: freebsd-doc@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DCE5E16A412 for ; Fri, 3 Nov 2006 01:25:12 +0000 (UTC) (envelope-from bmah@freebsd.org) Received: from b.mail.sonic.net (b.mail.sonic.net [64.142.19.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id B8D4143D49 for ; Fri, 3 Nov 2006 01:25:11 +0000 (GMT) (envelope-from bmah@freebsd.org) Received: from [192.168.2.119] (hornet.kitchenlab.org [64.142.31.105]) (authenticated bits=0) by b.mail.sonic.net (8.13.8.Beta0-Sonic/8.13.7) with ESMTP id kA31PBCJ022790 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 2 Nov 2006 17:25:11 -0800 Message-ID: <454A9A72.4050005@freebsd.org> Date: Thu, 02 Nov 2006 17:25:06 -0800 From: "Bruce A. Mah" User-Agent: Thunderbird 1.5.0.7 (Macintosh/20060909) MIME-Version: 1.0 To: freebsd-doc@freebsd.org X-Enigmail-Version: 0.94.1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigB08DF1CB04378A479F7BF508" Subject: Install docs oddity X-BeenThere: freebsd-doc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Documentation project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Nov 2006 01:25:12 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigB08DF1CB04378A479F7BF508 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 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 "=3D=3D=3D> en_US.ISO8859-1" cd /usr/doc/en_US.ISO8859-1 && make install DIRPRFX=3Den_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 "=3D=3D=3D> ${entry}.i386 (install)"; edir=3D${entry}.i386; cd /usr/doc/${edir}; else echo "=3D=3D=3D> $entry (install)"; edir=3D${en= try}; cd /usr/doc/${edir}; fi; make install DIRPRFX=3D$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? Bruce. PS. I'm also wondering how long this problem has existed. :-p There don't appear to have been any changes in this area since last year. --------------enigB08DF1CB04378A479F7BF508 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFSpp22MoxcVugUsMRAuCUAKDYA+iJ9BMdj8sgZ6AH1S1Ka2mjnQCglTzo QrIcJqlPJkDgwENvLykz8AU= =ylpK -----END PGP SIGNATURE----- --------------enigB08DF1CB04378A479F7BF508--