From Bugzilla Helper: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4 Description of problem: If there's an error in building a file included by a Makefile, make should exit (at least that was the behavior with FC5's make-3.80-10.2). In FC6 and F7, make continues happily along ignoring the error. I'll attach a contrived example to demonstrate. Version-Release number of selected component (if applicable): make-3.81-1.1 How reproducible: Always Steps to Reproduce: 1. make -f include-bug.make Actual Results: [dmlee@fc6 tmp]$ make -f include-bug.make rm -f generatedIncludeThatINeed false # simulate a bug importantFile Expected Results: [dmlee@fc5 tmp]$ make -f include-bug.make rm -f generatedIncludeThatINeed false # simulate a bug make: *** [generatedIncludeThatINeed] Error 1 Additional info: This same bug exists in Fedora 7's make.
Created attachment 156892 [details] Example of the bug Just run this as 'make -f include-bug.make', and you will see what I'm talking about.
That's because you include the file with the "-include" directive. From the manual: """ If you want make to simply ignore a makefile which does not exist and cannot be remade, with no error message, use the -include directive instead of include, like this: -include filenames... This acts like include in every way except that there is no error (not even a warning) if any of the filenames do not exist. For compatibility with some other make implementations, sinclude is another name for -include. """ If you want make to fail when the dependency isn't available, include simply with a "include" directive. I guess the change in behavior is actually due to some bugfix.