p.s.

GNU Make 4.2.1
Built for x86_64-redhat-linux-gnu
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.


On Tue, Apr 2, 2019 at 1:11 PM Thomas Lynch <
thomas.ly...@reasoningtechnology.com> wrote:

> 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