Index: trunk/src/helpers/helpers_post.in
===================================================================
--- trunk/src/helpers/helpers_post.in	(revision 74)
+++ trunk/src/helpers/helpers_post.in	(revision 75)
@@ -31,199 +31,12 @@
 !endif
 
-# Now define dependencies for all our .OBJ files by telling NMAKE
-# which .OBJ file depends on what. For each .OBJ we define what files
-# will enforce a recompilation when they've been changed.
-# This uses the inference rules defined above.
+# The .OBJ-from-sources dependencies are now automatically
+# created by "nmake dep" into the .depend include file.
+# V0.9.12 (2001-05-22) [umoeller]
 
-# Note that ..\helpers\dosh.h is specified with _all_ files, so
-# you can enforce a complete recompile of XWorkplace if you update
-# that file (just save it once).
-
-# Helper .OBJ files from /HELPERS. The object files are created
-# from this makefile too.
-
-$(OUTPUTDIR)\animate.obj:   $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\winh.h $(HLPINC)\gpih.h \
-
-$(OUTPUTDIR)\cnrh.obj:     $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\winh.h
-
-$(OUTPUTDIR)\cctl_chart.obj:     $(@B).c $(HLPINC)\comctl.h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\cnrh.h $(HLPINC)\except.h $(HLPINC)\gpih.h \
-                    $(HLPINC)\linklist.h $(HLPINC)\winh.h
-
-$(OUTPUTDIR)\cctl_checkcnr.obj:     $(@B).c $(HLPINC)\comctl.h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\cnrh.h $(HLPINC)\except.h $(HLPINC)\gpih.h \
-                    $(HLPINC)\linklist.h $(HLPINC)\winh.h
-
-$(OUTPUTDIR)\cctl_progbar.obj:     $(@B).c $(HLPINC)\comctl.h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\cnrh.h $(HLPINC)\except.h $(HLPINC)\gpih.h \
-                    $(HLPINC)\linklist.h $(HLPINC)\winh.h
-
-$(OUTPUTDIR)\cctl_splitwin.obj:     $(@B).c $(HLPINC)\comctl.h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\cnrh.h $(HLPINC)\except.h $(HLPINC)\gpih.h \
-                    $(HLPINC)\linklist.h $(HLPINC)\winh.h
-
-$(OUTPUTDIR)\cctl_tooltip.obj:      $(@B).c $(HLPINC)\comctl.h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\cnrh.h $(HLPINC)\except.h $(HLPINC)\gpih.h \
-                    $(HLPINC)\linklist.h $(HLPINC)\winh.h
-
-$(OUTPUTDIR)\comctl.obj:            $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\cnrh.h $(HLPINC)\except.h $(HLPINC)\gpih.h \
-                    $(HLPINC)\linklist.h $(HLPINC)\winh.h
-
-$(OUTPUTDIR)\configsys.obj:         $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\dosh.h $(HLPINC)\stringh.h $(HLPINC)\xstring.h
-
-$(OUTPUTDIR)\datetime.obj:          $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h
-
-$(OUTPUTDIR)\debug.obj:     $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\dosh.h
-
-$(OUTPUTDIR)\dialog.obj:     $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\comctl.h $(HLPINC)\gpih.h $(HLPINC)\linklist.h \
-                $(HLPINC)\standards.h $(HLPINC)\stringh.h \
-               $(HLPINC)\winh.h
-
-$(OUTPUTDIR)\dosh.obj:      $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h
-
-$(OUTPUTDIR)\dosh2.obj:      $(@B).c $(HLPINC)\dosh.h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\ensure.h $(HLPINC)\standards.h $(HLPINC)\stringh.h
-
-$(OUTPUTDIR)\eah.obj:       $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h
-
-$(OUTPUTDIR)\encodings.obj:         $(@B).c $(INC)\encodings\*.h \
-               $(PROJECTINC)\setup.h
-
-$(OUTPUTDIR)\except.obj:    $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\dosh.h $(HLPINC)\debug.h
-
-$(OUTPUTDIR)\gpih.obj:      $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\winh.h
-
-$(OUTPUTDIR)\level.obj:  $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h
-
-$(OUTPUTDIR)\linklist.obj:  $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h
-
-$(OUTPUTDIR)\memdebug.obj:  $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\except.h $(HLPINC)\stringh.h
-
-$(OUTPUTDIR)\memdebug_win.obj:  $(@B).c $(HLPINC)\memdebug.h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\cnrh.h $(HLPINC)\except.h $(HLPINC)\stringh.h $(HLPINC)\winh.h
-
-$(OUTPUTDIR)\prfh.obj:      $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h
-
-$(OUTPUTDIR)\prfh2.obj:      $(@B).c $(HLPINC)\prfh.h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\dosh.h $(HLPINC)\stringh.h
-
-$(OUTPUTDIR)\resh.obj:      $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h
-
-$(OUTPUTDIR)\procstat.obj:  $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h
-
-$(OUTPUTDIR)\shapewin.obj:  $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\gpih.h
-
-$(OUTPUTDIR)\stringh.obj:   $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\xstring.h
-
-$(OUTPUTDIR)\syssound.obj:   $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\dosh.h $(HLPINC)\prfh.h
-
-$(OUTPUTDIR)\textview.obj:   $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\comctl.h $(HLPINC)\gpih.h $(HLPINC)\linklist.h $(HLPINC)\stringh.h \
-                    $(HLPINC)\winh.h $(HLPINC)\xstring.h
-
-$(OUTPUTDIR)\threads.obj:   $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h
-
-$(OUTPUTDIR)\timer.obj:   $(@B).c $(HLPINC)\$(@B).h \
-               $(HLPINC)\datetime.h $(HLPINC)\except.h $(HLPINC)\linklist.h $(HLPINC)\threads.h \
-               $(PROJECTINC)\setup.h
-
-$(OUTPUTDIR)\tmsgfile.obj:  $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\eah.h
-
-$(OUTPUTDIR)\textv_html.obj:   $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\linklist.h $(HLPINC)\stringh.h $(HLPINC)\xstring.h
-
-$(OUTPUTDIR)\tree.obj:   $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\tree.h
-
-$(OUTPUTDIR)\winh.obj:      $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\dosh.h $(HLPINC)\prfh.h $(HLPINC)\gpih.h $(HLPINC)\stringh.h \
-                 $(HLPINC)\undoc.h $(HLPINC)\xstring.h \
-
-$(OUTPUTDIR)\wphandle.obj:  $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h
-
-$(OUTPUTDIR)\xml.obj:      $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\linklist.h $(HLPINC)\stringh.h $(HLPINC)\tree.h $(HLPINC)\xstring.h
-
-$(OUTPUTDIR)\xprf.obj:  $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\linklist.h $(HLPINC)\prfh.h
-
-$(OUTPUTDIR)\xprf2.obj:  $(@B).c $(HLPINC)\xprf.h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\dosh.h $(HLPINC)\prfh.h $(HLPINC)\stringh.h
-
-$(OUTPUTDIR)\xstring.obj:  $(@B).c $(HLPINC)\$(@B).h \
-               $(PROJECTINC)\setup.h \
-               $(HLPINC)\stringh.h
-
-XMLHEADERS = $(PROJECTINC)\setup.h \
-$(INC)\expat\ascii.h \
-$(INC)\expat\asciitab.h \
-$(INC)\expat\expat.h \
-$(INC)\expat\expat_setup.h \
-$(INC)\expat\iasciitab.h \
-$(INC)\expat\latin1tab.h \
-$(INC)\expat\nametab.h \
-$(INC)\expat\utf8tab.h \
-$(INC)\expat\xmlrole.h \
-$(INC)\expat\xmltok.h \
-$(INC)\expat\xmltok_impl.h
-
-$(OUTPUTDIR)\xml_charset.obj: $(@B).c $(XMLHEADERS)
-
-$(OUTPUTDIR)\xmlparse.obj: $(@B).c $(XMLHEADERS)
-
-$(OUTPUTDIR)\xmlrole.obj: $(@B).c $(XMLHEADERS)
-
-$(OUTPUTDIR)\xmltok.obj: $(@B).c xmltok_impl.c xmltok_ns.c $(XMLHEADERS)
+!ifndef NOINCLUDEDEPEND
+!include .depend
+!endif
 
 
+
Index: trunk/src/helpers/helpers_pre.in
===================================================================
--- trunk/src/helpers/helpers_pre.in	(revision 74)
+++ trunk/src/helpers/helpers_pre.in	(revision 75)
@@ -62,4 +62,5 @@
 $(OUTPUTDIR)\prfh2.obj \
 $(OUTPUTDIR)\resh.obj \
