Issue 69742 - Normalize targets in dmakes internal representation
Summary: Normalize targets in dmakes internal representation
Status: CLOSED FIXED
Alias: None
Product: Build Tools
Classification: Code
Component: dmake (show other issues)
Version: current
Hardware: All All
: P3 Trivial (vote)
Target Milestone: ---
Assignee: hjs
QA Contact: issues@tools
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-09-21 16:19 UTC by quetschke
Modified: 2013-08-07 15:34 UTC (History)
3 users (show)

See Also:
Issue Type: ENHANCEMENT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description quetschke 2006-09-21 16:19:54 UTC
The following makefile demonstrates what I mean.

-- makefile.mk --
SHELL*:=/bin/sh 
SHELLFLAGS*:=-ce

all : ./try1.xx
	+echo all

try1.xx :
	+echo try1
-- makefile.mk --

Currently this failes with:
dmake:  Error: -- `./try1.xx' not found, and can't be made

This happens because dmake doesn't recognize that ./try1.xx and try1.xx are
equivalent.  Fixing this opens the possibility to teach dmake that under cygwin
/cygdrive/c/foo, c:/foo and even c:\foo are the same. It also covers the
../bar and ..\bar case.

(For case insensitive FS one could even add an option to store everything
normalized to lowercase.)
Comment 1 quetschke 2006-10-04 04:18:40 UTC
The last commit to dmake47 enables the normalization of targets and
non-dynamic prerequisites.
(Dynamic prerequisites are prerequisites with not expanded macros.)
Comment 2 quetschke 2006-10-05 17:54:25 UTC
I was a little worried about the extra string operations for the normalization
being too time consuming (Even though Build_path() should be slightly faster now
than before.) and did a comparison build:

dmake47:      Total build time: 20262 (5:37:42)
SRC680_m186:  Total build time: 20343 sec (5:39:03)

That's in the noise, or maybe even an 0.4% improvement, so the change should be
fine. 
Comment 3 quetschke 2006-10-07 20:37:34 UTC
All changes committed.

@ause: Please verify.
Comment 4 hjs 2007-01-15 17:57:00 UTC
looks good on native win and unix. cygwin not yet checked
Comment 5 hjs 2007-01-16 11:08:29 UTC
testcase target-15 passed on cygwin too
Comment 6 hjs 2007-01-23 14:39:18 UTC
seen in MWS