> -----Original Message----- > From: Paul Smith [mailto:[EMAIL PROTECTED] On Behalf Of Paul D. Smith > Sent: Friday, April 07, 2006 1:55 PM > To: PATTON, BILLY (SBCSI) > Cc: [email protected] > Subject: Re: help with sh commands inside a define inside an > eval'd rule > > > %% "PATTON, BILLY \(SBCSI\)" <[EMAIL PROTECTED]> writes: > > pb> I have this: > pb> define refresh_proj_bb_pub > pb> $(1)$(sep)$(2)$(sep)$(3)$(sep)pub : > pb> for X in $($(call merge,$(sep),$(call uc,$(1)) > $(2) $(3) pub)); > pb> do \ > pb> $(CD) $(SRC_TREE)/$(2)/$(3)/pub ; \ > pb> $(EXEC_LOG) $(PVCS_GET) > -v$(3)$(PVCS_VER) $$X -proj $(2) > pb> -bb $(3) ; \ > pb> done > pb> endef > > pb> But when it prints to the screen the location of $$X is blank > pb> the for X in blabla has from 1 to 100+ items depending > on the instance. > > pb> How do I get the value of X onto the command line? > > That's how you do it, with $$X. > > Again, I have to urge you to provide a COMPLETE example. You are > leaving critical aspects of your environment out and it's very hard to > answer questions in that situation.
complete example is too large. When I try to shorten it works. I'm shortening too much. > > For example, if you used the macro above directly in a rule: > > foo: > $(refresh_proj_bb_pub) > > it would work as you expect (assuming the variables used like $(1), > $(2), etc. were all set). > > However, I'm assuming since this appears inside a define/endef and it > uses $(1) etc. that you're really passing this to an invocation of > $(call ...) > > In that case you have to escape the $$X, because you want the literal > string '$$X' to appear on the command line, but $(call ...) will > evaluate it and remove one layer of indirection. > > You'll have to write '$$$$X' instead. worked perfect :) > > > As always, it's smart to use $(warning ...) (or $(info ...) > in GNU make > 3.81) to see what it looks like after $(call ...) is done with it. > > -- > -------------------------------------------------------------- > ----------------- > 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
