Date: Fri, 29 Sep 2006 13:49:36 +0400 From: Ruslan Ermilov <ru@FreeBSD.org> To: John-Mark Gurney <gurney_j@resnet.uoregon.edu> Cc: current@FreeBSD.org Subject: Re: better way to build libraries.. Message-ID: <20060929094936.GH86237@rambler-co.ru> In-Reply-To: <20060929092233.GO80527@funkthat.com> References: <20060928231816.GI80527@funkthat.com> <20060929082713.GD86237@rambler-co.ru> <20060929083959.GG86237@rambler-co.ru> <20060929092233.GO80527@funkthat.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--TKYYegg/GYAC5JIZ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Sep 29, 2006 at 02:22:33AM -0700, John-Mark Gurney wrote: > So as I had a big argument w/ Kris about this, are you saying that > we should go ahead and remove all the -I../../sys in places like > pciconf because building standalone isn't supported? >=20 Yes, we've been doing this (removing them) for years now. pciconf is special -- it needs this because we don't install sys/dev/pci/pcireg.h into /usr/include. > My point is > that either we continue to attempt to support building things stand > alone, or we don't even pretend we attempt to... >=20 Removing -I's doesn't generally affect standalone building, but it does affect stanalone upgrading. That's the difference. If your sources match your installed bits, you can still chdir into a directory and type "make", and it will generally be built. Yes, we should stop pretending we support standalone upgrades -- because in this case you need to handle it properly: track dependencies, build and install dependencies (other headers and libraries, this library's headers if this is a library) in the correct order, etc. Some of them depend on the src.conf (or make.conf) options, there's a lot to track. > Everyone points that oh, buildworld does that prefectly fine, but no > one wants to expand support of being able to build FreeBSD piecemeal > on a system.... >=20 I think you misunderstand the difference between upgrades and standalone builds. > Take my 5.4-R box... I was unable to build libcrypto due to not > having done a make includes... I could do a make includes, but then > if either a) I forget to make and install the library, or b) the > library fails to build, I now have a broken install... It is > much better to do a build the library, then install both the new > library and includes... >=20 This approach is doomed. You were lucky (or not, haven't actually checked) that this particular upgrade didn't update .h files. Because if it did, you'd still be forced to rebuild other bits that use an updated header -- other crypto libraries, other stuff that uses crypto, statically linked programs if there are any. Well, if you absolutely want to, you could installed the headers into a temporary location using DESTDIR, make includes DESTDIR=3D/foo then rebuilt the library with DEBUG_FLAGS=3D-I/foo. In any case, even this broken approach doesn't require modifications to makefiles. Cheers, --=20 Ruslan Ermilov ru@FreeBSD.org FreeBSD committer --TKYYegg/GYAC5JIZ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (FreeBSD) iD8DBQFFHOwwqRfpzJluFF4RAsWBAJ9CaLOqQr1nlDsDL/5l5xE/WBp1yACfXo+l jms8raZKih37DnfNOhuawfo= =96Sw -----END PGP SIGNATURE----- --TKYYegg/GYAC5JIZ--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060929094936.GH86237>