$RBGB/bdemakeLessonsLearned080117.txt Wed 080116: ------------- After spending 3 days trial and error, bde almost compiles, yet there are still still problems for linux and alpha hosts. Thur 080117: ------------ bde finally compiles on saturn and mercury with and without logging. I did not recognize the real problem[s] until today: One Imakefile was corrupted by a missing target:dependency line and/or a missing '\' continuation symbol in an imake macro. The implicit (and wrong) default dprint* function prototypes in bde/src/Imakefile resulted in cc not gcc and cxx not c++. I assumed failure to #include dprint.h in schema.h in graph.h. This lost time and did not work. #ifdef USEDECC caused prototype decl'ns to fail because it always defined and cc or cxx was called instead of gcc or g++. #ifdef CPLUSPLUS also led to failure because cxx was used and did not know about gnu's __FUNCTION__. To fix this I added a new #if defined symbol pair: -DUSECC or -DUSECPLUSPLUS is now passed to the compiler from Imakefiles via Makefile $(CC) commands, depending on the directory src or pr_util_*log, respectively. The complexity of 4-way builds (8-way with USEDECC option) from a common Imakefile trio is daunting, esp. since saturn is old DEC UINX vintage. The alternate of converting from imake to gnu automake or cmake or something else takes a learning curve that I can't afford right now.