help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem Creating Directories


From: Bogdan
Subject: Re: Problem Creating Directories
Date: Tue, 9 Oct 2018 06:24:39 +0000 (UTC)

Yes, someone on IRC explained to me how macros expand inside rules shortly 
after posting that message and linking them to the mailing list archive. I 
actually came up with your second solution in response to that. However, the 
first one seems interesting as well. One thing I haven't mentioned is that 
although I'm using GNU Make to process the makefiles, I'm limiting myself to 
POSIX features and features that I expect will be eventually standardized by 
POSIX. I was unable to find anything on secondary expansion on the Austin 
Group's bug tracker. Since you're involved there (I've seen you discussing 
numerous make-related issues), perhaps you know anything going on on this front?

Somewhat related, is there any news on pattern rules (bug 0000513)? The related 
proposal on pattern substitution for macros (bug 0000519) seems to have been 
worked out.

Thanks,
Bogdan






On Sunday, October 7, 2018, 4:07:52 PM GMT+3, Paul Smith <address@hidden> 
wrote: 





On Sun, 2018-10-07 at 09:01 -0400, Paul Smith wrote:
>  $(MAKE_DIR)/$$(MODULE): ; mkdir -p $@
> 
> (note the extra "$" when referencing the MODULE variable)

Actually I'm mistaken here: there's no secondary expansion for targets.

You might be able to write this as:

  $(MAKE_DIR)/%.mk: $(SRC_DIR)/%.m4 | $(MAKE_DIR)/$$(MODULE)/.; m4 $< $@
  $(MAKE_DIR)/%/. : ; mkdir -p $@

but I'm not sure (untested).

Another option, obviously, is to simply put the mkdir inside the recipe
(that's how I'd personally do it):

  $(MAKE_DIR)/%.mk: $(SRC_DIR)/%.m4
          mkdir -p $(MAKE_DIR)/$(MODULE)

          m4 $< $@


It may run extra instances of mkdir but I doubt it will be noticeable.


_______________________________________________
Help-make mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/help-make



reply via email to

[Prev in Thread] Current Thread [Next in Thread]