Tue 20 Feb 2007 08:39:29 PM UTC, original submission:
for a makefile foo (see attached), the makefile will not be updated before being run if prefixed with a ./
To duplicate:
- run the attached foo script from the current directory using "./foo"
- or run "make -f ./foo"
To see the expected behavior:
this was discovered when trying to make a self-executing makefile which starts with "#!/usr/bin/make -f"
This also happens (not unexpectedly) when running "make -f ./foo"
The bug does not occur, however, when running "make -f foo" (without the preceding ./)
The bug does also not apply to included makefiles, whether prefixed with ./ or not. All included makefiles appear to be updating correctly. This was tested by including a (nonexistent) makefile bar which is made as part of the MAKEFILE_LIST target
The attached makefile uses the MAKEFILE_LIST variable to guarantee that the target will be the name of the invoked makefile. the targets foo and ./foo can also be defined and the bug will still be apparent.
The MAKEFILE_LIST targets were specified as PHONY to guarantee that the makefile gets updated.
Running on Kubuntu 6.10, GNU Make 3.81, built for x86_64-pc-linux-gnu
|