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 Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make