From 3bd6280073e46dabe71783c398e575aa890a5849 Mon Sep 17 00:00:00 2001
From: carl <carl@freepascal.org>
Date: Sun, 10 Nov 2002 12:22:10 +0000
Subject: [PATCH]   * update makefiles for testing   * update example which did
 not compile

---
 docs/Makefile          | 25 ++++++++++++++++++++++++-
 docs/crtex/Makefile    |  1 +
 docs/dosex/Makefile    | 17 ++++++++++++++---
 docs/dynlibex/Makefile |  1 +
 docs/go32ex/Makefile   |  1 +
 docs/graphex/Makefile  |  1 +
 docs/heapex/Makefile   |  1 +
 docs/ipcex/Makefile    |  1 +
 docs/kbdex/Makefile    |  1 +
 docs/linuxex/Makefile  |  1 +
 docs/mathex/Makefile   | 19 ++++++++++++++++++-
 docs/mathex/ex14.pp    |  2 +-
 docs/mmouseex/Makefile |  1 +
 docs/mouseex/Makefile  |  1 +
 docs/objectex/Makefile | 19 ++++++++++++++++++-
 docs/optex/Makefile    |  1 +
 docs/printex/Makefile  |  1 +
 docs/progex/Makefile   |  1 +
 docs/refex/Makefile    | 22 +++++++++++++++++++++-
 docs/refex/ex112.pp    |  2 +-
 docs/refex/ex23.pp     |  2 +-
 docs/refex/ex52.pp     |  2 +-
 docs/refex/ex56.pp     |  2 +-
 docs/refex/ex71.pp     |  2 +-
 docs/refex/ex75.pp     |  2 +-
 docs/refex/ex88.pp     |  2 +-
 docs/sockex/Makefile   |  1 +
 docs/stringex/Makefile | 15 ++++++++++++++-
 docs/sysutex/Makefile  | 22 +++++++++++++++++++++-
 docs/typinfex/Makefile | 19 ++++++++++++++++++-
 docs/videoex/Makefile  |  1 +
 31 files changed, 171 insertions(+), 18 deletions(-)

diff --git a/docs/Makefile b/docs/Makefile
index 6773c68250..9a02d5428e 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -164,8 +164,10 @@ help:
 	@echo ' txt           : dvi, convert to text using dvi2tty'
 	@echo ' htm           : Convert .html to .htm files, zip result'
 	@echo ' clean         : Clean up the mess.'
+	@echo ' examples      : Comple all generic examples'
 	@echo ' linuxexamples : Compile all examples for linux'
 	@echo ' dosexamples   : Compile all examples for dos'
+	@echo ' execute       : Execute examples (DOS/Windows/OS/2 only)'
 	@echo ' htmldist      : html, and rchive result.'
 	@echo ' psdist        : ps, and archive result.'
 	@echo ' pdfdist       : pdf, and archive result.'
@@ -538,6 +540,7 @@ examples:
 	$(MAKE) -C crtex
 	$(MAKE) -C dosex
 	$(MAKE) -C optex
+	$(MAKE) -C mathex
 	$(MAKE) -C printex
 	$(MAKE) -C refex
 	$(MAKE) -C stringex
@@ -554,11 +557,31 @@ linuxexamples: examples
 	$(MAKE) -C linuxex
 	$(MAKE) -C sockex
 	$(MAKE) -C ipcex
+	
+execute:
+	$(MAKE) -C dosex all
+	$(MAKE) -C dosex execute
+	$(MAKE) -C refex all
+	$(MAKE) -C refex execute
+	$(MAKE) -C mathex all
+	$(MAKE) -C mathex execute
+	$(MAKE) -C stringex all
+	$(MAKE) -C stringex execute
+	$(MAKE) -C objectex all
+	$(MAKE) -C objectex execute
+	$(MAKE) -C sysutex all
+	$(MAKE) -C sysutex execute
+	$(MAKE) -C typinfex all
+	$(MAKE) -C typinfex execute
 
 
 #
 # $Log$
-# Revision 1.14  2002-04-23 18:03:50  michael
+# Revision 1.15  2002-11-10 12:22:10  carl
+#   * update makefiles for testing
+#   * update example which did not compile
+#
+# Revision 1.14  2002/04/23 18:03:50  michael
 # + removed fcl target in HTML
 #
 # Revision 1.13  2002/03/19 14:33:18  pierre
