This is just a follow up to this earlier post of mine.  The bug I mentioned in the last paragraph has been accepted and the change to remove (comment out) the unneeded #include has been committed. I have now installed TortoiseSVN and did a checkout of the trunk. Searching the source code, I could find no other references to "agtctl_i.c" so it appears that this file was the only one that "needed" it.

Based on that observation, I've installed CMake and built a tool based on Erich's setbuild.bat that he documented on the Wiki. Because I don't have the v7.1a SDK installed, I didn't need to modify the "include" path.  Creating a build directory, and a sub directory for the "type" of build I wanted to run - I called mine REL32 for a "Release" (not debug) build for 32-bit architecture - I successfully ran both CMake and NMake!  Running "rexx -v" from the \bin sub directory (where the process put the output of the build) correctly reported version 5.0.0 w/ a build date of today!

This is a huge step for me and a long time coming.  I now feel I can explore the ooRexx source code to understand where things are done and, eventually, contribute patches that I know will build correctly.

One other question: the build process produces some warning messages but many of them scroll off the screen.  Is there a way to preserve them in a log file (besides redirecting the NMAKE output which leaves you sitting there wondering if the build is still running!)?

-------- Forwarded Message --------
Subject:        Building ooRexx on Windows
Date:   Tue, 5 Sep 2017 10:27:42 -0400
From:   Gil Barmwater <gbarmwa...@alum.rpi.edu>
To: Open Object Rexx Developer Mailing List <oorexx-devel@lists.sourceforge.net>



It has nagged me for a long time that in order to build ooRexx on
Windows, one needs to also have an old Windows SDK installed. According
to a fairly recent exchange between Erich and Rick, this can be
accomplished by requesting XP(!) support when installing the free Visual
Studio Community edition.  Since I already have VS 2015 installed w/o XP
support, this means either reinstalling or figuring out how to add that
support to my install.  Or, I could find the SDK on the internet and
download it, adding it to my INCLUDE path.  None of these options are
appealing to me.  I keep wondering why we need the file "agtctl_i.c"
which is only found in that old SDK.  I suspected that MS has devised
another way to implement the functionality that this file provides and
that if we rewrote our code, we could eliminate this requirement.  So I
decided to see where this include file is used.

Because I have yet to install an SVN client, finding which of our
modules has this #include took a lot of searching through the the SVN
code repository but I finally found one - events.cpp in the OLE support
folder.  I also did an internet search for "agtctl_i.c" and found
several sites that have that file.  Looking at both files, I was not
able to determine how the include file was being used by events.cpp.  So
I decided to download events.cpp (and events.h which is also needed) and
try to compile it, hoping the error messages might help me understand
the code better.  Of course, without the SDK, I got the missing file
message so I commented out the #include and reran the compiler.  To my
surprise, the compile completed and produced an events.obj! (Because the
makefile I am using doesn't have the compiler switches set to suppress
warnings about deprecated functions, I did get two warnings but they
were unrelated to the #include.)

Not being an expert in C/C++, to me this means that the #include is not
needed since the module compiles to a .obj without it. Perhaps when the
module was first being written, it was needed or it was thought it might
be needed and since the VS of the time had the #include in its SDK,
there was no harm in putting it in. Regardless, it is now imposing an
unnecessary requirement on the ooRexx build process.

I am opening a bug for this and supplying a version of events.cpp which
1) removes the unneeded #include and 2) modifies the function calls that
give rise to the warnings about deprecated fucntions.  What I would
request is that someone do a build with my modified code and test it
against the OLE testcases to ensure they still work correctly.
Secondly, can someone determine if any other files in SVN have an
#include for "agtctl_i.c".

Thank you.

--
Gil Barmwater

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to