+$(OUTPUTDIR)\semaphores.obj \
 $(OUTPUTDIR)\stringh.obj \
 $(OUTPUTDIR)\syssound.obj \
Index: trunk/src/helpers/makefile
===================================================================
--- trunk/src/helpers/makefile	(revision 74)
+++ trunk/src/helpers/makefile	(revision 75)
@@ -24,9 +24,12 @@
 #
 #       Required environment variables:
+#
 #               -- PROJECT_BASE_DIR: where to find setup.in; this should
 #                   be the root directory of the project, e.g. "C:\cvs\warpin"
 #                   or "C:\cvs\xworkplace"
+#
 #               -- HELPERS_OUTPUT_DIR: where to create output files (*.obj, helpers.lib)
 #                   this should be a "bin" directory (e.g. "C:\cvs\warpin\bin"
+#
 #               -- CC_HELPERS: compiler command line for compiling C files.
 #                   With VAC++, this should include the /Ge+ (compile to EXE)
@@ -34,8 +37,10 @@
 #                   files.
 #                   If you're using the "dll" target, specify /Ge- instead.
+#
 #               -- MAINMAKERUNNING: if this is NOT defined, this makefile
 #                   will recurse to the makefile in $(PROJECT_BASE_DIR).
 #                   So to have this makefile run successfully, define this
 #                   variable to something.