diff --git a/docs/crtex/Makefile b/docs/crtex/Makefile
index 9f904d32c7..7cbdc57d2a 100644
--- a/docs/crtex/Makefile
+++ b/docs/crtex/Makefile
@@ -46,6 +46,7 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
diff --git a/docs/dosex/Makefile b/docs/dosex/Makefile
index 186c2731fd..92e3a0f876 100644
--- a/docs/dosex/Makefile
+++ b/docs/dosex/Makefile
@@ -28,15 +28,20 @@ ifdef UNITDIR
 PPOPTS:=$(PPOPTS) -Up$(UNITDIR);
 endif
 
-.SUFFIXES: .pp .tex
+.SUFFIXES: .pp .tex .log .exe
 
-.PHONY: all tex clean
+.PHONY: all tex clean execute
 
 OBJECTS=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 ex11 ex12 ex13 ex14 \
 #        ex15 ex16
 
 TEXOBJECTS=$(addsuffix .tex, $(OBJECTS))
 
+LOGFILE=$(addsuffix .log, $(OBJECTS))
+
+
+execute: $(LOGFILE)
+
 all : $(OBJECTS)
 
 tex : $(TEXOBJECTS)
@@ -46,9 +51,15 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
- 
+	rm -f *.ow *.sw *.exe *.dll *.log *.tmp
+	
+	
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
+	
+$(LOGFILE): %.log: %.exe 
+	$* > $*.log
+	
 
 $(TEXOBJECTS): %.tex: %.pp head.tex foot.tex
 	$(PP2TEX) $*
diff --git a/docs/dynlibex/Makefile b/docs/dynlibex/Makefile
index 859e16bc02..806d226265 100644
--- a/docs/dynlibex/Makefile
+++ b/docs/dynlibex/Makefile
@@ -45,6 +45,7 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
diff --git a/docs/go32ex/Makefile b/docs/go32ex/Makefile
index 5f9482d0b4..22771d4bee 100644
--- a/docs/go32ex/Makefile
+++ b/docs/go32ex/Makefile
@@ -46,6 +46,7 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
diff --git a/docs/graphex/Makefile b/docs/graphex/Makefile
index beffc792cf..e73b3e38dd 100644
--- a/docs/graphex/Makefile
+++ b/docs/graphex/Makefile
@@ -45,6 +45,7 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
diff --git a/docs/heapex/Makefile b/docs/heapex/Makefile
index 1aa8e6fe55..b721629198 100644
--- a/docs/heapex/Makefile
+++ b/docs/heapex/Makefile
@@ -45,6 +45,7 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
diff --git a/docs/ipcex/Makefile b/docs/ipcex/Makefile
index 95794c17e7..1ddf649409 100644
--- a/docs/ipcex/Makefile
+++ b/docs/ipcex/Makefile
@@ -45,6 +45,7 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
diff --git a/docs/kbdex/Makefile b/docs/kbdex/Makefile
index bad165980b..61b1f2bb90 100644
--- a/docs/kbdex/Makefile
+++ b/docs/kbdex/Makefile
@@ -47,6 +47,7 @@ onetex : tex
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS) logkeys.ppu logkeys.o
 	rm -f keyboard.log
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
diff --git a/docs/linuxex/Makefile b/docs/linuxex/Makefile
index 8d0c63e41c..ab11e0d98f 100644
--- a/docs/linuxex/Makefile
+++ b/docs/linuxex/Makefile
@@ -51,6 +51,7 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
diff --git a/docs/mathex/Makefile b/docs/mathex/Makefile
index fdce1f1092..05dac26515 100644
--- a/docs/mathex/Makefile
+++ b/docs/mathex/Makefile
@@ -30,7 +30,7 @@ endif
 
 .SUFFIXES: .pp .tex
 
-.PHONY: all tex clean
+.PHONY: all tex clean execute
 
 OBJECTS=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 \
         ex11 ex12 ex13 ex14 ex15 ex16 ex17 ex18 ex19 ex20 \
@@ -40,18 +40,35 @@ OBJECTS=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 \
 
 TEXOBJECTS=$(addsuffix .tex, $(OBJECTS))
 
+# This is not the same list as objects, since some of the
+# tests are interactive.
+TOTEST=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 \
+        ex11 ex12 ex13 ex14 ex15 ex16 ex17 ex18 ex19 ex20 \
+        ex21 ex22 ex23 ex24 ex25 ex26 ex27 ex28 ex29 ex30 \
+        ex31 ex32 ex33 ex34 ex35 ex36 ex37 ex38 ex39 ex40 \
+        ex41 ex42 ex43 ex44 ex45 ex46 ex47 ex48 ex49 ex50
+LOGFILE=$(addsuffix .log, $(TOTEST))
+
+
 all : $(OBJECTS)
 
 tex : $(TEXOBJECTS)
 
+execute: $(LOGFILE)
+
+
 onetex : tex
 	$(MAKETEX) $(TEXOBJECTS)
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll *.log *.tmp
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
 
 $(TEXOBJECTS): %.tex: %.pp head.tex foot.tex
 	$(PP2TEX) $*
+
+$(LOGFILE): %.log: %.exe 
+	$* > $*.log
diff --git a/docs/mathex/ex14.pp b/docs/mathex/ex14.pp
index e9327da11e..2c2aefd611 100644
--- a/docs/mathex/ex14.pp
+++ b/docs/mathex/ex14.pp
@@ -7,7 +7,7 @@ Uses math;
 Procedure dofrexp(Const X : extended);
 
 var man : extended;
-    exp: integer;
+    exp: longint;
 
 begin
   man:=0;
diff --git a/docs/mmouseex/Makefile b/docs/mmouseex/Makefile
index 4d274233a2..0d055609d9 100644
--- a/docs/mmouseex/Makefile
+++ b/docs/mmouseex/Makefile
@@ -46,6 +46,7 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
diff --git a/docs/mouseex/Makefile b/docs/mouseex/Makefile
index eaabb39f8d..48e456f67f 100644
--- a/docs/mouseex/Makefile
+++ b/docs/mouseex/Makefile
@@ -47,6 +47,7 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
diff --git a/docs/objectex/Makefile b/docs/objectex/Makefile
index a88e6d15f6..41009f9a73 100644
--- a/docs/objectex/Makefile
+++ b/docs/objectex/Makefile
@@ -30,12 +30,22 @@ endif
 
 .SUFFIXES: .pp .tex
 
-.PHONY: all tex clean
+.PHONY: all tex clean execute
 
 OBJECTS=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 \
         ex11 ex12 ex13 ex14 ex15 ex16 ex17 ex18 ex19 ex20 \
         ex21 ex22 ex23 ex24 ex25 ex26 ex27 ex28 ex29 ex30 \
         ex31 ex32 ex33 ex34 ex35 ex36 ex37 ex38 ex39 ex40 
+        
+# This might not be the same list as objects, since some of the
+# tests might be interactive.
+TOTEST=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 \
+        ex11 ex12 ex13 ex14 ex15 ex16 ex17 ex18 ex19 ex20 \
+        ex21 ex22 ex23 ex24 ex25 ex26 ex27 ex28 ex29 ex30 \
+        ex31 ex32 ex33 ex34 ex35 ex37 ex38 ex39 ex40 
+        
+LOGFILE=$(addsuffix .log, $(TOTEST))
+        
 
 TEXOBJECTS=$(addsuffix .tex, $(OBJECTS))
 
@@ -43,14 +53,21 @@ all : $(OBJECTS)
 
 tex : $(TEXOBJECTS) myobject.tex mysortc.tex
 
+execute: $(LOGFILE)
+
+
 onetex : tex
 	$(MAKETEX) $(TEXOBJECTS)
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS) mysortc.ppu myobject.ppu mysortc.tex myobject.tex test.dat
+	rm -f *.ow *.sw *.exe *.dll *.ppw
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
 
 $(TEXOBJECTS) myobject.tex mysortc.tex: %.tex: %.pp head.tex foot.tex
 	$(PP2TEX) $*
