On Fri, Nov 28, 2014 at 12:42:06PM -0800, Walter Bright via Digitalmars-d wrote: > On 11/28/2014 11:35 AM, H. S. Teoh via Digitalmars-d wrote: > >On Fri, Nov 28, 2014 at 11:32:25AM -0800, H. S. Teoh via Digitalmars-d wrote: [...] > >>Also, don't I have to first compile dmd with --coverage and run the > >>test suite before it has the coverage data?? > >[...] > > > >Which I had tried (make -f posix.mak -j6 MODEL=64 CFLAGS=--coverage), > >but the compilation aborts with: > > > > inifile.c:101:3: error: #error SYSCONFDIR not defined > > > >which goes away when --coverage is not specified. What gives? > > I don't know. Haven't tried it in a while, likely it is suffering from > bit rot.
Nevermind, I found the reason. Make overwrites CFLAGS even if you intended to append to it with `make CFLAGS+=--coverage`, so the other necessary CFLAGS were missing. Gah. Eventually I saw that specifying DEBUG=1 and ENABLE_PROFILING=1 causes the makefile to do the Right Thing(tm), so that's what I did. After that, make gcov does its job. Except it only works if you're in dmd/src, since the top-level makefile has no idea what you're talking about, in spite of the fact that the two makefiles are obviously connected. I hate make so much[1]. :-( [1] http://www.conifersystems.com/whitepapers/gnu-make/ T -- People demand freedom of speech to make up for the freedom of thought which they avoid. -- Soren Aabye Kierkegaard (1813-1855)
