[Top][All Lists]

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

[bug #62929] Normalize foo/./bar

From: Rex Yuan
Subject: [bug #62929] Normalize foo/./bar
Date: Sun, 11 Sep 2022 15:42:44 -0400 (EDT)

Follow-up Comment #14, bug #62929 (project make):

Thanks for digging this part of the manual up.

> There are two exceptions: a target starting with a period is not a default
unless it contains one or more slashes, ‘/’, as well;

I attempt to express this precisely in a somewhat informal modal logic form:
1. start_with_period(target) & !contains_slashes(target) =>
2. start_with_period(target) & contains_slashes(target) =>
3. possible[default(target)] & is_first(target) => default(target)

While this exception does explain the behavior of the examples I provided in
the comment before, I don't think it explains that of this Makefile:

        $(info 0)

./.b: # skip
        $(info 1)

c: # choose
        $(info 2)

1. './.b' starts with a '.'; start_with_period('./.b') holds
2. './.b' contains one or more '/'; contains_slashes('./.b') holds

It follows that './.b' should be default. Yet, 'c' is chosen.

$ make -p | grep DEFAULT_GOAL
$ ./makebin/make-4.3/make -p | grep DEFAULT_GOAL


Another thing I'd like to add is that there is another parenthetical mention
that should probably be clarified. It is that in the index entry of
the linked 6.14 Other Special Variables item
which in turn links 9.2 Arguments to Specify the Goals
it says:

> By default, the goal is the first target in the makefile (not counting
targets that start with a period).


Reply to this item at:


Message sent via Savannah

reply via email to

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