Discussion:
Change 37566 breaks document build on OS/2
(too old to reply)
Frank Beythien
2014-12-03 22:03:21 UTC
Permalink
Raw Message
Hi Jiri,

changing onebook.mif

292c292
< @set PATH=$(%GHOSTSCRIPTPATH);$(%PATH)
---
@PATH $(%GHOSTSCRIPTPATH);$(%PATH)
does not look very good. What is the intention?
Can WinXX process such a cmd?

CU/2
Frank
Hans-Bernhard Bröker
2014-12-03 22:53:58 UTC
Permalink
Raw Message
Post by Frank Beythien
Hi Jiri,
changing onebook.mif
292c292
---
@PATH $(%GHOSTSCRIPTPATH);$(%PATH)
does not look very good. What is the intention?
Can WinXX process such a cmd?
FWIW: yes, it can, once wmake has processed the $(%<name>) references.
The command

PATH <foo>

has actually been the original method of specifying a PATH since MS-DOS
version 2.0. One benefit it used to have over "set path=" is that "PATH
" is four letters shorter than "set path=". That could make a
difference back when the command length maxed out at 127 characters.
Frank Beythien
2014-12-04 13:31:39 UTC
Permalink
Raw Message
Post by Hans-Bernhard Bröker
Post by Frank Beythien
Hi Jiri,
changing onebook.mif
292c292
---
@PATH $(%GHOSTSCRIPTPATH);$(%PATH)
does not look very good. What is the intention?
Can WinXX process such a cmd?
FWIW: yes, it can, once wmake has processed the $(%<name>) references.
The command
PATH <foo>
has actually been the original method of specifying a PATH since MS-DOS
version 2.0. One benefit it used to have over "set path=" is that "PATH
" is four letters shorter than "set path=". That could make a
difference back when the command length maxed out at 127 characters.
Never used that syntax, and as my tests show wmake does not change the
path on OS/2 if using

path ghostscript...

even if the actual path does not exceed 120 chars

--------- from my onebook.mif
$(hbook).pdf : $(hbook).ps
@set OWDOCS_OLD_PATH=$(%PATH)
!ifdef __UNIX__
@set PATH=$(%GHOSTSCRIPTPATH):$(%PATH)
!else
@echo gspath --- $(%GHOSTSCRIPTPATH)
@PATH $(%GHOSTSCRIPTPATH)
@echo path --- $(%PATH)

------------- from the log long lines wrapped
===== pdf E:\ow\docs\pdf-c_readme/c_readme =====
gspath --- e:\gs\gs8.71\bin;e:\gs\gs8.71\lib
path ---
E:\ow\bld\build\binp;E:\ow\bat;E:\ow19\binp;E:\ow19\binw;\bin;E:\own\BINP;E:\own\BINW;e:\tool;C:\F;C:\MPTN\BIN;C:\TCPIP\BIN;C:\IBMCOM;C:\IBMLAN\NETPROG;C:\MUGLIB;C:\ECS\BIN;C:\EMX\BIN;C:\IBMGSK50\BIN;C:\IBMGSK40\BIN;C:\IBMGSK\BIN;C:\OS2;C:\OS2\SYSTEM;C:\OS2\MDOS\WINOS2;C:\OS2\INSTALL;C:\;C:\OS2\MDOS;C:\OS2\APPS;C:\USR\SBIN;C:\USR\BIN;C:\PROGRAMS\OPENJDK6\BIN;C:\MMOS2\FREEDB;C:\MMOS2;C:\MMOS2\MMPLAYER;C:\PROGRAMS\OPENSSH
ps2pdf12 -r600 c_readme.ps c_readme.pdf
SYS1041: The name ps2pdf12 is not recognized as an
internal or external command, operable program or batch file.
Error(E42): Last command making (c_readme.pdf) returned a bad status
Error(E02): Make execution terminated
Error(E42): Last command making (c_readme) returned a bad status
Error(E02): Make execution terminated
<pmake -d build -h> => non-zero return: 512
Build failed
----------------


So I think it is time to look at the os/2 wmake source code...

CU/2
Frank
Hans-Bernhard Bröker
2014-12-04 20:31:18 UTC
Permalink
Raw Message
Post by Frank Beythien
Never used that syntax, and as my tests show wmake does not change the
path on OS/2 if using
I'm pretty sure the OS/2 shell does change its own path using that
syntax. The problem is that that's not what that command was intended
to do --- changing the path in a sub-shell is essentially a NOP, because
that change will not survive the termination of that sub-shell.

That command was meant to change _wmake's_ environment variable
$(%PATH), so the next command being executed will be run with that
search path in its environment. What does evade me, though, is why (a
variation of) the much more obvious full-path invocation

@$(%GHOSTSCRIPTPATH)/ps2pdf12

wouldn't be a lot less hassle.
Post by Frank Beythien
So I think it is time to look at the os/2 wmake source code..
No need. On closer inspection the problem really is that Jiri's change
was just plain wrong. The intention of the original

set path=something;$(%path)

was to modify the environment of wmake itself, and thereby that of
commands run by wmake. To do that, one _has_ to use 'set', which is
intercepted by wmake for exactly that kind of purpose. By not using
'set', you lose that special feature.
Paul S. Person
2014-12-04 18:32:57 UTC
Permalink
Raw Message
On Wed, 03 Dec 2014 23:53:58 +0100, Hans-Bernhard Bröker
Post by Hans-Bernhard Bröker
Post by Frank Beythien
Hi Jiri,
changing onebook.mif
292c292
---
@PATH $(%GHOSTSCRIPTPATH);$(%PATH)
does not look very good. What is the intention?
Can WinXX process such a cmd?
FWIW: yes, it can, once wmake has processed the $(%<name>) references.
The command
PATH <foo>
has actually been the original method of specifying a PATH since MS-DOS
version 2.0. One benefit it used to have over "set path=" is that "PATH
" is four letters shorter than "set path=". That could make a
difference back when the command length maxed out at 127 characters.
I think the problem is with

SET PATH

versus

PATH

but with

SET PATH <whatever>

versus

SET PATH=<whatever>

IIRC, this is how it works:

SET PATH displays the path.
SET PATH <whatever> displays the path and ignores <whatever>
SET PATH=<whatever> sets the path
SET PATH= clears the path

PATH, when used by itself, works exactly the same way.

I would say that we need that "=" back!
--
"Nature must be explained in
her own terms through
the experience of our senses."
Frank Beythien
2014-12-04 19:02:52 UTC
Permalink
Raw Message
Post by Paul S. Person
On Wed, 03 Dec 2014 23:53:58 +0100, Hans-Bernhard Bröker
Post by Hans-Bernhard Bröker
Post by Frank Beythien
Hi Jiri,
changing onebook.mif
292c292
---
@PATH $(%GHOSTSCRIPTPATH);$(%PATH)
does not look very good. What is the intention?
Can WinXX process such a cmd?
FWIW: yes, it can, once wmake has processed the $(%<name>) references.
The command
PATH <foo>
has actually been the original method of specifying a PATH since MS-DOS
version 2.0. One benefit it used to have over "set path=" is that "PATH
" is four letters shorter than "set path=". That could make a
difference back when the command length maxed out at 127 characters.
I think the problem is with
SET PATH
versus
PATH
but with
SET PATH <whatever>
versus
SET PATH=<whatever>
SET PATH displays the path.
SET PATH <whatever> displays the path and ignores <whatever>
SET PATH=<whatever> sets the path
SET PATH= clears the path
PATH, when used by itself, works exactly the same way.
I would say that we need that "=" back!
That is the easiest solution, but the next time someone uses the "path
whatever" syntax it will blow up again. I'll look at wmake (mexec.c) for
a fix.
In mexec.c os/2 and NT are handled together.
On OS/2 it works from the cmdline, but never from wmake.

Paul, when you build the docs on Winxx, does the "path xxx" work for the
ps2pdf12 call?
Paul S. Person
2014-12-05 20:31:21 UTC
Permalink
Raw Message
Post by Frank Beythien
Post by Paul S. Person
SET PATH displays the path.
SET PATH <whatever> displays the path and ignores <whatever>
SET PATH=<whatever> sets the path
SET PATH= clears the path
PATH, when used by itself, works exactly the same way.
I would say that we need that "=" back!
That is the easiest solution, but the next time someone uses the "path
whatever" syntax it will blow up again. I'll look at wmake (mexec.c) for
a fix.
In mexec.c os/2 and NT are handled together.
The fix, then, is simple: never use that syntax.

And reverse (this part of) the change! The "=" was indeed dropped by
the latest set of changes, and that was clearly not a good idea.
Post by Frank Beythien
On OS/2 it works from the cmdline, but never from wmake.
Paul, when you build the docs on Winxx, does the "path xxx" work for the
ps2pdf12 call?
When I go into the docs\pdf directory on my Netbook (32 bit Windows
7), and do

wmake clean
wmake

nothing happens. Nothing is built, no error messages result, nothing
but wmake announcing itself. Note that docs\ps was populated. How odd.

Doing the same in docs\ps produces PS files. Note that this is in a
32-bit command window using a 32-bit wmake and so running wgml in a
separate VDM.

Repeating this on Win 8.1, I first had to build the PS docs. DOSBox
may be irritating, but at least it doesn't try to override the current
window. Of course, by default, it is running at a lower priority in
the background than it would in the foreground, but still, politeness
counts.

Before running wmake I looked at these directories and I can assure
you that both docs\ps and docs\pdf were fully populated -- well,
certainly more fully than dying on the third document would produce.

Still, with c_readme.ps and cguide.ps available, I tried wmake again
in docs\pdf and got ... nothing. So something is definitely wrong.

DOSBox is churning through the docs under Windows 8.1. After c_readme
and cguide, it has produced cguideq, clib, clibqnx, clr, and is now on
cpplib. This will take some time; I will move on to other messages for
now.

Having done so, and seeing the latest change, I then went back to my
Netbook and ran my build file. This picked up the change and rebuild
all docs affected by it, eventually.

Back on the Win 8.1 computer, the PS build finished so I moved to PDF.
But first I poped up P4Win and applied the latest update.

Still nothing, so I checked my setvars; it matches the format of the
one on the Netbook, although the details are different:

