|
| From: | Gur Stavi |
| Subject: | [bug #50376] Incompatibility in make versions - directory/ dependency no longer match directory goal |
| Date: | Wed, 22 Feb 2017 03:06:38 -0500 (EST) |
| User-agent: | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36 |
URL:
<http://savannah.gnu.org/bugs/?50376>
Summary: Incompatibility in make versions - directory/
dependency no longer match directory goal
Project: make
Submitted by: gstavi
Submitted on: Wed 22 Feb 2017 08:06:37 AM UTC
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Component Version: 4.2.1
Operating System: None
Fixed Release: None
Triage Status: None
_______________________________________________________
Details:
Consider the makefile below.
OUT_DIR = my_dir
OUT_FILE = $(OUT_DIR)/hello.txt
$(OUT_FILE): | $(dir $(OUT_FILE))
echo Hello World > $@
$(OUT_DIR):
mkdir $@
Running with make v3.81 results in:
mkdir my_dir
echo Hello World > my_dir/hello.txt
Running with Make v4.2.1 results in:
make: *** No rule to make target 'my_dir/', needed by 'my_dir/hello.txt'.
Stop.
Is this intentional?
Since $(dir) function keeps slash at the end of the result it mostly forces
directory goals to have the slash as well. It may be a good habit but could be
a big compatibility issue for existing makefiles. I encountered it when make
failed on a colleague's newer system.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?50376>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
| [Prev in Thread] | Current Thread | [Next in Thread] |