bug-make
[Top][All Lists]
Advanced

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

[bug #35485] New $(.MFDIR) built-in variable


From: David Boyce
Subject: [bug #35485] New $(.MFDIR) built-in variable
Date: Wed, 08 Feb 2012 18:30:42 +0000
User-agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7

URL:
  <http://savannah.gnu.org/bugs/?35485>

                 Summary: New $(.MFDIR) built-in variable
                 Project: make
            Submitted by: boyski
            Submitted on: Wed 08 Feb 2012 06:30:41 PM GMT
                Severity: 3 - Normal
              Item Group: Enhancement
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
       Component Version: CVS
        Operating System: Any
           Fixed Release: None
           Triage Status: None

    _______________________________________________________

Details:

The attached one-line (plus docs) patch adds a .MFDIR variable which evaluates
to the directory of the containing makefile, more or less. It's actually just
shorthand:

diff -u -r1.60 default.c
--- default.c   16 Jan 2012 02:29:22 -0000      1.60
+++ default.c   8 Feb 2012 17:45:49 -0000
@@ -527,6 +527,7 @@
 #endif

 #endif /* !VMS */
+    ".MFDIR", "$(abspath $(dir $(lastword $(MAKEFILE_LIST))))",
     0, 0
   };

Justification: though this adds no new functionality, I think it's important
for support of non-recursive build styles. Given a build tree with many
directories containing source files and makefiles, in a recursive model the
tendency is to cd into each directory and invoke make locally, and thus the
important relative directory is the cwd aka $(CURDIR). But in a flat build
model those sub-makefiles tend to be included into a single make process and
CURDIR doesn't change. In this case the important relationship is with the
directory containing the controlling sub-makefile. Currently the playing field
is tilted towards cwd-centric builds by the support for CURDIR. Having .MFDIR
would even that out by making it easier to think in terms of a
makefile-relative directory. Expecting naive (or even expert) developers to
qualify paths with "$(abspath $(dir $(lastword $(MAKEFILE_LIST))))" is a
nonstarter.

This could be made more verbose as MAKEFILE_DIR or less as MWD. The leading
"." is just my guess as to what would be most compatible.

Also, it's arguable whether this is better handled as a regular predefined
variable, subject to removal with -R, or a hard-wired variable analogous to
CURDIR.



    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Wed 08 Feb 2012 06:30:41 PM GMT  Name: mfdir.diff  Size: 2kB   By:
boyski

<http://savannah.gnu.org/bugs/download.php?file_id=25027>

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?35485>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

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