set GHOSTSCRIPT=C:\Progra~1\gs\gs9.15\bin;C:\Progra~1\gs\gs9.15\lib

I would think that OW is having problems with the exectables, whose
file names end in "64" or "64c", except that the Netbook, with the
32-bit gs, has the same problem.

This is the output from wmake -d in docs\pdf:

Open Watcom Make Version 1.9
Portions Copyright (c) 1988-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.
Entering file (c:\ow\ow\bat\makeinit)...
c:\ow\ow\bat\makeinit(5): Skipping !ifdef block
c:\ow\ow\bat\makeinit(7): Entering !else block
c:\ow\ow\bat\makeinit(9): Ending a !if nesting
c:\ow\ow\bat\makeinit(13): Entering file
(c:\ow\ow\bld\build\mif\cdirs.mif)...
c:\ow\ow\bld\build\mif\cdirs.mif(1): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cdirs.mif(2): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(4): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(5): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(7): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(8): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(10): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(11): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(13): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(14): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(16): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(17): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(19): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(20): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(22): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(23): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(25): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(26): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(28): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(29): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(31): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(32): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(34): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(35): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(37): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(38): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(40): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(41): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(43): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(44): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(46): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(47): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(49): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(50): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(52): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(53): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(55): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(56): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(58): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(59): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(61): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(62): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(64): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(65): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(67): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(68): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(70): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(71): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(73): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(74): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(76): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(77): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(79): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(80): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(82): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(83): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(85): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(86): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(88): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(89): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(91): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(92): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(94): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(95): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(97): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(98): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(100): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(101): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(103): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(104): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(106): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(107): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(109): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(110): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(112): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(113): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(115): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(116): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(118): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(119): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(121): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(122): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(124): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(125): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(127): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(128): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(130): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(131): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(133): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(134): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(136): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(137): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(139): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(140): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(142): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(143): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(145): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(146): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(148): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(149): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(151): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(152): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(154): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(155): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(157): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(158): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(160): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(161): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(163): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(164): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(166): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(167): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(169): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(170): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(172): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(173): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(175): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(176): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(178): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(179): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(181): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(182): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(184): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(185): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(187): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(188): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(190): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(191): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(193): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(194): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(196): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(197): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(199): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(200): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(202): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(203): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(205): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(206): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(208): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(209): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(211): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(212): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(214): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(215): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(217): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(218): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(220): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(221): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(223): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(224): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(226): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(227): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(229): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(230): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(232): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(233): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(235): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(236): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(238): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(239): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(241): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(242): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(244): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(245): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(247): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(248): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(250): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(251): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(253): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(254): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(256): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(257): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(259): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(260): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(262): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(263): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(265): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(266): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(268): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(269): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(271): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(272): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(274): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(275): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(277): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(278): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(280): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(281): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(283): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(284): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(286): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(287): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(289): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(290): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(292): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(293): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(295): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(296): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(298): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(299): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(301): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(302): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(304): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(305): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(307): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(308): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(310): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(311): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(313): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(314): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(316): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(317): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(319): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(320): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(322): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(323): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(325): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(326): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(328): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(330): Entering !else block
c:\ow\ow\bld\build\mif\cdirs.mif(332): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(334): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(335): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(337): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(338): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(340): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(341): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(343): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(344): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(346): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(347): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(349): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(350): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(352): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(353): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(355): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(356): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(358): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(359): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(361): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(362): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(364): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(365): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(367): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(368): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(370): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(371): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(373): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(374): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(376): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(377): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(379): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(380): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(382): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(383): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(385): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(386): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(388): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(389): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(391): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(392): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(394): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(395): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(397): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(398): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(400): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(401): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(403): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(404): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(406): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(407): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(409): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(410): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(412): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(413): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(415): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(416): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(418): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(419): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(421): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(422): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(424): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(425): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(427): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(428): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(430): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(431): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(433): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(434): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(436): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(437): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(439): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(440): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(442): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(443): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(445): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(446): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(448): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(449): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(451): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(452): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(454): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(455): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(457): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(458): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(460): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(461): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(463): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(464): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(466): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(467): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(469): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(470): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(472): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(473): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(475): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(476): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(478): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(479): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(481): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(482): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(484): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(485): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(487): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(488): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(490): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(491): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(493): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(494): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(496): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(497): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(499): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(500): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(502): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(503): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(505): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(506): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(508): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(509): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(511): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(512): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(514): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(515): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(517): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(518): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(520): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(521): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(523): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(524): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(526): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(527): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(529): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(530): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(532): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(533): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(535): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(536): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(538): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(539): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(541): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(542): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(544): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(545): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(547): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(548): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(550): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(551): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(553): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(554): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(556): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(557): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(559): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(560): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(562): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(563): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(565): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(566): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(568): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(569): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(571): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(572): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(574): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(575): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(577): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(578): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(580): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(581): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(583): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(584): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(586): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(587): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(589): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(590): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(592): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(593): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(595): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(596): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(598): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(599): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(601): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(602): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(604): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(605): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(607): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(608): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(610): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(611): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(613): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(614): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(616): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(617): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(619): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(620): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(622): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(623): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(625): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(626): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(628): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(629): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(631): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(632): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(634): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(635): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(637): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(638): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(640): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(641): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(643): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(644): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(646): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(647): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(649): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(650): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(652): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(653): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(655): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(656): Entering !ifndef block
c:\ow\ow\bld\build\mif\cdirs.mif(658): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(660): Ending a !if nesting
c:\ow\ow\bld\build\mif\cdirs.mif(661): ...Finished file
(c:\ow\ow\bld\build\mif\cdirs.mif)
c:\ow\ow\bat\makeinit(14): Entering file (c:\ow\ow\bat\makecomm)...
c:\ow\ow\bat\makecomm(2): Skipping !ifdef block
c:\ow\ow\bat\makecomm(4): Ending a !if nesting
c:\ow\ow\bat\makecomm(5): Skipping !ifdef block
c:\ow\ow\bat\makecomm(7): Ending a !if nesting
c:\ow\ow\bat\makecomm(8): Skipping !ifdef block
c:\ow\ow\bat\makecomm(10): Ending a !if nesting
c:\ow\ow\bat\makecomm(11): Skipping !ifdef block
c:\ow\ow\bat\makecomm(13): Ending a !if nesting
c:\ow\ow\bat\makecomm(14): Skipping !ifdef block
c:\ow\ow\bat\makecomm(16): Ending a !if nesting
c:\ow\ow\bat\makecomm(19): Skipping !ifdef block
c:\ow\ow\bat\makecomm(21): Entering !else block
c:\ow\ow\bat\makecomm(23): Ending a !if nesting
c:\ow\ow\bat\makecomm(29): Entering !ifndef block
c:\ow\ow\bat\makecomm(32): Ending a !if nesting
c:\ow\ow\bat\makecomm(35): Entering !ifdef block
c:\ow\ow\bat\makecomm(37): Ending a !if nesting
c:\ow\ow\bat\makecomm(39): Entering !ifdef block
c:\ow\ow\bat\makecomm(41): Ending a !if nesting
c:\ow\ow\bat\makecomm(45): Entering !ifndef block
c:\ow\ow\bat\makecomm(64): Skipping !ifdef block
c:\ow\ow\bat\makecomm(66): Ending a !if nesting
c:\ow\ow\bat\makecomm(68): Skipping !ifdef block
c:\ow\ow\bat\makecomm(70): Entering !else block
c:\ow\ow\bat\makecomm(72): Skipping !ifdef block
c:\ow\ow\bat\makecomm(74): Ending a !if nesting
c:\ow\ow\bat\makecomm(75): Ending a !if nesting
c:\ow\ow\bat\makecomm(78): Skipping !ifdef block
c:\ow\ow\bat\makecomm(80): Ending a !if nesting
c:\ow\ow\bat\makecomm(90): Skipping !ifdef block
c:\ow\ow\bat\makecomm(92): Entering !else block
c:\ow\ow\bat\makecomm(94): Ending a !if nesting
c:\ow\ow\bat\makecomm(101): Skipping !ifdef block
c:\ow\ow\bat\makecomm(103): Entering !else block
c:\ow\ow\bat\makecomm(105): Ending a !if nesting
c:\ow\ow\bat\makecomm(110): Skipping !ifdef block
c:\ow\ow\bat\makecomm(112): Entering !else block
c:\ow\ow\bat\makecomm(114): Ending a !if nesting
c:\ow\ow\bat\makecomm(126): Skipping !ifdef block
c:\ow\ow\bat\makecomm(128): Entering !else block
c:\ow\ow\bat\makecomm(130): Ending a !if nesting
c:\ow\ow\bat\makecomm(138): Skipping !ifdef block
c:\ow\ow\bat\makecomm(140): Entering !else block
c:\ow\ow\bat\makecomm(142): Ending a !if nesting
c:\ow\ow\bat\makecomm(244): Skipping !else block
c:\ow\ow\bat\makecomm(263): Skipping !ifdef block
c:\ow\ow\bat\makecomm(265): Ending a !if nesting
c:\ow\ow\bat\makecomm(267): Skipping !ifdef block
c:\ow\ow\bat\makecomm(269): Skipping !else block
c:\ow\ow\bat\makecomm(271): Skipping !ifdef block
c:\ow\ow\bat\makecomm(273): Ending a !if nesting
c:\ow\ow\bat\makecomm(274): Ending a !if nesting
c:\ow\ow\bat\makecomm(277): Skipping !ifdef block
c:\ow\ow\bat\makecomm(279): Ending a !if nesting
c:\ow\ow\bat\makecomm(289): Skipping !ifdef block
c:\ow\ow\bat\makecomm(291): Skipping !else block
c:\ow\ow\bat\makecomm(293): Ending a !if nesting
c:\ow\ow\bat\makecomm(300): Skipping !ifdef block
c:\ow\ow\bat\makecomm(302): Skipping !else block
c:\ow\ow\bat\makecomm(304): Ending a !if nesting
c:\ow\ow\bat\makecomm(309): Skipping !ifdef block
c:\ow\ow\bat\makecomm(311): Skipping !else block
c:\ow\ow\bat\makecomm(313): Ending a !if nesting
c:\ow\ow\bat\makecomm(425): Ending a !if nesting
c:\ow\ow\bat\makecomm(426): ...Finished file (c:\ow\ow\bat\makecomm)
c:\ow\ow\bat\makeinit(15): ...Finished file (c:\ow\ow\bat\makeinit)
Entering file (makefile)...
makefile(5): Entering file (..\mif\master.mif)...
..\mif\master.mif(1): Entering file (..\mif\books.mif)...
..\mif\books.mif(66): Skipping !ifndef block
..\mif\books.mif(68): Entering !else block
..\mif\books.mif(70): Ending a !if nesting
..\mif\books.mif(72): Skipping !ifeq block
..\mif\books.mif(74): Ending a !if nesting
..\mif\books.mif(76): Skipping !ifdef block
..\mif\books.mif(83): Skipping !ifeq block
..\mif\books.mif(90): Skipping !else ifeq block
..\mif\books.mif(94): Skipping !else ifeq block
..\mif\books.mif(104): Skipping !else ifeq block
..\mif\books.mif(112): Skipping !else ifeq block
..\mif\books.mif(121): Skipping !else ifeq block
..\mif\books.mif(130): Skipping !else ifeq block
..\mif\books.mif(139): Skipping !else ifeq block
..\mif\books.mif(148): Skipping !else ifeq block
..\mif\books.mif(156): Skipping !else ifeq block
..\mif\books.mif(164): Skipping !else ifeq block
..\mif\books.mif(172): Skipping !else ifeq block
..\mif\books.mif(180): Skipping !else ifeq block
..\mif\books.mif(189): Skipping !else ifeq block
..\mif\books.mif(198): Skipping !else ifeq block
..\mif\books.mif(205): Skipping !else ifeq block
..\mif\books.mif(212): Skipping !else ifeq block
..\mif\books.mif(220): Skipping !else ifeq block
..\mif\books.mif(227): Skipping !else ifeq block
..\mif\books.mif(235): Skipping !else ifeq block
..\mif\books.mif(242): Skipping !else ifeq block
..\mif\books.mif(250): Skipping !else ifeq block
..\mif\books.mif(258): Skipping !else ifeq block
..\mif\books.mif(266): Skipping !else ifeq block
..\mif\books.mif(275): Skipping !else ifeq block
..\mif\books.mif(284): Skipping !else ifeq block
..\mif\books.mif(293): Skipping !else ifeq block
..\mif\books.mif(301): Skipping !else ifeq block
..\mif\books.mif(309): Skipping !else ifeq block
..\mif\books.mif(316): Skipping !else ifeq block
..\mif\books.mif(325): Skipping !else ifeq block
..\mif\books.mif(334): Skipping !else ifeq block
..\mif\books.mif(343): Skipping !else ifeq block
..\mif\books.mif(352): Skipping !else ifeq block
..\mif\books.mif(360): Skipping !else ifeq block
..\mif\books.mif(370): Skipping !else ifeq block
..\mif\books.mif(378): Skipping !else ifeq block
..\mif\books.mif(386): Skipping !else ifeq block
..\mif\books.mif(395): Skipping !else ifeq block
..\mif\books.mif(403): Skipping !else ifeq block
..\mif\books.mif(411): Skipping !else ifeq block
..\mif\books.mif(419): Skipping !else ifeq block
..\mif\books.mif(427): Skipping !else ifeq block
..\mif\books.mif(435): Skipping !else ifeq block
..\mif\books.mif(443): Skipping !else ifeq block
..\mif\books.mif(451): Skipping !else ifeq block
..\mif\books.mif(459): Skipping !else ifeq block
..\mif\books.mif(468): Skipping !else ifeq block
..\mif\books.mif(475): Skipping !else ifeq block
..\mif\books.mif(484): Skipping !else ifeq block
..\mif\books.mif(493): Skipping !else ifeq block
..\mif\books.mif(504): Skipping !else ifeq block
..\mif\books.mif(515): Skipping !else ifeq block
..\mif\books.mif(524): Skipping !else ifeq block
..\mif\books.mif(533): Skipping !else ifeq block
..\mif\books.mif(541): Skipping !else ifeq block
..\mif\books.mif(550): Skipping !else ifeq block
..\mif\books.mif(560): Skipping !else ifeq block
..\mif\books.mif(569): Skipping !else ifeq block
..\mif\books.mif(577): Skipping !else ifeq block
..\mif\books.mif(584): Skipping !else ifeq block
..\mif\books.mif(591): Skipping !else ifeq block
..\mif\books.mif(601): Skipping !else ifeq block
..\mif\books.mif(611): Skipping !else ifeq block
..\mif\books.mif(619): Skipping !else block
..\mif\books.mif(623): Ending a !if nesting
..\mif\books.mif(625): Ending a !if nesting
..\mif\books.mif(627): Skipping !ifdef block
..\mif\books.mif(629): Ending a !if nesting
..\mif\books.mif(630): ...Finished file (..\mif\books.mif)
..\mif\master.mif(3): Skipping !ifdef block
..\mif\master.mif(8): Entering !else block
..\mif\master.mif(13): Ending a !if nesting
..\mif\master.mif(15): Entering file
(c:\ow\ow\bld\build\mif\cproj.mif)...
c:\ow\ow\bld\build\mif\cproj.mif(1): Entering file
(c:\ow\ow\bld\build\mif\preclude.mif)...
c:\ow\ow\bld\build\mif\preclude.mif(2): ...Finished file
(c:\ow\ow\bld\build\mif\preclude.mif)
c:\ow\ow\bld\build\mif\cproj.mif(3): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cproj.mif(5): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(7): Skipping !ifeq block
c:\ow\ow\bld\build\mif\cproj.mif(9): Skipping !else ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(11): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(17): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(19): Entering !else block
c:\ow\ow\bld\build\mif\cproj.mif(21): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(63): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(65): Skipping !else ifeq block
c:\ow\ow\bld\build\mif\cproj.mif(67): Entering !else block
c:\ow\ow\bld\build\mif\cproj.mif(69): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(71): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(73): Skipping !else ifeq block
c:\ow\ow\bld\build\mif\cproj.mif(75): Entering !else block
c:\ow\ow\bld\build\mif\cproj.mif(77): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(79): Skipping !ifeq block
c:\ow\ow\bld\build\mif\cproj.mif(83): Skipping !else ifeq block
c:\ow\ow\bld\build\mif\cproj.mif(87): Entering !else block
c:\ow\ow\bld\build\mif\cproj.mif(91): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(94): Entering !ifeq block
c:\ow\ow\bld\build\mif\cproj.mif(99): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(101): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(102): Skipping !else block
c:\ow\ow\bld\build\mif\cproj.mif(107): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(109): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(111): Entering !else block
c:\ow\ow\bld\build\mif\cproj.mif(113): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(115): Entering !ifndef block
c:\ow\ow\bld\build\mif\cproj.mif(117): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(119): Entering !else block
c:\ow\ow\bld\build\mif\cproj.mif(121): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(122): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(124): Entering !ifndef block
c:\ow\ow\bld\build\mif\cproj.mif(126): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(143): Entering !ifndef block
c:\ow\ow\bld\build\mif\cproj.mif(145): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(150): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(152): Entering !else block
c:\ow\ow\bld\build\mif\cproj.mif(154): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(155): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(156): Skipping !ifndef block
c:\ow\ow\bld\build\mif\cproj.mif(158): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(159): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(167): Entering !ifndef block
c:\ow\ow\bld\build\mif\cproj.mif(169): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(183): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(184): Skipping !ifeq block
c:\ow\ow\bld\build\mif\cproj.mif(186): Skipping !else block
c:\ow\ow\bld\build\mif\cproj.mif(188): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(189): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(191): Entering !ifndef block
c:\ow\ow\bld\build\mif\cproj.mif(193): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(195): Skipping !ifeq block
c:\ow\ow\bld\build\mif\cproj.mif(201): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(256): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(258): Entering !else block
c:\ow\ow\bld\build\mif\cproj.mif(260): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(284): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(286): Entering !else block
c:\ow\ow\bld\build\mif\cproj.mif(288): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(298): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(300): Entering !else block
c:\ow\ow\bld\build\mif\cproj.mif(302): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(352): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(358): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(359): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(367): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(384): Entering file
(c:\ow\ow\bld\build\mif\incdirs.mif)...
c:\ow\ow\bld\build\mif\incdirs.mif(1): Skipping !ifdef block
c:\ow\ow\bld\build\mif\incdirs.mif(2): Skipping !ifdef block
c:\ow\ow\bld\build\mif\incdirs.mif(25): Skipping !ifdef block
c:\ow\ow\bld\build\mif\incdirs.mif(27): Skipping !else block
c:\ow\ow\bld\build\mif\incdirs.mif(29): Ending a !if nesting
c:\ow\ow\bld\build\mif\incdirs.mif(31): Skipping !else block
c:\ow\ow\bld\build\mif\incdirs.mif(54): Skipping !ifdef block
c:\ow\ow\bld\build\mif\incdirs.mif(56): Skipping !else block
c:\ow\ow\bld\build\mif\incdirs.mif(58): Ending a !if nesting
c:\ow\ow\bld\build\mif\incdirs.mif(60): Ending a !if nesting
c:\ow\ow\bld\build\mif\incdirs.mif(61): Entering !else block
c:\ow\ow\bld\build\mif\incdirs.mif(62): Skipping !ifdef block
c:\ow\ow\bld\build\mif\incdirs.mif(84): Skipping !ifdef block
c:\ow\ow\bld\build\mif\incdirs.mif(86): Skipping !else block
c:\ow\ow\bld\build\mif\incdirs.mif(88): Ending a !if nesting
c:\ow\ow\bld\build\mif\incdirs.mif(90): Entering !else block
c:\ow\ow\bld\build\mif\incdirs.mif(112): Skipping !ifdef block
c:\ow\ow\bld\build\mif\incdirs.mif(114): Entering !else block
c:\ow\ow\bld\build\mif\incdirs.mif(116): Ending a !if nesting
c:\ow\ow\bld\build\mif\incdirs.mif(118): Ending a !if nesting
c:\ow\ow\bld\build\mif\incdirs.mif(119): Ending a !if nesting
c:\ow\ow\bld\build\mif\incdirs.mif(120): ...Finished file
(c:\ow\ow\bld\build\mif\incdirs.mif)
c:\ow\ow\bld\build\mif\cproj.mif(387): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(389): Entering !else block
c:\ow\ow\bld\build\mif\cproj.mif(391): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(421): Skipping !ifdef block
c:\ow\ow\bld\build\mif\cproj.mif(423): Entering !else block
c:\ow\ow\bld\build\mif\cproj.mif(425): Ending a !if nesting
c:\ow\ow\bld\build\mif\cproj.mif(430): Entering file
(c:\ow\ow\bld\build\mif\bhost.mif)...
c:\ow\ow\bld\build\mif\bhost.mif(2): Skipping !ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(10): Skipping !else ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(17): Skipping !else ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(25): Entering !else ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(33): Skipping !else ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(34): Skipping !ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(36): Skipping !else ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(38): Skipping !else block
c:\ow\ow\bld\build\mif\bhost.mif(40): Ending a !if nesting
c:\ow\ow\bld\build\mif\bhost.mif(41): Skipping !ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(43): Skipping !else block
c:\ow\ow\bld\build\mif\bhost.mif(45): Ending a !if nesting
c:\ow\ow\bld\build\mif\bhost.mif(51): Skipping !else ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(59): Skipping !else block
c:\ow\ow\bld\build\mif\bhost.mif(61): Ending a !if nesting
c:\ow\ow\bld\build\mif\bhost.mif(63): Skipping !ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(65): Entering !else block
c:\ow\ow\bld\build\mif\bhost.mif(67): Ending a !if nesting
c:\ow\ow\bld\build\mif\bhost.mif(69): Skipping !ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(71): Skipping !else ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(73): Skipping !else ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(75): Entering !else block
c:\ow\ow\bld\build\mif\bhost.mif(77): Ending a !if nesting
c:\ow\ow\bld\build\mif\bhost.mif(83): Skipping !ifeq block
c:\ow\ow\bld\build\mif\bhost.mif(85): Skipping !else ifeq block
c:\ow\ow\bld\build\mif\bhost.mif(87): Skipping !else ifeq block
c:\ow\ow\bld\build\mif\bhost.mif(89): Entering !else block
c:\ow\ow\bld\build\mif\bhost.mif(91): Ending a !if nesting
c:\ow\ow\bld\build\mif\bhost.mif(98): Skipping !ifdef block
c:\ow\ow\bld\build\mif\bhost.mif(100): Entering !else block
c:\ow\ow\bld\build\mif\bhost.mif(102): Ending a !if nesting
c:\ow\ow\bld\build\mif\bhost.mif(104): ...Finished file
(c:\ow\ow\bld\build\mif\bhost.mif)
c:\ow\ow\bld\build\mif\cproj.mif(431): Entering file
(c:\ow\ow\bld\build\local\local.mif)...
c:\ow\ow\bld\build\local\local.mif(32): Skipping !ifdef block
c:\ow\ow\bld\build\local\local.mif(35): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(38): Skipping !ifdef block
c:\ow\ow\bld\build\local\local.mif(40): Entering !else block
c:\ow\ow\bld\build\local\local.mif(42): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(44): Entering !ifndef block
c:\ow\ow\bld\build\local\local.mif(47): Skipping !ifeq block
c:\ow\ow\bld\build\local\local.mif(49): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(50): Skipping !ifeq block
c:\ow\ow\bld\build\local\local.mif(52): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(53): Skipping !ifdef block
c:\ow\ow\bld\build\local\local.mif(56): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(58): Skipping !ifeq block
c:\ow\ow\bld\build\local\local.mif(61): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(63): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(65): Entering !ifdef block
c:\ow\ow\bld\build\local\local.mif(78): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(80): Skipping !ifeq block
c:\ow\ow\bld\build\local\local.mif(82): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(83): Skipping !ifeq block
c:\ow\ow\bld\build\local\local.mif(85): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(88): Skipping !ifdef block
c:\ow\ow\bld\build\local\local.mif(90): Entering !else block
c:\ow\ow\bld\build\local\local.mif(92): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(96): Skipping !ifdef block
c:\ow\ow\bld\build\local\local.mif(101): Skipping !ifdef block
c:\ow\ow\bld\build\local\local.mif(149): Skipping !else ifeq block
c:\ow\ow\bld\build\local\local.mif(154): Skipping !ifdef block
c:\ow\ow\bld\build\local\local.mif(159): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(184): Skipping !ifdef block
c:\ow\ow\bld\build\local\local.mif(187): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(194): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(196): Ending a !if nesting
c:\ow\ow\bld\build\local\local.mif(198): ...Finished file
(c:\ow\ow\bld\build\local\local.mif)
c:\ow\ow\bld\build\mif\cproj.mif(432): ...Finished file
(c:\ow\ow\bld\build\mif\cproj.mif)
..\mif\master.mif(23): Entering file (..\mif\clean.mif)...
..\mif\clean.mif(50): Skipping !ifeq block
..\mif\clean.mif(53): Ending a !if nesting
..\mif\clean.mif(54): ...Finished file (..\mif\clean.mif)
..\mif\master.mif(24): ...Finished file (..\mif\master.mif)
makefile(6): ...Finished file (makefile)
Updating (all):has Single-colon explicit rule
Updating (c_readme):has Single-colon explicit rule
(c_readme) is up to date
Updating (cguide):has Single-colon explicit rule
(cguide) is up to date
Updating (cguideq):has Single-colon explicit rule
(cguideq) is up to date
Updating (clib):has Single-colon explicit rule
(clib) is up to date
Updating (clibqnx):has Single-colon explicit rule
(clibqnx) is up to date
Updating (clr):has Single-colon explicit rule
(clr) is up to date
Updating (cpplib):has Single-colon explicit rule
(cpplib) is up to date
Updating (cw):has Single-colon explicit rule
(cw) is up to date
Updating (f77graph):has Single-colon explicit rule
(f77graph) is up to date
Updating (f77lr):has Single-colon explicit rule
(f77lr) is up to date
Updating (f_readme):has Single-colon explicit rule
(f_readme) is up to date
Updating (fpguide):has Single-colon explicit rule
(fpguide) is up to date
Updating (ftools):has Single-colon explicit rule
(ftools) is up to date
Updating (fuguide):has Single-colon explicit rule
(fuguide) is up to date
Updating (guitool):has Single-colon explicit rule
(guitool) is up to date
Updating (lguide):has Single-colon explicit rule
(lguide) is up to date
Updating (pguide):has Single-colon explicit rule
(pguide) is up to date
Updating (tools):has Single-colon explicit rule
(tools) is up to date
Updating (trap):has Single-colon explicit rule
(trap) is up to date
Updating (vi):has Single-colon explicit rule
(vi) is up to date
Updating (wd):has Single-colon explicit rule
(wd) is up to date
Updating (wgmlref):has Single-colon explicit rule
(wgmlref) is up to date
Updating (wipfc):has Single-colon explicit rule
(wipfc) is up to date
Oldest Possible (all)
Oldest Possible (all)
Youngest Possible (c_readme)
Oldest Possible (all)
Youngest Possible (cguide)
Oldest Possible (all)
Youngest Possible (cguideq)
Oldest Possible (all)
Youngest Possible (clib)
Oldest Possible (all)
Youngest Possible (clibqnx)
Oldest Possible (all)
Youngest Possible (clr)
Oldest Possible (all)
Youngest Possible (cpplib)
Oldest Possible (all)
Youngest Possible (cw)
Oldest Possible (all)
Youngest Possible (f77graph)
Oldest Possible (all)
Youngest Possible (f77lr)
Oldest Possible (all)
Youngest Possible (f_readme)
Oldest Possible (all)
Youngest Possible (fpguide)
Oldest Possible (all)
Youngest Possible (ftools)
Oldest Possible (all)
Youngest Possible (fuguide)
Oldest Possible (all)
Youngest Possible (guitool)
Oldest Possible (all)
Youngest Possible (lguide)
Oldest Possible (all)
Youngest Possible (pguide)
Oldest Possible (all)
Youngest Possible (tools)
Oldest Possible (all)
Youngest Possible (trap)
Oldest Possible (all)
Youngest Possible (vi)
Oldest Possible (all)
Youngest Possible (wd)
Oldest Possible (all)
Youngest Possible (wgmlref)
Oldest Possible (all)
Youngest Possible (wipfc)
(all) is up to date

