• Successfully compiled Maximus 3.02

    From Mvan Le@3:800/432 to All on Sun Jan 31 00:18:20 2010
    I have successfully compiled all Maximus 3.02 overlayed DOS and Win32 source executables as per "MaximusSourceDoc.doc" on Windows XP using Watcom C/C++ Version 11c and the "h\nt" headers and "lib386\nt" libraries from Version 10.6.


    I am very happy.

    I am now in the process of correcting the build scripts and updating the source
    documentation because it said:

    "copy the legacy Watcom compiler include files into
    c:\dv\s3\comp\wc15\h\nt and copy the old compiler's
    libraries into c:\dv\s3\comp\wc15\lib386\nt."

    when "dv\s3\binnt\setwc11.bat" set WATCOM_LIBS to the wrong location (!) (c:\dv\comp\wc15 instead of c:\dv\s3\comp\wc15). Unfortunately it took me 4 weeks of debugging grief before this single error was spotted. Man, I was severely pissed off.

    In the end, nothing had to be modified except this incorrectly set WATCOM_LIBS environment. There was no need to fix inconsistent declarations, types, defines
    etc. Everything described in "MaximusSourceDoc.doc" would have worked if that WATCOM_LIBS was set correctly. Heh.

    Now I can start reading the SLIB stuff :) Woohoo !

    --- Maximus 3.01
    * Origin: Xaragmata / Adelaide SA telnet://xaragmata.mooo.com (3:800/432)
  • From andrew clarke@3:633/267 to Mvan Le on Sun Jan 31 15:54:30 2010
    On Sun 2010-01-31 00:18, Mvan Le (3:800/432) wrote to All:

    I have successfully compiled all Maximus 3.02 overlayed DOS and
    Win32 source executables as per "MaximusSourceDoc.doc" on Windows
    XP using Watcom C/C++ Version 11c and the "h\nt" headers and
    "lib386\nt" libraries from Version 10.6.

    Does it build with OpenWatcom?

    http://www.openwatcom.org/

    --- timEd/FreeBSD 1.11.b5
    * Origin: Blizzard of Ozz, Melbourne, Victoria, Australia (3:633/267)
  • From Mvan Le@3:800/432 to Andrew Clarke on Mon Feb 1 20:58:08 2010
    On Sun 2010-01-31 00:18, Mvan Le (3:800/432) wrote to All:

    I have successfully compiled all Maximus 3.02 overlayed DOS and
    Win32 source executables as per "MaximusSourceDoc.doc" on Windows
    XP using Watcom C/C++ Version 11c and the "h\nt" headers and
    "lib386\nt" libraries from Version 10.6.

    Does it build with OpenWatcom?

    http://www.openwatcom.org/

    No.

    I have tried with Open Watcom 1.5 and it dies with type mismatches: ============================================================================= ...
    ...
    ...
    wcc /oe1/od/d2 /oals/s/j/zp1 /Fo=WCr\\s\fd2n.obs /ms fd2n.c
    fd2n.c(52): Error! E1071: Type of parameter 2 does not agree with previous definition
    fd2n.c(52): Note! N2003: source conversion type is 'char *'
    fd2n.c(52): Note! N2004: target conversion type is 'void *'
    fd2n.c(52): Note! N2002: 'read' defined in: c:\watcom\H\io.h(183)
    fd2n.c(61): Error! E1071: Type of parameter 2 does not agree with previous definition
    fd2n.c(61): Note! N2003: source conversion type is 'char *'
    fd2n.c(61): Note! N2004: target conversion type is 'void const *'
    fd2n.c(61): Note! N2002: 'write' defined in: c:\watcom\H\io.h(192)
    dmaken.exe: Error code 136, while making 'WCr\\s\fd2n.obs'
    dmaken.exe: Error code 255, while making 'slib'
    *** make dos Compilation error encountered. Terminating build.
    Ended: Mon 01/02/2010 @21:11:54.12 =============================================================================

    I suspect that this is because Open Watcom is more strict on type conversion than previous versions of Watcom. There might be a switch to relax it. Otherwise we'll have to edit the source to make it work.

    Ideally MAXS_302 should compile under Open Watcom so that all DOS, NT, OS/2 and
    Unix targets can be compiled with one compiler. Then we can merge all the source trees.


    --- Maximus 3.01
    * Origin: Xaragmata / Adelaide SA telnet://xaragmata.mooo.com (3:800/432)
  • From Mvan Le@3:800/432 to Mvan Le on Mon Feb 1 20:55:40 2010
    I have successfully compiled all Maximus 3.02 overlayed
    DOS and Win32 source executables as per
    "MaximusSourceDoc.doc" on Windows XP using Watcom C/C++
    Version 11c and the "h\nt" headers and "lib386\nt"
    libraries from Version 10.6.

    Correction:

    I have only managed to successfully compile the /NON-overlayed/ DOS and Win32 executables (ie. with OVERLAY_BUILD=1 commented-out).


    --- Maximus 3.01
    * Origin: Xaragmata / Adelaide SA telnet://xaragmata.mooo.com (3:800/432)
  • From andrew clarke@3:633/267.1 to Mvan Le on Sat Feb 6 06:01:00 2010
    On Mon 2010-02-01 20:58, Mvan Le (3:800/432) wrote to Andrew Clarke:

    wcc /oe1/od/d2 /oals/s/j/zp1 /Fo=WCr\\s\fd2n.obs /ms fd2n.c
    fd2n.c(52): Error! E1071: Type of parameter 2 does not agree with
    previous definition

    I suspect that this is because Open Watcom is more strict on type conversion than previous versions of Watcom. There might be a
    switch to relax it. Otherwise we'll have to edit the source to make
    it work.

    I can't think of a good reason why it shouldn't build with OpenWatcom so you're
    probably right about it just being more strict. But before you start delving into the help files I'd probably try building it with an older version of OpenWatcom. You can download older versions of OpenWatcom from their FTP site.

    ftp://ftp.openwatcom.org/archive/

    And it looks like Watcom 11.0c is there too, which I hadn't noticed before:

    ftp://ftp.openwatcom.org/archive/11.0c/

    So maybe try that first, then try progressively newer versions until it breaks.
    :-)

    Ideally MAXS_302 should compile under Open Watcom so that all DOS,
    NT, OS/2 and Unix targets can be compiled with one compiler. Then
    we can merge all the source trees.

    The Linux build will still need GCC as OpenWatcom's Linux support is still in early development. Plus OW itself won't actually run under Linux.

    I don't think OW supports *BSD.

    Using OW for the DOS, NT & OS/2 builds is sensible though.

    --- timEd/Linux 1.11.b5
    * Origin: Blizzard of Ozz, Melbourne, Victoria, Australia (3:633/267.1)
  • From andrew clarke@3:633/267.1 to Mvan Le on Sat Feb 6 06:33:48 2010
    On Sun 2010-01-31 00:18, Mvan Le (3:800/432) wrote to All:

    I have successfully compiled all Maximus 3.02 overlayed DOS and
    Win32 source executables as per "MaximusSourceDoc.doc" on Windows
    XP using Watcom C/C++ Version 11c and the "h\nt" headers and
    "lib386\nt" libraries from Version 10.6.

    MaximusSourceDoc.doc on the CVS tree should really be corrected. Although it should be converted to text first. CVS and binary (.doc) formats don't really work well when you're trying to use 'diff'...

    Why are the NT headers and libaries from 10.6 required? Is it because 11.0C doesn't supply them? I didn't notice you were using 11.0C when I read your message the first time so you can obviously disregard the link to 11.0C in my previous message because you obviously have it. Maybe it'll help other people though.

    What happens if you use the NT headers/libs from OpenWatcom 1.0 instead? Assuming they exist. An academic question if we can use OW 1.0 to build the entire thing.

    It's long overdue, but it'd be great if we could get to a point where you could
    just do a CVS checkout and start the build
    process without needing to extract max-3.03-etc.tar.gz beforehand. Actually the DOS/OS2/Win builds probably don't need that, just the Linux version. Strange that it's a requirement though, because there's no source code in there. In fact it seems to build fine if you just do a cvs checkout, then "mkdir maximus/install_tree".

    Anyway, it's probably a good idea if you were a member of the Maximus project on SourceForge, then you could do CVS commits yourself. Of course you should avoid doing any major CVS commits until the source has stabilsied, ie. it builds successfully for all targets.

    You can see the list of members here:

    https://sourceforge.net/project/memberlist.php?group_id=63593

    I think you'd just need to contact one of the admins and ask politely to be added. :-)

    --- timEd/Linux 1.11.b5
    * Origin: Blizzard of Ozz, Melbourne, Victoria, Australia (3:633/267.1)
  • From Mvan Le@1:343/41 to Andrew Clarke on Fri Feb 5 16:30:34 2010
    I suspect that this is because Open Watcom is more strict on type conversion than previous versions of Watcom. There might be a
    switch to relax it. Otherwise we'll have to edit the source to make
    it work.

    I can't think of a good reason why it shouldn't build
    with OpenWatcom so you're probably right about it just
    being more strict. But before you start delving into

    I've read some of the Change Log from 11c -> 1.5 and they mention OW being more
    ANSI compliant. I took a brief look at the OW and WC command line options and couldn't find anything apparent.

    the help files I'd probably try building it with an
    older version of OpenWatcom. You can download older
    versions of OpenWatcom from their FTP site.

    ftp://ftp.openwatcom.org/archive/

    Cool.

    I was starting to wonder whether I could get old OW versions. Their website isn't very intuitive (imo).

    And it looks like Watcom 11.0c is there too, which I
    hadn't noticed before:

    ftp://ftp.openwatcom.org/archive/11.0c/

    That's great. I'm going to get myself a copy; because the one I have came from a dodgy bittorrent. Heh.

    So maybe try that first, then try progressively newer
    versions until it breaks. :-)

    Yeah.

    So far, I could only build "maxn.exe" and "maxnd.exe" (the 32-bit NT executables) that work properly by first building 32-bit SLIB with Watcom 10.6.
    Otherwise it complains about missing definitions. I've tried all sorts of combinations, even exactly replicating all INCLUDE, LIBS, WATCOM environments as they are for WC 11.0c and it still couldn't build dv\s3\comdll. You have to use the INCLUDE, LIBS, WATCOM >>>and<<< WC 11.0c wcc/wcc386.exe's for it to work :/

    The DOS versions built without any problems (with WC 10.6).

    --- Maximus/2 3.01
    * Origin: Top Hat 2 BBS (1:343/41)
  • From Mvan Le@3:800/432 to Andrew Clarke on Sun Feb 7 17:54:14 2010
    MaximusSourceDoc.doc on the CVS tree should really be
    corrected. Although it should be converted to text
    first. CVS and binary (.doc) formats don't really work
    well when you're trying to use 'diff'...

    I've updated "MaximusSourceDoc.doc" for the DOS and NT builds. MS Word 2003 all
    the way baby :)

    I've never used CVS or much diff'ing with text files to appreciate what the issue is. In MS Word you just turn on "Track Changes" :)

    Why are the NT headers and libaries from 10.6 required?
    Is it because 11.0C doesn't supply them? I didn't

    I haven't precisely found an explanation but from all of my trial, error and testing you cannot build overlayed DOS executables without the WC 10.6 headers,
    libs and compiler no matter how you try to arrange your build environment.

    Without overlayed DOS executables, you won't be able to run doors. Being able to run doors is a big part of running a BBS.

    Do doors work in "max-3.03-etc.tar.gz" under Linux ?

    notice you were using 11.0C when I read your message
    the first time so you can obviously disregard the link
    to 11.0C in my previous message because you obviously
    have it. Maybe it'll help other people though.

    I've downloaded WC 11.c from ftp.openwatcom.org/archive. That version is an Upgrade. I've tried; but the Upgrade alone is not enough to compile the source (you need a full install of 11.0 first before upgrading to 11.0c because the 11.0 seems to have a problem addressing memory during the build). 11.0c also doesn't come with the Microsoft SDK, which Maximus needs.

    What happens if you use the NT headers/libs from
    OpenWatcom 1.0 instead? Assuming they exist. An
    academic question if we can use OW 1.0 to build the
    entire thing.

    I haven't tried. But it would be something I'm willing to check out. So far, I've observed that OW 1.5 & 1.8 will not build the Maximus sources due to type conversion problems. Searching Google reveals that the suggested fixes are to redefine / redeclare your sources to be compatible with the target conversion types. This is not a fun (or interesting) exercise.

    It's long overdue, but it'd be great if we could get to
    a point where you could just do a CVS checkout and
    start the build
    process without needing to extract max-3.03-etc.tar.gz
    beforehand. Actually the DOS/OS2/Win builds probably
    don't need that, just the Linux version. Strange that
    it's a requirement though, because there's no source
    code in there. In fact it seems to build fine if you
    just do a cvs checkout, then "mkdir maximus/install_tree".

    To my knowledge, "max-3.03-etc.tar.gz" is the Linux port of "MAXS_302.ZIP". It doesn't support building from multiple hosts with multiple targets.

    I'm fine with that because I get to hog all the DOS and Win32 stuff when nobody's interested :)

    Anyway, it's probably a good idea if you were a member
    of the Maximus project on SourceForge, then you could
    do CVS commits yourself. Of course you should avoid
    doing any major CVS commits until the source has
    stabilsied, ie. it builds successfully for all targets.

    Merging the MAXS_302 stuff with the current CVS tree is a good idea but could be difficult because v3.03 is specifically for Linux. All the makefiles have been changed. It uses GCC instead of O/WC, GNU Make vs Dmake, and there appears
    to be a big dependency on specific proprietary headers & libs to build the DOS,
    NT and OS/2 targets. From what I can see, these differences cause problems that
    won't be easily resolved until we can get Maximus 100% non-propriety & open source for the other targets. Having one compiler that can do it all eg. Open Watcom would help a lot but apparently OW is not fully ready for this purpose.

    You can see the list of members here:

    https://sourceforge.net/project/memberlist.php?group_id=63593

    I think you'd just need to contact one of the admins
    and ask politely to be added. :-)

    Cool.

    Might as well :)


    --- Maximus 3.01
    * Origin: Xaragmata / Adelaide SA telnet://xaragmata.mooo.com (3:800/432)