The example steel supplied with the SDK uses an unusual bmake file. Unusual because it %includes a pair of supplementary make files MultiCppCompileGo.mki and MultiCppCompileRule.mki. It's found in only four or five other C++ examples (I don't think it's applicable to .NET). Here's a note found in MultiCppCompileGo...
MultiCppCompileGo.mki
MultiCppCompileRule.mki
MultiCppCompileGo
The two files MultiCppCompileRule.mki and MultiCppCompileGo.mki should be used together in a single bmake context to bracket the dependency blocks of C/C++ compilands that are completely uniform.
What does uniform mean in this context?
The advantage of using those macros is that it invokes the Viz C++ compiler only once, to build all source files in a list. For small examples that probably doesn't have much effect, but for larger projects it should result in faster compilation times because the compiler is invoked only once instead of a discrete invocation per source file.
Jon Summers said:Here's a note found in MultiCppCompileGo...
This note came from MultiCppCompileRule.mki, not MultiCppCompileGo.mki.
Jon Summers said:What does uniform mean in this context?
I think it means the ${MultiCompileDepends} part. The dependency in every line between MultiCppCompileRule.mki and MultiCppCompileGo.mki.should include a ${MultiCompileDepends}. Below is my make file which uses the VS multiple processor compilation technology.
MultiCompileDepends = $(_MakeFileSpec) %include $(MDLMKI)MultiCppCompileRule.mki $(o)$(appName)$(oext) : $(baseDir)$(appName).cpp ${MultiCompileDepends} $(o)SolidTest$(oext) : $(baseDir)SolidTest.cpp ${MultiCompileDepends} $(o)MeshTest$(oext) : $(baseDir)MeshTest.cpp ${MultiCompileDepends} $(o)TerrainModelTest$(oext) : $(baseDir)TerrainModelTest.cpp ${MultiCompileDepends} $(o)LevelTest$(oext) : $(baseDir)LevelTest.cpp ${MultiCompileDepends} $(o)ViewTest$(oext) : $(baseDir)ViewTest.cpp ${MultiCompileDepends} $(o)ECTest$(oext) : $(baseDir)ECTest.cpp ${MultiCompileDepends} $(o)PCTest$(oext) : $(baseDir)PCTest.cpp ${MultiCompileDepends} $(o)TextTest$(oext) : $(baseDir)TextTest.cpp ${MultiCompileDepends} $(o)Create$(oext) : $(baseDir)Create.cpp ${MultiCompileDepends} $(o)NewTech$(oext) : $(baseDir)NewTech.cpp ${MultiCompileDepends} $(o)PrintTest$(oext) : $(baseDir)PrintTest.cpp ${MultiCompileDepends} $(o)ConstraintTest$(oext) : $(baseDir)ConstraintTest.cpp ${MultiCompileDepends} $(o)MaterialTest$(oext) : $(baseDir)MaterialTest.cpp ${MultiCompileDepends} $(o)GCSTest$(oext) : $(baseDir)GCSTest.cpp ${MultiCompileDepends} $(o)MdlDialogTest$(oext) : $(baseDir)MdlDialogTest.cpp $(baseDir)$(appName).h ${MultiCompileDepends} $(o)MyDgnTools$(oext) : $(baseDir)MyDgnTools.cpp $(baseDir)MyDgnTools.h ${MultiCompileDepends} %include $(MDLMKI)MultiCppCompileGo.mki
Answer Verified By: Jon Summers