On Thu, 2005-01-27 at 09:42 -0700, Ed Hartnett wrote: > Howdy all! > > I'm a developer working on netCDF, a freeware library for climate and > Earth scientists. Recently I converted from our old time-honored and > hand-crafted Makefiles to automake generated files. > > But for some reason, using the automake generated files, dependency > tracking no longer works. For example, if I do a make check, and find > and fix a bug in one of my code files, and do a make check again, I > get an error like this: > > bash-3.00$ make check > Making check in libsrc > make[1]: Entering directory `/home/ed/n3_tmp1/libsrc' > m4 -B10000 attr.m4 >attr.c > if h5cc -DHAVE_CONFIG_H -I. -I. -I. -Df2cFortran -g -MT attr.o -MD -MP -MF > ".deps/attr.Tpo" -c -o attr.o attr.c; \ ^^^^^^^^ Note this. What is h5cc?
At this place the compiler is supposed to be called. > then mv -f ".deps/attr.Tpo" ".deps/attr.Po"; else rm -f ".deps/attr.Tpo"; > exit 1; fi > cc1: error: to generate dependencies you must specify either -M or -MM This indicates that "h5cc" isn't able to cope with the rules being generated by automake. > Doesn't automake automatically generate dependencies? It does. > Or do I have to tell it to do so? The default is to generated dependencies, but you can turn dependency tracking off, if you want to (--disable-dependency-tracking). > What does this mean: > error: to generate dependencies you must specify either -M or -MM > > Where do I specify -M or -MM? Normally you don't. The "-M<something>" compiler flags you see above are generated by automake as part of its dependency tracking. The error message you see is a follow up error to something having gone wrong earlier. What exactly might have gone wrong is hard to tell. Either your "h5cc" is not correctly detected/supported by automake, or your configure script could be in trouble (Is "h5cc" actually a compiler, or is this "h5cc" a corrupted make/shell/environment variable?). Ralf