-// check if to use precompiled headers
-#if ((defined(__BORLANDC__) || defined(__VISUALC__) || defined(__WATCOMC__)) && defined(__WXMSW__)) || defined(__WXPM__)
- #if !defined(NOPCH)
+// check if to use precompiled headers: do it for most Windows compilers unless
+// explicitly disabled by defining NOPCH
+#if defined(__VISUALC__) || \
+ defined(__DMC__) || \
+ defined(__VISAGECPP__) || \
+ defined(__MWERKS__) || \
+ defined(__WATCOMC__) || \
+ defined(__BORLANDC__)
+
+
+ // If user did not request NOCPH and we're not building using configure
+ // then assume user wants precompiled headers.
+ #if !defined(NOPCH) && !defined(__WX_SETUP_H__)