URL:
<http://savannah.gnu.org/bugs/?42270>
Summary: Make needs to canonicalise paths
Project: make
Submitted by: bobbogo
Submitted on: Fri 02 May 2014 09:39:02 PM GMT
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Component Version: 4.0
Operating System: Any
Fixed Release: None
Triage Status: None
_______________________________________________________
Details:
Consider this makefile:
all:
abs := $(abspath AA)
${abs}: ; touch $@ # 1
AA: ; touch $@ #2
all: AA ${abs} ; : $@ done
We get
$ rm -f AA; make -Rr -f 1 -j
touch AA #2
touch /cygdrive/g/Code/x-platform/trunk/build/xplatform/AA # 1
: all done
Plainly _AA_ and _$(abspath AA)_ are the same file, but make doesn't think so.
Make seems just to use string matching (other relative paths to the same file
are seen as different files (_subdir/../A.. for instance)).
This is playing havoc with auto-generated dependencies, some of which are
built by make rules.
Tested on SuSE make 3.82 and cygwin 4.0.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?42270>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
_______________________________________________
Bug-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-make