+#
 #                   This variable was introduced to be able to start a build
 #                   process from src\helpers as well. However, when your own
@@ -130,4 +135,11 @@
     @echo $(MAKEDIR)\makefile: Returned from main makefile. Done.
 
+# The "dep" target: run fastdep on the sources.
+# "nmake dep" gets called from src\makefile if nmake dep
+# is running on the main makefile.
+dep:
+    $(RUN_FASTDEP) *.c
+    @echo ----- Leaving $(MAKEDIR)
+
 # Define the main dependency between the output HELPERS.LIB and
 # all the object files.
Index: trunk/src/helpers/xmlparse.c
===================================================================
--- trunk/src/helpers/xmlparse.c	(revision 74)
+++ trunk/src/helpers/xmlparse.c	(revision 75)
@@ -70,22 +70,15 @@
         // this code generates those options HEAVILY
 
-#ifdef COMPILED_FROM_DSP
-    #include "winconfig.h"
-    #define XMLPARSEAPI __declspec(dllexport)
-    #include "expat.h"
+// #include <config.h>
+
+#ifdef __declspec
+#define XMLPARSEAPI __declspec(dllexport)
+#endif
+
+#include "expat\expat.h"
+
+#ifdef __declspec
     #undef XMLPARSEAPI
-#else
-    // #include <config.h>
-
-    #ifdef __declspec
-    #define XMLPARSEAPI __declspec(dllexport)
-    #endif
-
-    #include "expat\expat.h"
-
-    #ifdef __declspec
-        #undef XMLPARSEAPI
-    #endif
-#endif /* ndef COMPILED_FROM_DSP */
+#endif
 
 #include <stddef.h>
Index: trunk/src/helpers/xmlrole.c
===================================================================
--- trunk/src/helpers/xmlrole.c	(revision 74)
+++ trunk/src/helpers/xmlrole.c	(revision 75)
@@ -38,10 +38,4 @@
         // disable "statement unreachable" and "missing break statement"
         // this code generates those options HEAVILY
-
-#ifdef COMPILED_FROM_DSP
-#include "winconfig.h"
-#else
-// #include <config.h>
-#endif /* ndef COMPILED_FROM_DSP */
 
 #include "expat\xmlrole.h"
Index: trunk/src/helpers/xmltok.c
===================================================================
--- trunk/src/helpers/xmltok.c	(revision 74)
+++ trunk/src/helpers/xmltok.c	(revision 75)
@@ -39,10 +39,4 @@
         // this code generates those options HEAVILY
 
-#ifdef COMPILED_FROM_DSP
-#include "winconfig.h"
-#else
-// #include <config.h>
-#endif /* ndef COMPILED_FROM_DSP */
-
 #include "expat\xmltok.h"
 #include "expat\nametab.h"
@@ -361,6 +355,6 @@
     {VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0},
     {
-#include "asciitab.h"
-#include "utf8tab.h"
+#include "expat\asciitab.h"
+#include "expat\utf8tab.h"
     },
     STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_)
@@ -387,6 +381,6 @@
     {VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0},
     {
-#include "iasciitab.h"
-#include "utf8tab.h"
+#include "expat\iasciitab.h"
+#include "expat\utf8tab.h"
     },
     STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_)
@@ -449,6 +443,6 @@
     {VTABLE1, latin1_toUtf8, latin1_toUtf16, 1, 0, 0},
     {
-#include "asciitab.h"
-#include "latin1tab.h"
+#include "expat\asciitab.h"
+#include "expat\latin1tab.h"
     },
     STANDARD_VTABLE(sb_)
@@ -483,5 +477,5 @@
     {VTABLE1, ascii_toUtf8, latin1_toUtf16, 1, 1, 0},
     {
-#include "asciitab.h"
+#include "expat\asciitab.h"
 /* BT_NONXML == 0 */
     },
@@ -709,6 +703,6 @@
              },
              {
-    #include "asciitab.h"
-    #include "latin1tab.h"
+    #include "expat\asciitab.h"
+    #include "expat\latin1tab.h"
              },
              STANDARD_VTABLE(little2_)
@@ -743,6 +737,6 @@
          {VTABLE, 2, 0, 1},
          {
-#include "iasciitab.h"
-#include "latin1tab.h"
+#include "expat\iasciitab.h"
+#include "expat\latin1tab.h"
          },
          STANDARD_VTABLE(little2_)
@@ -847,6 +841,6 @@
          },
          {
-#include "asciitab.h"
-#include "latin1tab.h"
+#include "expat\asciitab.h"
+#include "expat\latin1tab.h"
          },
          STANDARD_VTABLE(big2_)
@@ -881,6 +875,6 @@
          {VTABLE, 2, 0, 1},
          {
-#include "iasciitab.h"
-#include "latin1tab.h"
+#include "expat\iasciitab.h"
+#include "expat\latin1tab.h"
          },
          STANDARD_VTABLE(big2_)