I, of course, cannot make head nor tails of it

That was captured with ">", but omitted many lines of the screen
output. Trying again using "2>", I captured those lines:

c:\ow\ow\bld\build\mif\cproj.mif(7): Warning(W27): Macro (%BUILDMODE)
is undefined
c:\ow\ow\bld\build\mif\cproj.mif(17): Warning(W27): Macro (proj_name)
is undefined
c:\ow\ow\bld\build\mif\cproj.mif(63): Warning(W27): Macro (proj_name)
is undefined
c:\ow\ow\bld\build\mif\cproj.mif(71): Warning(W27): Macro (proj_name)
is undefined
c:\ow\ow\bld\build\mif\cproj.mif(73): Warning(W27): Macro (%CODEVIEW)
is undefined
c:\ow\ow\bld\build\mif\cproj.mif(99): Warning(W27): Macro (proj_name)
is undefined
c:\ow\ow\bld\build\mif\cproj.mif(115): Warning(W27): Macro (proj_name)
is undefined
c:\ow\ow\bld\build\mif\cproj.mif(168): Warning(W27): Macro (host_cpu)
is undefined
c:\ow\ow\bld\build\mif\cproj.mif(168): Warning(W27): Macro
(model_switch_) is undefined
c:\ow\ow\bld\build\mif\cproj.mif(183): Warning(W27): Macro (proj_name)
is undefined
c:\ow\ow\bld\build\mif\cproj.mif(256): Warning(W27): Macro (host_os)
is undefined
c:\ow\ow\bld\build\mif\cproj.mif(256): Warning(W27): Macro (host_cpu)
is undefined
c:\ow\ow\bld\build\mif\cproj.mif(284): Warning(W27): Macro (host_os)
is undefined
c:\ow\ow\bld\build\mif\cproj.mif(284): Warning(W27): Macro (host_cpu)
is undefined
c:\ow\ow\bld\build\mif\incdirs.mif(112): Warning(W27): Macro (host_os)
is undefined
c:\ow\ow\bld\build\mif\bhost.mif(83): Warning(W27): Macro (host_cpu)
is undefined
c:\ow\ow\bld\build\mif\bhost.mif(85): Warning(W27): Macro (host_cpu)
is undefined
c:\ow\ow\bld\build\mif\bhost.mif(87): Warning(W27): Macro (host_cpu)
is undefined
c:\ow\ow\bld\build\local\local.mif(2): Warning(W27): Macro (host_cpu)
is undefined
c:\ow\ow\bld\build\local\local.mif(2): Warning(W27): Macro (cl_) is
undefined
c:\ow\ow\bld\build\local\local.mif(3): Warning(W27): Macro (host_cpu)
is undefined
c:\ow\ow\bld\build\local\local.mif(3): Warning(W27): Macro (cc_) is
undefined
c:\ow\ow\bld\build\local\local.mif(4): Warning(W27): Macro (host_cpu)
is undefined
c:\ow\ow\bld\build\local\local.mif(4): Warning(W27): Macro (cpp_) is
undefined
c:\ow\ow\bld\build\local\local.mif(5): Warning(W27): Macro (host_cpu)
is undefined
c:\ow\ow\bld\build\local\local.mif(5): Warning(W27): Macro (linker_)
is undefined
c:\ow\ow\bld\build\local\local.mif(6): Warning(W27): Macro (host_cpu)
is undefined
c:\ow\ow\bld\build\local\local.mif(6): Warning(W27): Macro
(librarian_) is undefined
c:\ow\ow\bld\build\local\local.mif(7): Warning(W27): Macro (host_cpu)
is undefined
c:\ow\ow\bld\build\local\local.mif(7): Warning(W27): Macro (as_) is
undefined
c:\ow\ow\bld\build\local\local.mif(11): Warning(W27): Macro
(bld_extra_incs) is undefined
c:\ow\ow\bld\build\local\local.mif(13): Warning(W27): Macro
(bld_extra_incs) is undefined
c:\ow\ow\bld\build\local\local.mif(32): Warning(W27): Macro
(proj_name) is undefined
c:\ow\ow\bld\build\local\local.mif(47): Warning(W27): Macro (host_cpu)
is undefined
c:\ow\ow\bld\build\local\local.mif(50): Warning(W27): Macro
(proj_name) is undefined
c:\ow\ow\bld\build\local\local.mif(50): Warning(W27): Macro (_rtdll)
is undefined
c:\ow\ow\bld\build\local\local.mif(80): Warning(W27): Macro
(proj_name) is undefined
c:\ow\ow\bld\build\local\local.mif(83): Warning(W27): Macro (host_cpu)
is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined
Warning(W27): Macro (header) is undefined

