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 <psm...@gnu.org> 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 _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make