[openbeos] Re: Jam shortcuts?

On 2007-02-26 at 18:34:51 [+0100], Jonas Sundström <jonas@xxxxxxxxxxx> 
wrote:
> 
> Is there a way to build Tracker, Deskbar and libtracker.so,
> (and other components) for BeOS, without blowing away
> my haiku-image build?

  TARGET_PLATFORM=r5 jam -q Tracker Deskbar

If you have several components belonging to whatever you're working on, you 
can define a pseudo-target in your build/jam/UserBuildConfig file ("NotFile 
mytarget ; Depends mytarget : ... ;"). If you additionally want to copy 
your components somewhere you can specify this there too. E.g. for testing 
the UserlandFS stuff I used:

# UserlandFS installation
local userlandFSDir = [ FDirName $(HAIKU_OUTPUT_DIR) userlandfs ] ;

HaikuInstall install-userlandfs : $(userlandFSDir)
        : # userlandfs
          <test>userlandfs
          <test>UserlandFSServer
          <test>ufs_mount

          # netfs
          <test>AuthenticationServer
          <test>netfs
          <test>netfs_config
          <test>NetFSServerPrefs
          <test>NetFSServer

          # ramfs
          <test>ramfs

          # reiserfs
          <test>reiserfs

        : installed!userlandfs!tests
;

A "TARGET_PLATFORM=r5 jam -q install-userlandfs" would then build the 
listed components and copy them to generated/userlandfs/. I used symlinks 
to this place for the add-ons that had to be installed somewhere in 
~/config/..., but of course could simply have used separate HaikuInstall 
invocations to copy them right there.

For Tracker and Deskbar you could define something like this (untested):

HaikuInstall install-tracker : /system : Tracker Deskbar
        : installed!tracker ;
HaikuInstall install-tracker : /system/lib : libtracker.so
        : installed!tracker ;

"TARGET_PLATFORM=r5 jam -q install-tracker" builds and install those things 
accordingly. You can get rid of the "TARGET_PLATFORM=r5" by configuring 
your build for this target ("./configure --target=r5"). You can later 
switch back by re-running configure with the usual parameters. Or if you 
don't trust this method create a separate output directory for the purpose:

        mkdir generated-tracker
        cd generated-tracker
        ../configure --target=r5
        jam -q install-tracker

> How do you guys do iterative edititing and testing?
> I don't like waiting on jam. :P

If you use the StatCacheServer jam's Jamfile read and parse time shouldn't 
be that bad (well about 8s on my old laptop after the first run). If you 
want to build things faster use Linux. :-P

Alternatively replace the top Jamfile temporarily by one only including the 
parts you're interested in (src/kits/tracker, src/apps/{deskbar,tracker}). 
Maybe I should introduce a less invasive method to do this in the 
UserBuildConfig file.

CU, Ingo

Other related posts: