The NEWS file for 3.81 states:

  Up to and including this release, the '$?' variable does not contain
  any prerequisite that does not exist, even though that prerequisite
  might have caused the target to rebuild.  Starting with the _next_
  release of GNU make, '$?' will contain all prerequisites that caused
  the target to be considered out of date.  See this Savannah bug:
  http://savannah.gnu.org/bugs/index.php?func=detailitem&item_id=16051

I've tried and failed to create an example that has a prerequisite that doesn't exist, yet runs. For example, if I do:

    all: siegfriednroy
        @echo Newer prerequisites are $?

    siegfriednroy:

Then I get 'Newer prerequisites are siegfriednroy' on both GNU Make 3.80 and 3.81. I then tried:

    all: siegfriednroy
        @echo Newer prerequisites are $?

    .PHONY: siegfriednroy
    siegfriednroy:

And get the exact same result. Naturally there is no file called 'siegfriednroy' on my system.

Can someone provide an example of $? not containing a non-existent prerequisite? (All my testing was done on Linux) Obviously if I just do:

    all: siegfriednroy
        @echo Newer prerequisites are $?

then GNU Make errors out because it can't find siegfriednroy.

John.
--
John Graham-Cumming
[EMAIL PROTECTED]

Home: http://www.jgc.org/
Blog: http://www.jgc.org/blog/

POPFile: http://getpopfile.org/
GNU Make Standard Library: http://gmsl.sf.net/
GNU Make Debugger: http://gmd.sf.net/
Fast, Parallel Builds: http://www.electric-cloud.com/

Sign up for my Spam and Anti-spam Newsletter
at http://www.jgc.org/


_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to