Hi Ralf- That's the approach I ended up taking (hacking something of my own). A couple of items did come up though:
(1) We support multiple compilers (icc and gcc), so having a mechanism that reacts differently depending upon the compiler would be great. There is no "standard" pch approach that we can tell, and this would be a good opportunity for automake to come to the rescue. (2) An extra added issue is since we are also using libtool, I had to hack in some of the extra arguments that I wasn't able to pick up from Automake (specifically -fPIC). That too is something that automake et al should take care of. (3) As you said, gcc's pch support is lacking. I did notice the support for a single pch per cpp file, however it does not seem to require that the pch file is first. In fact, there are times when it will pick it up later in the compile. A key rule of thumb though is to think about your header file ordering. This is just good practice though. In this case, we make sure our largest and most inclusive pch files are loaded in first. For example, we use a lot of boost and we have a couple hierarchal class structures that are used repeatedly. We make sure as much of the hierarchy is loaded in using our pch file and that this hierarchy includes most of the boost headers we require. (4) There is a bug in gcc where gcc will error out if the gch file is loaded and it attempts to load the same header file somewhere else in the compile (such as when g++ loads a *.h file that also loads the same header that corresponds to the gch file). This is a known gcc bug. The work around is to use a #ifndef prior to the #include. It is dirty, but it works just fine. (5) Most importantly: for some reason I can not get the gch to make the first time around. I must have the dependency makefile code screwed up or something. The first time the project builds through, it does not build the gch file. Weird. Unfortunately, I don't know enough about make's quirks to get it to pick it up. -Lance On Mar 28, 2010, at 11:29 AM, Ralf Wildenhues wrote: > Hello Lance, > > * Lance Westerhoff wrote on Wed, Mar 24, 2010 at 05:39:13PM CET: >> >> I searched the automake list archives (along with anywhere else I >> could find), and it appears that nothing has really happened with >> standardizing precompiled headers support in the tool chain as there >> hasn't been any mention for years. I have found some vague references >> to supporting them or suggested hacks, but nothing concrete. Is this >> impression correct? If so, does anyone have any rules of thumb or >> modern examples for hacking together one's own support? > > Sadly, nothing has happened about the precompiled header support. > > However, I don't see a good reason to invest a lot of work: GCC's PCH > support is weak at best (you can include only one precompiled header, > it must be the first included header, reusing it in presence of changed > compile flags is often not possible), and semantics are very > compiler-dependent. > > That said, even without explicit Automake support you should be able to > make use of precompiled headers by using self-written rules, no? > > Cheers, > Ralf