+
+$(LOGFILE): %.log: %.exe 
+	$* > $*.log
diff --git a/docs/optex/Makefile b/docs/optex/Makefile
index ef7816def0..309cddf58c 100644
--- a/docs/optex/Makefile
+++ b/docs/optex/Makefile
@@ -45,6 +45,7 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
diff --git a/docs/printex/Makefile b/docs/printex/Makefile
index 1262dab4e9..ea9f184c39 100644
--- a/docs/printex/Makefile
+++ b/docs/printex/Makefile
@@ -45,6 +45,7 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
diff --git a/docs/progex/Makefile b/docs/progex/Makefile
index c6a9f1f102..4b11de8115 100644
--- a/docs/progex/Makefile
+++ b/docs/progex/Makefile
@@ -51,6 +51,7 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s *.so $(OBJECTS) $(COBJECTS) $(TEXOBJECTS) $(CTEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp $(LIBOBJECT)
 	$(PP) $(PPOPTS) $*
diff --git a/docs/refex/Makefile b/docs/refex/Makefile
index 46262f0042..fae5b6182e 100644
--- a/docs/refex/Makefile
+++ b/docs/refex/Makefile
@@ -30,7 +30,7 @@ endif
 
 .SUFFIXES: .pp .tex
 
-.PHONY: all tex clean
+.PHONY: all tex clean execute
 
 OBJECTS=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 ex11 ex12 ex13 ex14 \
         ex15 ex16 ex17 ex18 ex19 ex20 ex21 ex22 ex23 ex24 ex25 ex26 ex27 \
@@ -44,18 +44,38 @@ OBJECTS=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 ex11 ex12 ex13 ex14 \
 
 TEXOBJECTS=$(addsuffix .tex, $(OBJECTS))
 
+# This is not the same list as objects, since some of the
+# tests are interactive.
+TOTEST=ex1 ex2 ex3 ex4 ex5 ex8 ex9 ex10 ex11 ex12 ex13 ex14 \
+        ex15 ex16 ex17 ex20 ex21 ex22 ex23 ex25 ex26 ex27 \
+        ex28 ex29 ex31 ex32 ex33 ex34 ex36 ex37 ex38 ex39 ex40 \
+        ex41 ex42 ex43 ex44 ex45 ex47 ex48 ex52 ex53 \
+        ex54 ex56 ex59 ex60 ex62 ex63 ex64 ex65 ex66 \
+        ex67 ex68 ex69 ex70 ex71 ex72 ex73 ex75 ex76 ex78 ex79 \
+	ex80 ex81 ex82 ex83  ex85 ex86 ex87 ex88 ex89 \
+	ex90 ex91 ex92 ex93 ex96 ex97 ex98 ex99 ex100 ex101 ex102\
+        ex103 ex104 ex105 ex106 ex107 ex108 ex109 ex110 ex111 ex112
+LOGFILE=$(addsuffix .log, $(TOTEST))
+
+
 all : $(OBJECTS)
 
 tex : $(TEXOBJECTS)
 
+execute: $(LOGFILE)
+
 onetex : tex
 	$(MAKETEX) $(TEXOBJECTS)
 
 clean : 
 	rm -f *.o *.s *.rst $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll *.log *.tmp
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
 
 $(TEXOBJECTS): %.tex: %.pp head.tex foot.tex
 	$(PP2TEX) $*
+
+$(LOGFILE): %.log: %.exe 
+	$* > $*.log
diff --git a/docs/refex/ex112.pp b/docs/refex/ex112.pp
index 8c49cf747b..050e1350ee 100644
--- a/docs/refex/ex112.pp
+++ b/docs/refex/ex112.pp
@@ -10,5 +10,5 @@ begin
   For I:=1 to 10 do
     Writeln (OctStr(Value,I));
   For I:=1 to 16 do
-    Writeln (OctStr(I),3);
+    Writeln (OctStr(I,3));
 end.
diff --git a/docs/refex/ex23.pp b/docs/refex/ex23.pp
index 96137607cd..004966e2b0 100644
--- a/docs/refex/ex23.pp
+++ b/docs/refex/ex23.pp
@@ -8,7 +8,7 @@ Var F : File of Longint;
 begin
   { Fill a file with data : 
     Each position contains the position ! }
-  Assign (F,'test.dat');
+  Assign (F,'test.tmp');
   Rewrite (F);
   For L:=0 to 100 do
     begin
diff --git a/docs/refex/ex52.pp b/docs/refex/ex52.pp
index 466a882562..ff19d87d06 100644
--- a/docs/refex/ex52.pp
+++ b/docs/refex/ex52.pp
@@ -6,7 +6,7 @@ Var F : File;
     I : longint;
 
 begin
-  Assign (F,'Test.dat');
+  Assign (F,'Test.tmp');
   { Create the file. Recordsize is 4 } 
   Rewrite (F,Sizeof(I));
   For I:=1 to 10 do
diff --git a/docs/refex/ex56.pp b/docs/refex/ex56.pp
index 6edbeaeabf..de09782bc6 100644
--- a/docs/refex/ex56.pp
+++ b/docs/refex/ex56.pp
@@ -8,7 +8,7 @@ Var
   
 begin
   { Create a file and fill it with data } 
-  Assign (F,'test.dat');
+  Assign (F,'test.tmp');
   Rewrite(F); { Create file }
   Close(f);   
   FileMode:=2;
diff --git a/docs/refex/ex71.pp b/docs/refex/ex71.pp
index f70aabd0a3..ab12d1f454 100644
--- a/docs/refex/ex71.pp
+++ b/docs/refex/ex71.pp
@@ -6,7 +6,7 @@ Var F : File of longint;
     I,L : Longint;
     
 begin
-  Assign (F,'test.dat');
+  Assign (F,'test.tmp');
   Rewrite (F);
   For I:=1 to 10 Do 
     Write (F,I);
diff --git a/docs/refex/ex75.pp b/docs/refex/ex75.pp
index d93275e53e..6ef1ae5a12 100644
--- a/docs/refex/ex75.pp
+++ b/docs/refex/ex75.pp
@@ -10,7 +10,7 @@ begin
   Write ('This is on the first line ! '); { No CR/LF pair! }
   Writeln ('And this too...');
   Writeln ('But this is already on the second line...');
-  Assign (f,'test.dat');
+  Assign (f,'test.tmp');
   Rewrite (f);
   For L:=1 to 10 do 
     write (F,L); { No writeln allowed here ! }
diff --git a/docs/refex/ex88.pp b/docs/refex/ex88.pp
index 3c3cc20e5c..ac205439c9 100644
--- a/docs/refex/ex88.pp
+++ b/docs/refex/ex88.pp
@@ -7,7 +7,7 @@ Program Example88;
 Var F : text;
 
 begin
-  AssignFile(F,'textfile.txt');
+  AssignFile(F,'textfile.tmp');
   Rewrite(F);
   Writeln (F,'This is a silly example of AssignFile and CloseFile.');
   CloseFile(F);
diff --git a/docs/sockex/Makefile b/docs/sockex/Makefile
index ba6ab192f2..f584faecd0 100644
--- a/docs/sockex/Makefile
+++ b/docs/sockex/Makefile
@@ -45,6 +45,7 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
diff --git a/docs/stringex/Makefile b/docs/stringex/Makefile
index 04964212f0..e04d9c7695 100644
--- a/docs/stringex/Makefile
+++ b/docs/stringex/Makefile
@@ -30,14 +30,23 @@ endif
 
 .SUFFIXES: .pp .tex
 
-.PHONY: all tex clean
+.PHONY: all tex clean execute
 
 OBJECTS=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 ex11 ex12 ex13 ex14 ex15 ex16 ex17
 
+# This might not be the same list as objects, since some of the
+# tests might be interactive.
+TOTEST=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 ex11 ex12 ex13 ex14 ex15 ex16 ex17
+LOGFILE=$(addsuffix .log, $(TOTEST))
+
+
 TEXOBJECTS=$(addsuffix .tex, $(OBJECTS))
 
 all : $(OBJECTS)
 
+execute: $(LOGFILE)
+
+
 tex : $(TEXOBJECTS)
 
 onetex : tex
@@ -45,9 +54,13 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll *.log *.tmp
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
 
 $(TEXOBJECTS): %.tex: %.pp head.tex foot.tex
 	$(PP2TEX) $*
+
+$(LOGFILE): %.log: %.exe 
+	$* > $*.log
diff --git a/docs/sysutex/Makefile b/docs/sysutex/Makefile
index 69d9201568..2ca15f5059 100644
--- a/docs/sysutex/Makefile
+++ b/docs/sysutex/Makefile
@@ -30,7 +30,7 @@ endif
 
 .SUFFIXES: .pp .tex
 
-.PHONY: all tex clean
+.PHONY: all tex clean execute
 
 OBJECTS=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 ex11 ex12\
         ex13 ex14 ex15 ex16 ex17 ex18 ex19 ex20 ex21 ex22 ex23 ex24\
@@ -40,11 +40,27 @@ OBJECTS=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 ex11 ex12\
         ex59 ex60 ex61 ex62 ex63 ex64 ex65 ex66 ex67 ex68 ex69 ex70\
         ex71 ex72 ex73 ex74 ex75 ex76 ex77 ex78 ex79 ex80 \
         ex81 ex82 ex83 ex84 ex85 ex86 ex87 ex88
+        
+# This might not be the same list as objects, since some of the
+# tests might be interactive.
+TOTEST=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 ex11 ex12\
+        ex13 ex14 ex15 ex16 ex17 ex18 ex19 ex20 ex21 ex22 ex23 ex24\
+        ex25 ex26 ex27 ex28 ex29 ex30 ex31 ex32 ex35 ex36\
+        ex37 ex39 ex41 ex42 ex43 ex44 ex45 ex46 ex47\
+        ex48 ex49 ex50 ex51 ex52 ex53 ex54 ex55 ex56 ex57 ex58\
+        ex59 ex60 ex61 ex62 ex63 ex64 ex65 ex66 ex67 ex68 ex69 ex70\
+        ex72 ex73 ex74 ex75 ex76 ex77 ex78 ex79 ex80 \
+        ex81 ex82 ex83 ex84 ex85 ex86 ex87 ex88
+
+LOGFILE=$(addsuffix .log, $(TOTEST))
+        
 
 TEXOBJECTS=$(addsuffix .tex, $(OBJECTS))
 
 all : $(OBJECTS)
 
+execute: $(LOGFILE)
+
 tex : $(TEXOBJECTS)
 
 onetex : tex
@@ -52,9 +68,13 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
+	rm -f *.ow *.sw *.exe *.dll *.ppw *.tmp *.log *.dat
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
 
 $(TEXOBJECTS): %.tex: %.pp head.tex foot.tex
 	$(PP2TEX) $*
+
+$(LOGFILE): %.log: %.exe 
+	$* > $*.log
diff --git a/docs/typinfex/Makefile b/docs/typinfex/Makefile
index 6e89113b16..e64f51fb8a 100644
--- a/docs/typinfex/Makefile
+++ b/docs/typinfex/Makefile
@@ -30,15 +30,26 @@ endif
 
 .SUFFIXES: .pp .tex
 
-.PHONY: all tex clean
+.PHONY: all tex clean execute
 
 OBJECTS=rttiobj trtti1 trtti2 trtti3 ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 \
         ex10 ex11 ex12 ex13  ex14 ex15 ex16 ex17 ex18
+        
+# This might not be the same list as objects, since some of the
+# tests might be interactive.
+TOTEST=trtti1 trtti2 trtti3 ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 \
+        ex10 ex11 ex12 ex13  ex14 ex15 ex16 ex17 ex18
+        
+LOGFILE=$(addsuffix .log, $(TOTEST))
+        
 
 TEXOBJECTS=$(addsuffix .tex, $(OBJECTS))
 
 all : $(OBJECTS)
 
+execute: $(LOGFILE)
+
+
 tex : $(TEXOBJECTS)
 
 onetex : tex
@@ -46,9 +57,15 @@ onetex : tex
 
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS) rttiobj.ppu
+	rm -f *.ow *.sw *.exe *.dll *.tmp *.log rttiobj.ppw
  
 $(OBJECTS): %: %.pp
 	$(PP) $(PPOPTS) $*
+	
+	
 
 $(TEXOBJECTS): %.tex: %.pp head.tex foot.tex
 	$(PP2TEX) $*
+
+$(LOGFILE): %.log: %.exe 
+	$* > $*.log
diff --git a/docs/videoex/Makefile b/docs/videoex/Makefile
index 819faa9142..a63198c318 100644
--- a/docs/videoex/Makefile
+++ b/docs/videoex/Makefile
@@ -49,6 +49,7 @@ onetex : tex
 clean : 
 	rm -f *.o *.s $(OBJECTS) $(TEXOBJECTS)
 	rm -f vidutil.ppu vidutil.o viddbg.ppu viddbg.o Video.log
+	rm -f *.ow *.sw *.exe *.dll
  
 $(OBJECTS): %: %.pp vidutil.ppu
 	$(PP) $(PPOPTS) $*