Hello everybody.

I think I've found a bug in GNU make, apparently due to the
interaction of VPATH and filenames with double-slash `//'.

Here is an excerpt showing the most relevant part of the bug:

  $ cat Makefile
  VPATH = ..
  foo_OBJECTS = ./src//foo.o
  foo: $(foo_OBJECTS)
        $(CC) -o $@ $(foo_OBJECTS)
  .c.o:
        $(CC) -c -o $@ $<
  $ ls ../src
  foo.c
  $ make
  make: *** No rule to make target `src//foo.o', needed by `foo'.  Stop.

Changing the definition of `foo_OBJECTS' to `./src/foo.o' solves the
problem.

A complete script that reproduces the bug is attached.  The script fails
with GNU make (versions 3.79, 3.80 and 3.81) on Debian GNU/Linux and
with GNU make 3.81 on Solaris 10.  On the other hand, it passes with
Solaris 10's /usr/ccs/bin/make and with FreeBSD make.

Let me know if you need more details.

Regards, and thanks for all your work on GNU make.
   Stefano

Attachment: gmake-bug.sh
Description: application/shellscript

_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to