We have had a lot of problems with phony hints being ignored and makefiles
not running.

I've narrowed it down to a small example.  See the transcript below in this
email, or the code at
https://github.com/Reasoning-Technology/subu/tree/master/try/phony_general_targets_fail

In this example there is a target, 'lib', and there happens to be a
directory with the same name - this is a common combination.   There is a
phony declaration for lib, but it gets ignored.

I've added a second phony target, 'version', which also has a directory.
 That works.  The only difference is that the target is not given as a
pattern.  I've also run this example with a target that does not correspond
to a file or directory, and that also works as expected.

So it appears that phony hints are ignored if targets are patterns rather
than literals.  Consequently it appear that there is no way to give phony
hints in fancy makefiles that use general recipes.

Seems the phony hints should be checked against the target provided to
make, which will be literal, and then prevent the directory search.
Apparently this is not the case.  If it is only to be checked when there is
a match to a provided target, then that check would hopefully occur after
the pattern expansion.  It isn't clear to me where else it is possible to
do the check, but somehow it is doing the check somewhere else.

---------------->

2019-04-02T10:48:22Z
user@host§~/subu_land/subu/try/phony_general_targets§
> cat makefile


.PHONY: lib version

version:
@echo "version 0.1"

%::
@echo $@



2019-04-02T10:48:27Z
user@host§~/subu_land/subu/try/phony_general_targets§
> mkdir version lib

2019-04-02T10:48:38Z
user@host§~/subu_land/subu/try/phony_general_targets§
> ls
lib  makefile  version

2019-04-02T10:48:42Z
user@host§~/subu_land/subu/try/phony_general_targets§
> make version
version 0.1

2019-04-02T10:48:50Z
user@host§~/subu_land/subu/try/phony_general_targets§
> make code
code

2019-04-02T10:48:57Z
user@host§~/subu_land/subu/try/phony_general_targets§
> make lib
make: Nothing to be done for 'lib'.

2019-04-02T10:49:00Z
user@host§~/subu_land/subu/try/phony_general_targets§
>
_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to