[Omake] help not exporting the loop variable?

Erick Tryzelaar erickt at dslextreme.com
Fri Jan 5 10:30:57 PST 2007


I'm running into an issue using some non-standard omake-style coding. 
I'm investigating porting our custom package based build system over to 
omake, and I'm running into an odd problem. Here's my code:


OMakefile:
packages. =
    extends $(Map)

register-package(package) =
    echo register $(package.name)
    packages = $(packages.add $(package.name), $(package))
    export

foreach(x, a.om b.om)
    echo loading  $x
    include $x
    echo
    export


a.om:
private.package. =
    name = a
register-package($(package))


b.om:
private.package. =
    name = b
register-package($(package))



running omake, I get this:

*** omake: reading OMakefiles
loading a.om
register a

loading b.om
register a

*** omake: finished reading OMakefiles (0.0 sec)
*** omake: done (0.0 sec, 0/0 scans, 0/0 rules, 0/43 digests)


This is different from what I expect. I'd want the second register to be 
referencing "b". I discovered that if I change the name of the loop 
variable to something else, like this:

register-package(p) =
    echo register $(p.name)
    packages = $(packages.add $(p.name), $(p))
    export


It works as I expect it to:


*** omake: reading OMakefiles
loading a.om
register a

loading b.om
register b

*** omake: finished reading OMakefiles (0.0 sec)
*** omake: done (0.0 sec, 0/0 scans, 0/0 rules, 1/43 digests)


So, any idea on what to do? Also, any tips on a better way of doing what 
I'm doing? We can't currently use the .SUBDIRS in order to load the 
package, as we put all our packages in one place.

Thanks,

-e


More information about the Omake mailing list