[haiku-development] Re: Experimenting with menu code

  • From: Ingo Weinhold <ingo_weinhold@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 10 Jan 2011 16:24:46 +0100

On 2011-01-10 at 09:15:42 [+0100], pete.goodeve@xxxxxxxxxxxx wrote:
> On Sun, Jan 09, 2011 at 12:26:36PM +0100, Ingo Weinhold wrote:
> > 
> > I'd generally recommend to use the build profiles instead (i.e. "jam -q
> > @myprofile update libbe.so").
> > 
> > When building under Haiku one can let the build system prepare a directory
> > with the test app and all required libraries via a few lines in the
> > UserBuildConfig. E.g.:
> > 
> > HaikuInstall menu-test : /boot/home/Desktop/menu-test
> >     : MenuTestApp
> >     : install-menu-test
> > ;
> > 
> > HaikuInstall menu-test : /boot/home/Desktop/menu-test/lib
> >     : libbe.so
> >     : install-menu-test
> > ;
> > 
> > A "jam -q menu-test" will then build both the test app and libbe and copy
> > them to the respective directory. The "install-menu-test" is the grist to
> > be used for the installed targets (should be something reasonably unique),
> > the other parameters should be obvious.
> 
> (:-)) Not necessarily... Jam was pretty much a Here-Be-Dragons region,
> until today anyway.  I've spent most of it on an intensive cramming
> session, and I now have a much better idea of how Jam functions.
> (I probably worked from the wrong end -- started with the Jam manual
> and ended up with Ryan's useful tutorial.)  Still some gaps, but I
> at least now know how to read a Jamfile.  (I assume that was the only
> way to find out what, say, HaikuInstall actually does?)

A good deal of Haiku build system specific rules have some documentation at 
the top of their implementations (find them in build/jam/*). In case of 
HaikuInstall that's virtually non-existent, though. The parameters are, in 
this order, the name of the pseudo-target to bind the action to, the 
directory into which to copy the files, the build system targets to copy 
there, and the already mentioned grist.

> There seem
> to be a few Haiku specials, like (User)BuildConfig (and @profiles?),
> that I can't find documented elsewhere.

Have a look at build/jam/UserBuildConfig.ReadMe. It documents what can be 
done in your UserBuildConfig file, including a section about build profiles.

CU, Ingo

Other related posts: