I've seen the following issue on two automake-based libraries (libevent and libidn), leading me to believe it's an issue with automake rather than the individual libraries. The following always fails:
make && make -q "make -q" should return 0 if the previous make completed successfully, but it doesn't. It return 2 indicating an error. I haven't been able to figure out what the actual error is, though: monoceros:bld rnapier$ make make all-recursive Making all in . Making all in include make[2]: Nothing to be done for `all'. Making all in sample make[2]: Nothing to be done for `all'. Making all in test make all-am make[3]: Nothing to be done for `all-am'. monoceros:bld rnapier$ make -q make all-recursive Making all in . make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 monoceros:bld rnapier$ echo $? 2 monoceros:bld rnapier$ As part of my build, I compile various libraries like libevent. If I always call "make install" in the build, it will force my entire project to rebuild (because this touches all the files). So I've been trying to use the following make rule: all: $(BUILDDIR)/Makefile $(MAKE) -q -s -C $(BUILDDIR) || $(MAKE) -C $(BUILDDIR) install Unfortunately, the -q part always returns 2 for automake-based builds. Is there another way to achieve the underlying goal (automatically build third-party libraries, including correctly rebuilding them if there were local changes, but with correct dependency checking)? This is make 3.81 on Mac, but I'm seeing the same behavior on Linux. I haven't been able to find an error in the "make -q -d" output. Thanks, -Rob