I am trying to create a makefile (yes, oldfashioned I know) which will allow use of precompiled headers and I succeeded using MSVC.
What I am not successfull is do the same with Intel Compiler.
I have a rule which says:
stable.pch : stdafx.cpp stdafx.h
$(CC) (options) /Ycstdafx.h /Fpstable.pch stdafx.cpp
$(CC) can be icl.exe or cl.exe depending on macro definitions.
With CL (MSVC), stable.pch gets created and subsequently used in other rules with /Yu and /Fpstable.pch with no issues.
With ICL (Intel), if there is no stable.pchi but there is stable.pch I get:
Catastrophic error: cannot open precompiled header file "stable.pchi"
Note the added "i" at the end of filename extension.
If I delete stable.pch left from MSVC, then Intel Compiler creates stable.pchi.
To me this looks like a compiler bug -- ICL doesn't find stable.pchi but since there is stable.pch it fails to create its own .pchi file.