%% Boris Kolpackov <[EMAIL PROTECTED]> writes:

  >> 2.  I want to use the same variable namespace for all the makefiles.

  bk> This one is a bit trickier but there is a way to achieve
  bk> this. Here is the idea. There is a special make variable called
  bk> `.VARIABLES' which contains names of all variables defined up to
  bk> the point. With this variable you can write two functions that
  bk> will save and restore values of all variables; I called them
  bk> `frame-enter' and `frame-leave'. Now having those two functions
  bk> you can write function `import-rules' like this:

  bk> define import-rules-body
  bk> $(call frame-enter)
  bk> include $1
  bk> $(call frame-leave)
  bk> endef

  bk> define import-rules
  bk> $(eval $(call import-rules-body,$1))
  bk> endef

I didn't look to see how these are defined but I don't see how they can
work in general.

Consider, for example, something like this:

    XXFLAGS += -a

    foo.yy: foo.xx
            $(XX) $(XXFLAGS) -o $@ $<

The XXFLAGS reference is embedded into a rule, so if you change the name
of the variable it won't resolve properly when the rule is invoked.


You can do this kind of frame idea only if you never have any rules
defined in your included makefiles... right?

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <[EMAIL PROTECTED]>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.paulandlesley.org
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist


_______________________________________________
Help-make mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to