Now here I can make an observation: that is a /lot/ of undefined
macros. Could this be a clue? Probably not: doing this in docs\ps
produces what looks like very much the same output. Of course, that is
with a docs\ps in which /all of the files are up-to-date/ as opposed
to a docs\pdf which contains only the makefile, and so in which /none/
of the docs even exist, which I would think would make them as /not/
up-to-date as possible. I should note that examining docs\ps shows
that they were, in fact, built today.

The makefile in docs\pdf contains:

#pmake: build docs pdf

dotarget=pdf

!include ../mif/master.mif

which looks like it might work.
--
"Nature must be explained in
her own terms through
the experience of our senses."
Hans-Bernhard Bröker
2014-12-05 22:55:41 UTC
Permalink
Raw Message
Post by Paul S. Person
And reverse (this part of) the change! The "=" was indeed dropped by
the latest set of changes, and that was clearly not a good idea.
Just to clear this up for good: no, it's not dropping the "=" that
caused the problem. The problem was caused by switching from the "set"
command to the "path" command. The make rule in question relied on the
special treatment of the "set" command performed by wmake, which "path"
doesn't get.

A case could be made that wmake's special treatment of "set" should be
extended to "path", because both do effectively the same thing. But
that would be a new feature, not a fix of any bug.
Frank Beythien
2014-12-06 18:03:14 UTC
Permalink
Raw Message
Hallo Paul,
try to delete docs\pdf\c_readme.pdf before. I get similar msgs.
Cu
Frank
Frank Beythien
2014-12-06 18:13:57 UTC
Permalink
Raw Message
Post by Frank Beythien
Hallo Paul,
try to delete docs\pdf\c_readme.pdf before. I get similar msgs.
The answer was a bit short, it will build only c_readme.pdf.
The wmake log showed all pdfs already up to date, so nothing was built...

