[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: a bug of GNU Make 3.82 ?

From: Paul Smith
Subject: Re: a bug of GNU Make 3.82 ?
Date: Sat, 19 Feb 2011 15:10:26 -0500

On Sat, 2011-02-19 at 22:30 +0800, ygsoft_plus wrote:

> When I compile a source code with it, there is often this error :
> "Makefile:431: *** mixed implicit and normal rules.  Stop. "
> It means the following two lines of the code have error :
> config %config: scripts_basic outputmakefile FORCE 
> / %/: prepare scripts FORCE 
> There is a lot of code in the Makefile of my source code which like
> the above two line code.
> If I modify all of the Makefiles which has the error
> "Makefile:431: *** mixed implicit and normal rules.  Stop. ",
> it is a very hard work.
> So , If I don't modify the Makefiles, how can I will not get the
> error? 
> GNU Make 3.81, there is not the error:
> "Makefile:431: *** mixed implicit and normal rules.  Stop. "
> Can you help me? how can I do about this problem?

You can either continue to use GNU make 3.81, or change your makefiles
(you have to split the rule into two rules, one that is explicit and one
that's a pattern rule).  The "new way" works with all versions of GNU
make.  See this from the NEWS file for GNU make 3.82:

* WARNING: Backward-incompatibility!
  In previous versions of make it was acceptable to list one or more explicit
  targets followed by one or more pattern targets in the same rule and it
  worked "as expected".  However, this was not documented as acceptable and if
  you listed any explicit targets AFTER the pattern targets, the entire rule
  would be mis-parsed.  This release removes this ability completely: make
  will generate an error message if you mix explicit and pattern targets in
  the same rule.

 Paul D. Smith <address@hidden>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.mad-scientist.net
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist

reply via email to

[Prev in Thread] Current Thread [Next in Thread]