Date: Mon, 6 May 2013 23:20:18 -0700 From: Garrett Cooper <yaneurabeya@gmail.com> To: Brooks Davis <brooks@freebsd.org> Cc: sjg@freebsd.org, toolchain@freebsd.org, russell.cattelan@isilon.com, joel@freebsd.org Subject: Re: Fwd: docs/178286: [PATCH] document the LOCAL_* vars in build(7) Message-ID: <CAGHfRMDihg0Nmy%2B2PXNbncm4bcMuycSXSJa7f1EYT-nCy=DEmQ@mail.gmail.com> In-Reply-To: <20130501220750.GD45806@lor.one-eyed-alien.net> References: <201305012123.r41LNcEL048006@red.freebsd.org> <201305012130.r41LU031023258@freefall.freebsd.org> <CAGHfRMBtumFoaEDXavpo16z18bwHJC83O75CbcZpEvYcK7GCnA@mail.gmail.com> <20130501220750.GD45806@lor.one-eyed-alien.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, May 1, 2013 at 3:07 PM, Brooks Davis <brooks@freebsd.org> wrote: > > On Wed, May 01, 2013 at 02:35:17PM -0700, Garrett Cooper wrote: >> Hi Brooks and Joel, >> I'd really appreciate if you guys could help out with this. I'm >> having to fix the Isilon build system due to severe lack of >> documentation in build(7). So many mistakes have been made because >> people don't understand how to write FreeBSD Makefiles... > > One minor concern I have with this patch is documenting LOCAL_LIB_DIRS. > I've not posted to the lists yet, but now that I understand buildworld > better, I think I implemented it wrong. It should have required that > the directories be also be listed in LOCAL_DIRS. The reason is that you > could then have LOCAL_DIRS=foo and LOCAL_LIB_DIRS=foo/lib so you only > added one directory to the FreeBSD tree but could still have libs. I > feared that someone might have started using this feature which would > mean we can't easily change that. That's assuming that someone hasn't hacked the base system (e.g. bin/cp, etc) and introduced awesome build dependencies on external libraries that don't cleanly fit into the current structure for buildworld :). This is part of the reason why I opened up http://www.freebsd.org/cgi/query-pr.cgi?pr=conf/178066 , but I realize that this is starting to turn into a slippery slope and could be articulated via meta-make and proper DPADD definitions _much_ better than it is today... Makefile.inc1 is full of pixie dust and carefully placed dependencies today, such that once you step outside that box it's difficult to work within the system due to its lack of flexibility and hooks. It's nice that the __L ".PHONY" rules are automatically generated by Makefile.inc1 because I really want buildworld-ish encapsulation; in particular, the way things are done in the OneFS build system could really be done better -- I'm not confident that some of my predecessors working on the build system truly understood how the FreeBSD build process works or were under extreme time crunches and thus didn't look for a perfect/good solution and instead resorted to some nasty build hacks that I'm now trying to unwind. > Is Isilon using it? Russell and I started using it recently. I'd like this support to stick around until meta-make can be realized (even if it's going to get ripped out eventually...) as it does make things cleaner when people hack away at the base system. Thanks! -Garrett
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGHfRMDihg0Nmy%2B2PXNbncm4bcMuycSXSJa7f1EYT-nCy=DEmQ>