Go to the FreeLists Home Page Home Signup Help Login
 



Browse haiku: This Month's ArchiveMain Archive PageRelated postsPrevious by DateNext by Date

[openbeos] Re: need help with jam

  • From: Jérome DUVAL <korli@xxxxxxxx>
  • To: <openbeos@xxxxxxxxxxxxx>
  • Date: Fri, 4 Jun 2004 11:54:02 +0200
>
> In principle it looks quite OK. As Andrew already wrote, it would be
> helpful, if you gave a bit more info what exactly your problem is.

As i wrote to Andrew, it seems adding a 'final' target makes jam build with
the rules ...

>
> Regarding debugging, that's not so simple. If you suspect a problem with
> dependencies, you can run jam with the `-d3' option, which prints the
> dependency tree. `-d5' additionally gives you a rule processing trace,
> which, due to the size of our build system, is huge.

In fact, huge :)

>
> > Do i need to grist kill.c and kill.def somewhere ? How to do this btw ?
>
> Given the comment in your rule, you need apparently to grist the
> parameters. :-P
>
> Grist is used to make create globally unique target identifiers. Most
rules
> that come with jam (like Main) automatically add grist to source file
> names. So, if in your example you feed `kill.c' to such a rule, it will
> actually try to find something like `<src!...>kill.c', while, as you use
it
> now,  MkBuiltinsComp generates `kill.c'. Hence there's a good chance that
> things won't work properly. You either have to add grist to the parameter
> you pass to the rule MkBuiltinsComp or you let the rule itself add the
> grist, which make the invocations look less ugly. The second parameter
> doesn't necessarily need grist, but it doesn't harm to add it. The rule
> would thus read:
>
> rule MkBuiltinsComp
> {
> # MkBuiltinsComp <c file> : <def file> ;
> #
> # The rule adds grist to <c file> and <def file>.
> #
> local cFile = [ FGristFiles $(1) ] ;
> local defFile = [ FGristFiles $(2) ] ;
>
> SetupObjectsDir ;
> SEARCH on $(defFile) += $(SEARCH_SOURCE) ;
> MakeLocate $(cFile) : $(LOCATE_SOURCE) ;
> Depends $(cFile) : $(defFile) mkbuiltins ;
> LocalClean clean : $(cFile) ;
> MkBuiltinsComp1 $(cFile) : mkbuiltins $(defFile) ;
> }

I now use UserObject rule to have my own extension built.
It seems to work better. The big problem i have now is 'mkbuiltins' only
outputs in the current directory (which can be anything in current
current/src ... ).
I didn't find how to go around this (changing current directory makes tool
and targets paths wrong).

I think I should modify 'mkbuiltins' to have it output somewhere else.

>
> > Additionally, i'd need to have the build tool 'mkbuiltins' not present
in
> > the distro folder. In fact, it is only used as a bash build tool.
>
> Although that's not so nice, you can just insert a
>
> MakeLocate mkbuiltins : $(LOCATE_TARGET) ;
>
> after the BinCommand invocation, which will place the file in
`objects/...'
> instead.

Ok simple enough.

This bash bin tool is getting tough to build with Jam. It is badly done
anyway with Makefiles.

Thanks,

Jérome


Other related posts:

  • [openbeos] need help with jam
  • [openbeos] Re: need help with jam
  • [openbeos] Re: need help with jam
  • [openbeos] Re: need help with jam
  • [openbeos] Re: need help with jam
  • [openbeos] Re: need help with jam
  • [openbeos] Re: need help with jam
  • [openbeos] Re: need help with jam
  • [openbeos] Re: need help with jam
  • [openbeos] Re: need help with jam
  • [openbeos] Re: need help with jam
  • [openbeos] Re: need help with jam




  • [ Home | Signup | Help | Login | Archives | Lists ]

    All trademarks and copyrights within the FreeLists archives are owned by their respective owners.
    Everything else ©2008 Avenir Technologies, LLC.