make flags analysis: cater to GNU make 3.83 (still unreleased as of now)
authorStefano Lattarini <stefano.lattarini@gmail.com>
Wed, 1 May 2013 23:10:13 +0000 (01:10 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Thu, 2 May 2013 16:42:50 +0000 (18:42 +0200)
The current development version of GNU make (that is planned to become
GNU make 3.83, sooner or later) has changed the format its $(MFLAGS)
variable slightly, removing the space between an option and its argument:

   # With GNU make 3.82, compiled from official tarball:
   $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none
   -I none

   # With development version of GNU make (Git commit b5ea49b):
   $ make -f- <<<'all:; @echo "$$MFLAGS"' -I none
   -Inone

This was done on purpose, in order to support more easily the new
option '-O', which takes an optional argument; see:

  <http://lists.gnu.org/archive/html/bug-make/2013-05/msg00001.html>

So Just adapt to the new format as well.

* t/header-vars.am (am__make_running_with_option): Adjust to cater
to the new GNU make behaviour.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
lib/am/header-vars.am

index 3de46dc..64d014c 100644 (file)
@@ -74,9 +74,13 @@ am__make_running_with_option = \
       fi; \
       case $$am__flg in \
         *=*|--*) ;; \
-## Quite ugly special-casing.  We might need other similar ones actually,
-## but let's wait until the need arises.
+## GNU make 3.83 has changed the format of $MFLAGS, and removed the space
+## between an option and its argument (e.g., from "-I dir" to "-Idir").
+## So we need to handle both formats.
+## TODO: we might need to handle similar other cases as well; but let's
+##      wait until the need arises.
         -I) am__skip_next=yes;; \
+       -I*) continue;; \
         *$$am__target_option*) am__has_opt=yes; break;; \
       esac; \
     done;\