CU
Frank
Paul S. Person
2014-12-06 19:08:11 UTC
Permalink
Raw Message
Post by Frank Beythien
Post by Frank Beythien
Hallo Paul,
try to delete docs\pdf\c_readme.pdf before. I get similar msgs.
The answer was a bit short, it will build only c_readme.pdf.
The wmake log showed all pdfs already up to date, so nothing was built...
I'm not clear what you are saying here.

Are you saying that the problem I am seeing does not exist in OS/2? Or
that it does?

The last successfully-build PDF here was guitool.pdf on 4/14/2012.
Comparing version 42 (2011/09/07) with the current version of
onebook.mif, I find these changes:

< .EXTENSIONS: .pdf .ps
< .ps : ../ps
-> .EXTENSIONS: .pdf

< $(hbook).ps : $(book_objs) $(proj_objs)
< cd ../ps
< wmake hbook=$(hbook)
< cd ../pdf

$(hbook).pdf : $(hbook).ps
@set OWDOCS_OLD_PATH=$(%PATH)
< @set PATH=$(%GHOSTSCRIPT)
< -$(hc_pdf) -r600 $[@ $(hbook).pdf
-> !ifdef __UNIX__
-> @set PATH=$(%GHOSTSCRIPTPATH):$(%PATH)
-> !else
-> @set PATH=$(%GHOSTSCRIPTPATH);$(%PATH)
-> !endif
-> !$(hc_pdf) -r600 $[@ $(hbook).pdf
@set PATH=$(%OWDOCS_OLD_PATH)
-> @set OWDOCS_OLD_PATH=

Note that "set PATH" was used in the older version, so that is not the
issue here. I have no idea if any of these changes would cause wmake
to behave as it does here -- to do nothing whatsoever, even in a
directory containing only the makefile. For all I know, the problem
lies elsewhere, and this section is never reached.

I do do a build every week, but I only do a full build when that is
necessary (the partial build fails). I am not running a build server
-- no checks are made as to correctness or completeness beyond a
visual scan of the logfile. It is possible that I have not been able
to build PDFs for quite some time.

It would be a relief to see an "ps2pdf12" line, if only to see a
"cannot find gswin32c.exe" message (on Win 8.1; my Netbook has a
gswin32c.exe, right where it should be) immediately afterwards. /That/
I can (probably) fix by defining a GRC environment variable to
"gswin64c.exe". But I can't even tell if its needed until wmake at
least attempts to convert the files.
--
"Nature must be explained in
her own terms through
the experience of our senses."
Frank Beythien
2014-12-06 19:58:58 UTC
Permalink
Raw Message
Post by Paul S. Person
Post by Frank Beythien
Post by Frank Beythien
Hallo Paul,
try to delete docs\pdf\c_readme.pdf before. I get similar msgs.
The answer was a bit short, it will build only c_readme.pdf.
The wmake log showed all pdfs already up to date, so nothing was built...
I'm not clear what you are saying here.
Your wmake log showed all pdfs were already built, so I suggested to
delete c_readme.pdf to force wmake to rebuild it.
Post by Paul S. Person
Are you saying that the problem I am seeing does not exist in OS/2? Or
that it does?
I have a different version of ghostscript (8.71) of course, but you
should see the ps2pdf12.cmd call.
Do you have the environment var GHOSTSCRIPTPATH set?
That is the expected name.

[...]
Post by Paul S. Person
Note that "set PATH" was used in the older version, so that is not the
issue here. I have no idea if any of these changes would cause wmake
to behave as it does here -- to do nothing whatsoever, even in a
directory containing only the makefile. For all I know, the problem
lies elsewhere, and this section is never reached.
I find it easiest to delete a pdf (I chose c_readme.pdf) and then do a
builder rel2. (from the ow dir, takes about 15 minutes to reach the
docbuild). That was how I tested the change after pdfcreation was broken.
Post by Paul S. Person
It would be a relief to see an "ps2pdf12" line, if only to see a
"cannot find gswin32c.exe" message (on Win 8.1; my Netbook has a
gswin32c.exe, right where it should be) immediately afterwards. /That/
I can (probably) fix by defining a GRC environment variable to
"gswin64c.exe". But I can't even tell if its needed until wmake at
least attempts to convert the files.
In the os2 version the calling structure for the *.bat Windows files,
which are there, too, is more complicate than on OS/2. So I don't know
why you are having problems.

CU
Frank
Paul S. Person
2014-12-07 18:51:35 UTC
Permalink
Raw Message
Post by Frank Beythien
Post by Paul S. Person
Post by Frank Beythien
Post by Frank Beythien
Hallo Paul,
try to delete docs\pdf\c_readme.pdf before. I get similar msgs.
The answer was a bit short, it will build only c_readme.pdf.
The wmake log showed all pdfs already up to date, so nothing was built...
I'm not clear what you are saying here.
Your wmake log showed all pdfs were already built, so I suggested to
delete c_readme.pdf to force wmake to rebuild it.
Post by Paul S. Person
Are you saying that the problem I am seeing does not exist in OS/2? Or
that it does?
I have a different version of ghostscript (8.71) of course, but you
should see the ps2pdf12.cmd call.
It looked to me like you were saying c_readme.pdf was being built on
your computer. I was trying to see if the problem was
Windows-specific.
Post by Frank Beythien
Do you have the environment var GHOSTSCRIPTPATH set?
That is the expected name.
I do now.

Now it (under Windows 8.1) it runs wgml for some reason and then tries
to run ps2pdf12, which Windows "cannot find", most likely because PATH
doesn't have the GHOSTSCRIPTPATH in it.

Of course, what I am seeing may be the the older path, the one that is
saved and restored by wmake after it thinks ps2pdf12 has worked.

It may be running wgml because there have been so many updates to
onebook.mif that it sees it as "changed" and so rebuilds the PS file.
--
"Nature must be explained in
her own terms through
the experience of our senses."
Frank Beythien
2014-12-07 19:09:11 UTC
Permalink
Raw Message
Post by Paul S. Person
Post by Frank Beythien
Your wmake log showed all pdfs were already built, so I suggested to
delete c_readme.pdf to force wmake to rebuild it.
Post by Paul S. Person
Are you saying that the problem I am seeing does not exist in OS/2? Or
that it does?
I have a different version of ghostscript (8.71) of course, but you
should see the ps2pdf12.cmd call.
It looked to me like you were saying c_readme.pdf was being built on
your computer. I was trying to see if the problem was
Windows-specific.
If I delete c_readme.pdf (or others) it (they) get rebuilt. And as I'm
lazy I call build.cmd with DOC_BUILD=1 in myvars.cmd
Post by Paul S. Person
Now it (under Windows 8.1) it runs wgml for some reason and then tries
to run ps2pdf12, which Windows "cannot find", most likely because PATH
doesn't have the GHOSTSCRIPTPATH in it.
Perhaps you should add the ghostscript dirs to your 'normal' path, then
it doesn't matter if GHOSTSCRIPTPATH is prepended to the path or to the
dosbox one.
Post by Paul S. Person
Of course, what I am seeing may be the the older path, the one that is
saved and restored by wmake after it thinks ps2pdf12 has worked.
It may be running wgml because there have been so many updates to
onebook.mif that it sees it as "changed" and so rebuilds the PS file.
I don't see onebook.mif in a dependency rule.

Perhaps refreshing your perforce local copy will repair some files...
Paul S. Person
2014-12-08 17:14:05 UTC
Permalink
Raw Message
Post by Frank Beythien
Post by Paul S. Person
Post by Frank Beythien
Your wmake log showed all pdfs were already built, so I suggested to
delete c_readme.pdf to force wmake to rebuild it.
Post by Paul S. Person
Are you saying that the problem I am seeing does not exist in OS/2? Or
that it does?
I have a different version of ghostscript (8.71) of course, but you
should see the ps2pdf12.cmd call.
It looked to me like you were saying c_readme.pdf was being built on
your computer. I was trying to see if the problem was
Windows-specific.
If I delete c_readme.pdf (or others) it (they) get rebuilt. And as I'm
lazy I call build.cmd with DOC_BUILD=1 in myvars.cmd
Right. You were saying that it worked for you. This is useful
information. Or, rather, was at the time.
Post by Frank Beythien
Post by Paul S. Person
Now it (under Windows 8.1) it runs wgml for some reason and then tries
to run ps2pdf12, which Windows "cannot find", most likely because PATH
doesn't have the GHOSTSCRIPTPATH in it.
Perhaps you should add the ghostscript dirs to your 'normal' path, then
it doesn't matter if GHOSTSCRIPTPATH is prepended to the path or to the
dosbox one.
Did that and it works. Even better, the ps2pdf system that comes with
the 64-bit version of gs defaults to gswin64c. It is documented to
default to gswin32c, but that would be true of the 32-bit version.

But is it really "no problem" if the makefiles don't work as intended?
Post by Frank Beythien
Post by Paul S. Person
Of course, what I am seeing may be the the older path, the one that is
saved and restored by wmake after it thinks ps2pdf12 has worked.
It may be running wgml because there have been so many updates to
onebook.mif that it sees it as "changed" and so rebuilds the PS file.
I don't see onebook.mif in a dependency rule.
Perhaps refreshing your perforce local copy will repair some files...
There must be a GML=>PS rule /somewhere/, or the PS files couldn't be
built.

The file "onefile.mif", after five or six updates in the recent past,
is certainly up-to-date.

I noted before that the line

< .ps : ../ps

was removed at some point. Could the PS files be being built because
they cannot be found but a rule to create them can be?

And maybe they should be: perhaps the page size is different, if not
here in the USA, then in Europe. We have three paper sizes (IIRC);
surely that was done (many GML files contain sections dependent on
page size) with the intent that they be used.
--
"Nature must be explained in
her own terms through
the experience of our senses."
Frank Beythien
2014-12-08 21:18:40 UTC
Permalink
Raw Message
Post by Paul S. Person
Did that and it works. Even better, the ps2pdf system that comes with
the 64-bit version of gs defaults to gswin64c. It is documented to
default to gswin32c, but that would be true of the 32-bit version.
But is it really "no problem" if the makefiles don't work as intended?
The mif files for the docs are not very simple. Something to study in
the docs/mif subdirectory!
The books.mif constructs the needed information and the dotarget macro
sets the target for the books to build.
Post by Paul S. Person
There must be a GML=>PS rule /somewhere/, or the PS files couldn't be
built.
This is done via dotarget=ps in docs/ps/makefile.
Hans-Bernhard Bröker
2014-12-08 22:01:42 UTC
Permalink
Raw Message
Post by Paul S. Person
There must be a GML=>PS rule /somewhere/, or the PS files couldn't be
built.
Of course there is. It's in onebook.mif, line 338 ff:

$(hbook).ps : $(book_objs) $(book_objs_ps) $(proj_objs)
Post by Paul S. Person
I noted before that the line
< .ps : ../ps
was removed at some point. Could the PS files be being built because
they cannot be found but a rule to create them can be?
Yes. That removed line was wmake's version of a VPATH search setting.
It tells wmake that a rule .ps.pdf can find its ps input file in
directory ../ps

The removal of that part of the older mechanics mean that docs/pdf now
gets its own copy of each .ps file built, which is then transformed into
a pdf. The earlier version would have tried to use the .ps files in
../ps directly.
Hans-Bernhard Bröker
2014-12-06 21:06:11 UTC
Permalink
Raw Message
Post by Paul S. Person
The last successfully-build PDF here was guitool.pdf on 4/14/2012.
Comparing version 42 (2011/09/07) with the current version of
...
That one may well be the culprit for why it stopped working back in
2012. This changed the environment variable used to find GS from
GHOSTSCRIPT to GHOSTSCRIPTPATH. The P4 versions of setvars.* were
changed accordingly. But they still point to a version 7.04, which I'll
assume none of uses any more. And setvars.* won't be used as-is anyway.
You'll have your own, local version (myvars.cmd / myvars.bat). And the
owconfig.* scripts that build those don't put a definition of
GHOSTSCRIPT* in there.
Post by Paul S. Person
I have no idea if any of these changes would cause wmake
to behave as it does here -- to do nothing whatsoever, even in a
directory containing only the makefile.
It will, if you didn't update your personal build environment to define
GHOSTSCRIPTPATH, because of this segment in onebook.mif, line 105:

!ifdef %GHOSTSCRIPTPATH
dep_pdf = $(hbook).pdf
!endif

I only changed my local environment today, and it did make the difference.

And in case you wonder how it can make a difference whether dep_pdf is
defined or not, given this name doesn't appear anywhere else: it is
used, but in a somwhat hard-to-see fashion. See line 122:

!ifdef dep_$(dotarget)

$(dotarget) is pdf here. So the above expands to a check whether dep_pdf
is defined.
Paul S. Person
2014-12-07 19:15:23 UTC
Permalink
Raw Message
On Sat, 06 Dec 2014 22:06:11 +0100, Hans-Bernhard Bröker
<***@physik.rwth-aachen.de> wrote:

<I could say something about the mentality that thinks it makes sense
to change GHOSTSCRIPT to GHOSTSCRIPTPATH in the makefile but not in
the setvars sample script, but I will restrain myself.>
Post by Hans-Bernhard Bröker
It will, if you didn't update your personal build environment to define
!ifdef %GHOSTSCRIPTPATH
dep_pdf = $(hbook).pdf
!endif
I only changed my local environment today, and it did make the difference.
On my 32-bit Netbook running Windows 7, it worked.

On my 64-bit Windows 8.1 computer, it did not: the system could not
file ps2pdf12. The PATH did, indeed, lack the GHOSTSCRIPTPATH
information, although I suppose wmake might have restored the older
path first.

Adding the content of GHOSTSCRIPTPATH to my system PATH worked just
fine -- better than "just fine": it appears that the ps2pdf system for
64-bit GhostScript calls gswin64c by default instead of the documented
gswin32c, so the GRC environment variable is not needed here any more
than it is with the 32-bit version.

The problem, then, is clearly that the path is not being set up
correctly under 64-bit Windows. wmake was invoking wgml (presumably,
onebook.mif had changed since the last test and so was out-of-date).
This didn't prevent ps2pdf12 from working on the 32-bit Netbook, but
may or may not have on the 64-bit Win 8.1 computer.

Could the wmake processing invoking DOSBox somehow be affecting the
path used with ps2pdf12 on 64-bit systems?

There would seem to be no need to alter the PATH for DOSBox, given
that OWDOSBOX points to the executable and can find its own default
conf file so the Windows system path is not needed; presumably, one of
the "-c" commands runs a file that sets up the DOSBox system path, but
the two appear to be independent of each other.

So, I take it that some/most/a lot of us have not been building
updated PDF files for ... what, more than two years?
--
"Nature must be explained in
her own terms through
the experience of our senses."
Hans-Bernhard Bröker
2014-12-07 20:06:57 UTC
Permalink
Raw Message
Post by Paul S. Person
On Sat, 06 Dec 2014 22:06:11 +0100, Hans-Bernhard Bröker
On my 64-bit Windows 8.1 computer, it did not: the system could not
file ps2pdf12. The PATH did, indeed, lack the GHOSTSCRIPTPATH
information, although I suppose wmake might have restored the older
path first.
You won't see the $(%GHOSTSCRIPTPATH) as part of the $(%PATH) after the
fact ... that stuff with OWDOCS_OLD_PATH means the ghostscript
directories are only added to the PATH for the duration of the ps2pdf12
command itself. So if you want to check what happened, it may be
necessary to add the check right between those lines:

!ifdef __UNIX__
@set PATH=$(%GHOSTSCRIPTPATH):$(%PATH)
!else
@set PATH=$(%GHOSTSCRIPTPATH);$(%PATH)
!endif
@echo $(%PATH) > check.txt
!$(hc_pdf) -r600 $[@ $(hbook).pdf
@set PATH=$(%OWDOCS_OLD_PATH)

One possibility that might cause this to break on 64-bit Windows would
be that nonsense about "Program Files (x86)" vs. "Program Files", where
Windows makes 32-bit programs believe one is the other.
Post by Paul S. Person
Could the wmake processing invoking DOSBox somehow be affecting the
path used with ps2pdf12 on 64-bit systems?
I don't think so. Those are two entirely separate processing steps.
One creates a .ps file, the other translates it to PDF.
Paul S. Person
2014-12-08 18:56:28 UTC
Permalink
Raw Message
On Sun, 07 Dec 2014 21:06:57 +0100, Hans-Bernhard Bröker
Post by Hans-Bernhard Bröker
Post by Paul S. Person
On Sat, 06 Dec 2014 22:06:11 +0100, Hans-Bernhard Bröker
On my 64-bit Windows 8.1 computer, it did not: the system could not
file ps2pdf12. The PATH did, indeed, lack the GHOSTSCRIPTPATH
information, although I suppose wmake might have restored the older
path first.
You won't see the $(%GHOSTSCRIPTPATH) as part of the $(%PATH) after the
fact ... that stuff with OWDOCS_OLD_PATH means the ghostscript
directories are only added to the PATH for the duration of the ps2pdf12
command itself. So if you want to check what happened, it may be
!ifdef __UNIX__
@set PATH=$(%GHOSTSCRIPTPATH):$(%PATH)
!else
@set PATH=$(%GHOSTSCRIPTPATH);$(%PATH)
!endif
@echo $(%PATH) > check.txt
@set PATH=$(%OWDOCS_OLD_PATH)
The fact that ps2pdf12 is /not/ found unless I add the GHOSTSCRIPTPATH
to the actual Windows PATH (in the Environment Variables box) is, for
me, quite sufficient to show that our build system is /not/ prepending
it to the path on 64-bit Windows. Only the reason remains unknown.

However, as I have found the workaround, it may not be worth pursuing.
Post by Hans-Bernhard Bröker
One possibility that might cause this to break on 64-bit Windows would
be that nonsense about "Program Files (x86)" vs. "Program Files", where
Windows makes 32-bit programs believe one is the other.
I'm not sure what you are referring to.

The small number of 64-bit programs I have installed all ended up in
"Program Files".

/Most/ 32-bit programs install in "Program Files (x86)" without demur.
The only one that hasn't, so far, is the "Help Workshop" that I
restored from my XP backup and reapplied because a newer version
doesn't appear to be available online. This is so old that is is quite
possible that it is hard-wired to go into "Program Files" --
particularly since, being written by Microsoft, it cannot be expected
to comply with Microsoft's rules.

Note: The description of the current version is so focused on their
newer help system (I actually had to install an update to be able to
display the OW NT help files on Windows 8.1) that I took it for
granted that it would not include the compilers for the earlier
formats.

Be that as it may, after I installed the legacy file, I tried to
install the latest version -- and was told that "a newer version of
the HTMLHelp compiler is already installed". And, sure enough, the
Help Workshop includes all the Windows help compilers I need for the
OW docs.
Post by Hans-Bernhard Bröker
Post by Paul S. Person
Could the wmake processing invoking DOSBox somehow be affecting the
path used with ps2pdf12 on 64-bit systems?
I don't think so. Those are two entirely separate processing steps.
One creates a .ps file, the other translates it to PDF.
I wouldn't think so either, but /something/ is.

Here's a really nasty thought: could the behavior of

SET PATH =

have /changed/ with either Windows 8.1 (note that, in Windows 7 on a
32-bit computer ps2pdf12 is found and runs just fine) or 64-bit
versions of Windows? It doesn't seem to have (cmnvars clearly has no
problems with it, but that is not a makefile) at the command line, but
could whatever wmake is using have changed? That also seems unlikely
-- but would certainly explain the problem.

Something very odd just occurred:

After noticing that neither docs\html nor docs\htmlhelp were populated
by "builder rel2" (although all the others were and the files were
copied), I consulted setvars.bat and added the Help Workshop directory
(in 8.3 form) to the Windows system path.

"builder rel2" then produced, in docs\htmlhelp, both the html and
htmlhelp versions. But docs\html was still unpopulated.

When I did "wmake" in docs\html, however, it was populated were
produced. Because of the time this takes, I haven't yet tested whether
yet another "builder rel2" will copy the files in docs\html anywhere.
I'm not even sure it is intended to do so; the PS files, after all,
are surely not copied into rel2, whether from docs\ps or docs\pdf.

Any ideas why "builder rel2" would /not/ build the docs in docs\html
when wmake can and does do so?
--
"Nature must be explained in
her own terms through
the experience of our senses."
Hans-Bernhard Bröker
2014-12-08 23:16:19 UTC
Permalink
Raw Message
Post by Paul S. Person
The fact that ps2pdf12 is /not/ found unless I add the GHOSTSCRIPTPATH
to the actual Windows PATH (in the Environment Variables box) is, for
me, quite sufficient to show that our build system is /not/ prepending
it to the path on 64-bit Windows.
And I believe I've just explained why that fails: wmake is a 32-bit
program itself, so it may well be that it can only see, and modify, the
PATH used by 32-bit programs.
Post by Paul S. Person
Post by Hans-Bernhard Bröker
One possibility that might cause this to break on 64-bit Windows would
be that nonsense about "Program Files (x86)" vs. "Program Files", where
Windows makes 32-bit programs believe one is the other.
/Most/ 32-bit programs install in "Program Files (x86)" without demur.
The reason for this is that, as far as 32-bit programs are concerned,
"Program Files (x86)" _is_ the official version of "Program Files". Most
of the relevant system environment variables and "magic links",
including environment variable %ProgramFiles% and some registry key
values, automatically change their values as you switch from 64-bit land
to 32-bit land (or vice versa). A 32-bit Program trying to look at
"c:\windows\system32" will be shown "c:\Windows\SysWOW64" instead. And
a 32-bit Installer asking the system for the proper location of
"%ProgramFiles%" will be pointed to "c:\Program Files (x86)" instead of
"c:\Program Files"
Post by Paul S. Person
SET PATH =
have /changed/ with either Windows 8.1 (note that, in Windows 7 on a
32-bit computer ps2pdf12 is found and runs just fine) or 64-bit
versions of Windows?
It may well have changed for wmake running on 64-bit computers. Note
that this particular "set path" has to be performed not by the Windows
shell itself, but rather by _wmake_, to have the desired effect. I.e.
wmake has to intercept this command and make it change its own
environment (that's why the change to "path" broke this). Then wmake
hast to export its own environment to the shell that executes the
ps2pdf12 command line. Maybe the path is just too long, or it's in the
wrong realm (64 vs. 32-bit land).
Post by Paul S. Person
"builder rel2" then produced, in docs\htmlhelp, both the html and
htmlhelp versions. But docs\html was still unpopulated.
No surprise there: this makefile explicitly excludes itself from the
build. See the "pmake" line at the top.
Post by Paul S. Person
When I did "wmake" in docs\html, however, it was populated were
produced.
Again no surprise. That's precisely the difference between builder
(-->pmake) and wmake: builder reads all makefiles in a subtree and runs
those that contain the pertinent flag ("build", "os_nt", ...) whereas
wmake builds from exactly one makefile.
Paul S. Person
2014-12-09 01:58:02 UTC
Permalink
Raw Message
On Tue, 09 Dec 2014 00:16:19 +0100, Hans-Bernhard Bröker
Post by Hans-Bernhard Bröker
Post by Paul S. Person
The fact that ps2pdf12 is /not/ found unless I add the GHOSTSCRIPTPATH
to the actual Windows PATH (in the Environment Variables box) is, for
me, quite sufficient to show that our build system is /not/ prepending
it to the path on 64-bit Windows.
And I believe I've just explained why that fails: wmake is a 32-bit
program itself, so it may well be that it can only see, and modify, the
PATH used by 32-bit programs.
I don't think I got the point before, but I do now.

That /almost/ makes sense -- that is, I can see why it may make sense
to Microsoft.

I suppose a 64-bit cmd could be running a 32-bit wmake in a separate
session that does not appear separate (just as a 32-bit cmd can run a
16-bit wgml in a separate session that does not appear separate) that
cannot change the environment in the the 64-bit session.

<snip further 64-bit clarification>
Post by Hans-Bernhard Bröker
Post by Paul S. Person
"builder rel2" then produced, in docs\htmlhelp, both the html and
htmlhelp versions. But docs\html was still unpopulated.
No surprise there: this makefile explicitly excludes itself from the
build. See the "pmake" line at the top.
Yes. This afternoon I took a look and, sure enough, that was done.

Any idea why? I mean, wouldn't it be, in some sense, more consistent
with the rest of the build system to use an evironment variable to
determine if it is to be built or not?

Still, I think I now know how to do a complete build of OW, despite
the best efforts of the build system to prevent it. I think I can
defer further testing until next weekend, and so focus much more on
recreating wgml.
--
"Nature must be explained in
her own terms through
the experience of our senses."
Hans-Bernhard Bröker
2014-12-09 22:11:14 UTC
Permalink
Raw Message
Post by Paul S. Person
On Tue, 09 Dec 2014 00:16:19 +0100, Hans-Bernhard Bröker
Post by Hans-Bernhard Bröker
Post by Paul S. Person
"builder rel2" then produced, in docs\htmlhelp, both the html and
htmlhelp versions. But docs\html was still unpopulated.
No surprise there: this makefile explicitly excludes itself from the
build. See the "pmake" line at the top.
Yes. This afternoon I took a look and, sure enough, that was done.
Any idea why? I mean, wouldn't it be, in some sense, more consistent
with the rest of the build system to use an evironment variable to
determine if it is to be built or not?
Not really. I understand a pmake nobuild flag in a makefile as: "This
might be useful for some people in some special cases, but no regular
"builder build" should waste time on it". This mechanism is what keeps,
e.g. experimental PPC code generators and the old QNX stuff from bogging
down the regular build process.
Paul S. Person
2014-12-10 17:53:49 UTC
Permalink
Raw Message
On Tue, 09 Dec 2014 23:11:14 +0100, Hans-Bernhard Bröker
Post by Hans-Bernhard Bröker
Post by Paul S. Person
On Tue, 09 Dec 2014 00:16:19 +0100, Hans-Bernhard Bröker
Post by Hans-Bernhard Bröker
Post by Paul S. Person
"builder rel2" then produced, in docs\htmlhelp, both the html and
htmlhelp versions. But docs\html was still unpopulated.
No surprise there: this makefile explicitly excludes itself from the
build. See the "pmake" line at the top.
Yes. This afternoon I took a look and, sure enough, that was done.
Any idea why? I mean, wouldn't it be, in some sense, more consistent
with the rest of the build system to use an evironment variable to
determine if it is to be built or not?
Not really. I understand a pmake nobuild flag in a makefile as: "This
might be useful for some people in some special cases, but no regular
"builder build" should waste time on it". This mechanism is what keeps,
e.g. experimental PPC code generators and the old QNX stuff from bogging
down the regular build process.
If we hypothesize that the reason is that HTMLHelp, not HTML, is what
is used in the distribution, then we still have a problem: for it is
PDF, not PS, that is used in the distribution, and yet the PS files
are built twice, once in their own directory and once in the PDF
directory.

Which highlights the second problem: not building HTML files in the
HTML directory saves no time at all, as it would be perfectly possible
to build them there and then use them to build the HTMLHelp files. All
that happens here is that the /place/ they are built changes. Unlike
the case with the PS files, which are built twice.

Note that is is no "build" line. That is, if it is possible,
something like

#pmake: nobuild docs os_nt html
#pmake: build make_html

dotarget=html

!include ../mif/master.mif

instead of the current

#pmake: nobuild docs os_nt html

dotarget=html

!include ../mif/master.mif

might be expected to allow those who want to build the HTML files in
the HTML directory to do so.

OTOH, it could be argued that the HTML /are/ built and so /are/
available. But in that case, why have a docs\html (or a docs\ps)
directory at all?

Still, I don't suppose it matters much. It just looks ... sloppy.
--
"Nature must be explained in
her own terms through
the experience of our senses."
Hans-Bernhard Bröker
2014-12-10 19:37:25 UTC
Permalink
Raw Message
Post by Paul S. Person
If we hypothesize that the reason is that HTMLHelp, not HTML, is what
is used in the distribution, then we still have a problem: for it is
PDF, not PS, that is used in the distribution, and yet the PS files
are built twice, once in their own directory and once in the PDF
directory.
No, they're not (usually) built twice, because ps/makefile is marked
"nobuild", just like html/makefile. So it's only built if you
explicitly ask for it to be.
Post by Paul S. Person
Note that is is no "build" line. That is, if it is possible,
something like
#pmake: nobuild docs os_nt html
#pmake: build make_html
It's not. Only one pmake line per makefile, sorry.
Paul S. Person
2014-12-11 17:28:15 UTC
Permalink
Raw Message
On Wed, 10 Dec 2014 20:37:25 +0100, Hans-Bernhard Bröker
Post by Hans-Bernhard Bröker
Post by Paul S. Person
If we hypothesize that the reason is that HTMLHelp, not HTML, is what
is used in the distribution, then we still have a problem: for it is
PDF, not PS, that is used in the distribution, and yet the PS files
are built twice, once in their own directory and once in the PDF
directory.
No, they're not (usually) built twice, because ps/makefile is marked
"nobuild", just like html/makefile. So it's only built if you
explicitly ask for it to be.
So it is.

I thought that they were built ... but perhaps I was using wmake.

So why weren't the html & ps directories just removed?

I suppose it doesn't much matter, its just that there seems to be a
/lot/ of unused stuff in docs..
Post by Hans-Bernhard Bröker
Post by Paul S. Person
Note that is is no "build" line. That is, if it is possible,
something like
#pmake: nobuild docs os_nt html
#pmake: build make_html
It's not. Only one pmake line per makefile, sorry.
Sounds like a design flaw.

Or would something like

#pmake: nobuild docs os_nt html build make_html

work?
--
"Nature must be explained in
her own terms through
the experience of our senses."
Paul S. Person
2014-12-07 19:24:20 UTC
Permalink
Raw Message
On Sat, 06 Dec 2014 22:06:11 +0100, Hans-Bernhard Bröker
Post by Hans-Bernhard Bröker
That one may well be the culprit for why it stopped working back in
2012. This changed the environment variable used to find GS from
GHOSTSCRIPT to GHOSTSCRIPTPATH. The P4 versions of setvars.* were
changed accordingly. But they still point to a version 7.04, which I'll
assume none of uses any more. And setvars.* won't be used as-is anyway.
You'll have your own, local version (myvars.cmd / myvars.bat). And the
owconfig.* scripts that build those don't put a definition of
GHOSTSCRIPT* in there.
I misread this in my first reply, and thought the change had /not/
been made in setvars. I am glad I did not express myself fully at the
top of the post. I apologize for any and all confusion.
--
"Nature must be explained in
her own terms through
the experience of our senses."
Hans-Bernhard Bröker
2014-12-04 20:50:00 UTC
Permalink
Raw Message
Post by Paul S. Person
SET PATH displays the path.
SET PATH <whatever> displays the path and ignores <whatever>
Those are correct for NT (and OS/2?) cmd.exe. In the good old
command.com those are syntax errors.
Post by Paul S. Person
SET PATH=<whatever> sets the path
SET PATH= clears the path
PATH, when used by itself, works exactly the same way.
No, it doesn't.

path <whatever> <<< _sets_ the path.
path ; <<< clears it.
path=<whatever> <<< used to be a syntax error.
Frank Beythien
2014-12-04 21:15:42 UTC
Permalink
Raw Message
Post by Hans-Bernhard Bröker
Post by Paul S. Person
SET PATH displays the path.
Yes

All following examples are with eComstation 2.2 Beta II

0[C:\] The zero is the returncode of the previous command
Post by Hans-Bernhard Bröker
Post by Paul S. Person
SET PATH <whatever> displays the path and ignores <whatever>
No, and even blanks within the name are allowed...

0[C:\]set PATH xxx
PATH XXX=(null)

0[C:\]set path xxx=5 <<< variable name with blanks

0[C:\]set path xxx <<< is set
PATH XXX=5
Post by Hans-Bernhard Bröker
Those are correct for NT (and OS/2?) cmd.exe. In the good old
command.com those are syntax errors.
Post by Paul S. Person
SET PATH=<whatever> sets the path
SET PATH= clears the path
PATH, when used by itself, works exactly the same way.
No, it doesn't.
path <whatever> <<< _sets_ the path.
path ; <<< clears it.
path=<whatever> <<< used to be a syntax error.
0[C:\]path xx

0[C:\]path
PATH=xx

0[C:\]path ;

0[C:\]path
PATH=

0[C:\]path=xx <<< no syntax error

0[C:\]path
PATH=xx
Frank Beythien
2014-12-05 09:20:23 UTC
Permalink
Raw Message
Change 37569 uses again the "set path" syntax for the sake of OS/2 and
perhaps other systems where the ghostscriptpath is added dynamically to
the path for building PDF documents.
Jiri Malak
2014-12-05 09:43:38 UTC
Permalink
Raw Message
Frank,

Thanks for reverting back my wrong change and sorry for any troubles.

Jiri
Post by Frank Beythien
Post by Hans-Bernhard Bröker
Post by Paul S. Person
SET PATH displays the path.
Yes
All following examples are with eComstation 2.2 Beta II
0[C:\] The zero is the returncode of the previous command
Post by Hans-Bernhard Bröker
Post by Paul S. Person
SET PATH <whatever> displays the path and ignores <whatever>
No, and even blanks within the name are allowed...
0[C:\]set PATH xxx
PATH XXX=(null)
0[C:\]set path xxx=5 <<< variable name with blanks
0[C:\]set path xxx <<< is set
PATH XXX=5
Post by Hans-Bernhard Bröker
Those are correct for NT (and OS/2?) cmd.exe. In the good old
command.com those are syntax errors.
Post by Paul S. Person
SET PATH=<whatever> sets the path
SET PATH= clears the path
PATH, when used by itself, works exactly the same way.
No, it doesn't.
path <whatever> <<< _sets_ the path.
path ; <<< clears it.
path=<whatever> <<< used to be a syntax error.
0[C:\]path xx
0[C:\]path
PATH=xx
0[C:\]path ;
0[C:\]path
PATH=
0[C:\]path=xx <<< no syntax error
0[C:\]path
PATH=xx
Frank Beythien
2014-12-05 09:56:39 UTC
Permalink
Raw Message
Post by Jiri Malak
Frank,
Thanks for reverting back my wrong change and sorry for any troubles.
Jiri
Curious, why did you change it?

Frank
Jiri Malak
2014-12-05 12:25:19 UTC
Permalink
Raw Message
Post by Frank Beythien
Post by Jiri Malak
Frank,
Thanks for reverting back my wrong change and sorry for any troubles.
Jiri
Curious, why did you change it?
Frank
I observed some problems with set PATH=... in some situation, but it looks like wmake process PATH
command incorrectly (pass it to sub-shell).
It should be fixed but now no problem with this due to it is not used anywhere.

Jiri
Paul S. Person
2014-12-05 18:17:08 UTC
Permalink
Raw Message
On Thu, 04 Dec 2014 21:50:00 +0100, Hans-Bernhard Bröker
Post by Hans-Bernhard Bröker
Post by Paul S. Person
SET PATH displays the path.
SET PATH <whatever> displays the path and ignores <whatever>
Those are correct for NT (and OS/2?) cmd.exe. In the good old
command.com those are syntax errors.
Post by Paul S. Person
SET PATH=<whatever> sets the path
SET PATH= clears the path
PATH, when used by itself, works exactly the same way.
No, it doesn't.
path <whatever> <<< _sets_ the path.
path ; <<< clears it.
path=<whatever> <<< used to be a syntax error.
I stand corrected. Thanks.
--
"Nature must be explained in
her own terms through
the experience of our senses."
Loading...