Mark Berryman wrote:
The GNU way of doing things is specific to GNU and, as far as I can see, GNU has never been concerned with maintaining backwards compatibility.

Most of the configure scripts I have encountered simply attempt to compile a short c/c++ program that contains a statement or two but no include files. If the statement fails, then support must not be present. To me, this approach explains a lot of the really bad coding I've seen in some open source projects.

I worked around this by having GNV specify a /first_include switch that specified a file I had created that set up the necessary environment (.e.g, define _USE_STD_STAT, _SOCKADDR_LEN, __NEW_STARLET, etc. then include all of the headers that should have been included by the configure script's generated programs). This solved the problem for me except for those configure scripts that include ASM statements. I should note in passing that I probably haven't used that many configure scripts.

When I first started using GNV, I tried the /FIRST_INCLUDE hack, and found out that it did not always work because the CC wrapper also will sometimes use it depending on the length of the generated DCL command.

In the current GNV, or with the patches available at ftp.encompasserve.org, the CC wrapper now by default looks for one of two files to add to the /FIRST_INCLUDE list, either gnv$<module>_first or if that is not found, gnv$first_include.h in the same directory it looks for option files. The gnv$ prefix is because configure scripts were using wildcard deletes of the first include and option files.

GNV for 8.2 and later turns on the _USE_STD_STAT, and can turn on the /MAIN=POSIX_EXIT based on an environment variable.

There is still more work to be done of course.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to