www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2015/11/22/13:36:34

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
Message-Id: <201511221836.tAMIa8Lv013405@delorie.com>
Date: Sun, 22 Nov 2015 15:32:54 +0100
From: "Juan Manuel Guerrero (juan DOT guerrero AT gmx DOT de) [via djgpp-announce AT delorie DOT com]" <djgpp-announce AT delorie DOT com>
To: djgpp-announce AT delorie DOT com
Subject: ANNOUNCE: tcp/ip library Watt-32 (version 2.2 dev-rel. 10) compiled
with DJGPP.
Reply-To: djgpp AT delorie DOT com

This is the Watt-32 tcp/ip library compiled with DJGPP.

      Watt-32 is a library for making networked TCP/IP programs in the language
      of C and C++ under DOS and Windows-NT.  Both 16-bit real-mode and 32-bit
      protected-mode is supported.  For DOS, Watt-32 requires a packet-driver
      (PKTDRVR) to access the data-link layer.  Futher information about this
      library can be obtained at:
        <http://www.watt-32.net/>



1.  DJGPP specific changes.
     =======================

     The source code of the library has been modified by applying the modifications
     retrived from the q2dos project available at:
       https://bitbucket.org/neozeed/q2dos/src/6a813a816943/wattcp/?at=master.
     The q2dos project is the Quake II port to MS-DOS, see:
       https://bitbucket.org/neozeed/q2dos/overview
     I have merge those changes into the original library code.  Although I have
     reviewed most of the proposed changes I cannot tell if all changes are usefull
     and if they really works.  After having apllied the q2dos modifications I
     have made my own changes.  As usual the changes are documented in the patch
     files.  You can inspect them in /contrib/watt/djgpp/diffs-q2dos.txt and
     /contrib/watt/djgpp/diffs.txt

     Please note that I no longer support DJGPP 2.03.  I have not intentionally
     broken backward compatibility with 2.03 but also do not really care about it.

     The -gcoff flag has been removed from all Makefiles.  If this is not done
     all binaries produced with this library will abort with SIGSEGV.  This is
     true at least if gcc46N and later is used.

     The dj_err program has been recompiled.  This is necessary to produce an
     up-to-date sys_errlist[] for the different versions of djgpp.

     The test programs stored in /src/tests have not been tested by me.  They
     may be compilable and may work or not.  If they do not work, fix them and
     send me a patch.  To fix them you are alone.

     This source archive (wat3222sr5.zip) has been created combining watt32s-2.2-dev.10.zip
     and small parts from watt32b-2.2-dev.10.zip.  Both have been downloaded
     from:
         <http://www.watt-32.net/>
     This source archive contains the complete content of watt32s-2.2-dev.10.zip
     and the djgpp specific makefiles from the /bin directory of watt32b-2.2-dev.10.zip
     together with ping.c, tiny.c and tcpinfo.c.  This two programs are probably
     the most important ones to make a very first check if the library and the
     network connection really work.  I have not tried to build any of the other
     programs stored in watt32b-2.2-dev.10.zip.  The may work or not.  If you
     need them, you are alone.  If you really want to build them, download
     watt32b-2.2-dev.10.zip and copy the /bin directory into the directory tree
     created by wat3222sr5.zip archive.
     Please, pay attention to NOT replace the DJGPP specific makefiles provided
     by wat3222sr5.zip or the binaries will be build with coff debug format instead
     dwarf2 debug format.  This usually leads to SIGSEGV at run time.

     I have tested this library only on MS-DOS 6.22 using VMware.  I have created
     a NAT network connecting two identical MS-DOS VMWare clones configured by
     DHCP.  Only ping test were made.  For DOS a packet driver is required.
     I have used the one stored in pcntpk.zip.  I do not remember from where
     I have downloaded it, but anyway you need to install the pocket driver that
     matches the network hardware you are using so you are alone here again.
     The wattcp.cfg file used has a single line like this:
       my_ip = dhcp

     Writing a wattcp.cfg that works for your network environment is your task.
     I cannot help you.
     I have _NOT_ tested the library with any windows version.

     The /bin directory contains all configuration files like wattcp.cfg, etc.
     provided by watt32s-2.2-dev.10.zip.  I have not modified them. You must
     adjust them according to your network hardware anyway.  Here you are alone.
     Please, read the original documentation.  I have no major experience
     neither using WATT-32 nor using DJGPP for DOS networking.

     The port has been compiled using djdev205, gcc346b and bnu2251br2.  I have
     used the -march=i386 -mtune=i586 flags in the hope that the library will be
     usefull for the vast mojority of user/developers that do not want to build
     the library by their own.

     Please do __NOT__ mix libraries compiled with different versions of DJGPP.


2:  Installing the binary package.
     ==============================

     Copy the binary distribution into the top DJGPP installation directory and
     unzip it running *ONE* of the following commands:
       unzip32 wat3222br5.zip      or
       djtarx wat3222br5.zip       or
       pkunzip -d wat3222br5.zip

     It will create a /watt directory into the top DJGPP installation directory.
     To use the binaries produced with this library you must set the WATTCP.CFG
     environment variable to point to the directory containing the wattcp.cfg
     file.  E.g.:
       set SET WATTCP.CFG=c:\djgpp\net\watt\bin
     This file must be adjusted according to your network.  To use the headers
     and library in your own projects, you must set the WATT_ROOT environment
     variable to point to directory where the /inc and /lib directories are.
     E.g.:
       set WATT_ROOT=c:\djgpp\net\watt
     Of course, the "c:\djgpp" part of the string must be adjusted to reflect
     the path where you have installed the binaries, headers and library.

     To be able to compile projects that use this library, you must set the
     following gcc environment variables:
       set C_INCLUDE_PATH=c:/djgpp/net/watt/inc
       set LIBRARY_PATH=c:/djgpp/net/watt/lib

     If you have installed and configured everthing correctly you can start
     the tcpinfo program like this:
       redir -eo c:\djgpp\net\watt\bin\tcpinfo.exe > 1.txt
     and inspect its output.  Please note that "c:\djgpp\net\watt\bin" is
     usually not in your %PATH%.
     For my installation I get the following output:
---------  START  ---------
Configuring through DHCP..Reading configuration file `c:\djgpp-2.05\net\watt\bin\wattcp.cfg'
Warning: %WATT_ROOT% not set.
This is okay if you're not planning to program with Watt-32
PKTDRVR Name     : NE2100, version 0.03, API ?, intr 0x60
         Class    : Ethernet, level 2
         Address  : 00:0C:29:C9:36:EA

IP Address       : 192.168.132.132
Network Mask     : 255.255.255.0

Host name        : random-pc.localdomain
Domain name      : localdomain
Nameserver       : 192.168.132.2  Timeout 120s

DHCP             : Enabled and SUCCEEDED
DHCP Server      : 192.168.132.254

Max Seg Size,MSS : 1460 bytes
Max Transmit,MTU : 1500 bytes

TCP timers       : Sock delay 30s, Inactivity 0s, Keep-alive 120s/30s
                  : Open 1000ms, Close 1000ms, RST time 100ms
                  : RTO base 10ms, RTO add 100ms, Retrans 10ms

_tcp_Socket size : 4408 bytes
_udp_Socket size : 1704 bytes

HOSTS file       : <NONE>
SERVICES file    : <NONE>
PROTOCOL file    : <NONE>
NETWORKS file    : <NONE>
ETHERS file      : <NONE>

Version info     : Watt-32 (2.2.10), GNU-C 3.4.6 (Pent), djgpp 2.05, Nov 17 2015
Capabilities     : /BSDsock/BSDfatal/bootp/dhcp/rarp/frag/fsext/loopback/fast-pkt
---------  END  ---------

     For further information about WATT-32 please read the readme and install
     files stored in /net/watt __VERY CAREFULLY__.


3:  Building the binaries from sources.
     ===================================

     To build the library and binaries you must install at least the following
     binary packages:
       gcc346b, bnu2251br2, mak41br2b and sed422br2b.
     I have not tested with any previous versions of these binaries. Especially
     I have not tried any versions previous neither of gcc346 nor of bnu2251r2.
     I have no intentions to support any older versions of the compiler and
     binutils.
     All these packages can be found in the v2gnu directory of ftp.delorie.com
     and any mirror.

     Create a temporary directory. Copy the source package: wat3222sr5.zip
     into the directory and unzip it running ONE of the following commands:
       unzip32 wat3222sr5.zip      or
       djtarx wat3222sr5.zip       or
       pkunzip -d wat3222sr5.zip

     Set the WATT_ROOT environment variable.  It must point to the directory
     where the /src/makefile.all is stored.  E.g.: if the source archive has
     been unziped in z:/tmp, then WATT_ROOT must be set to:
       set WATT_ROOT=z:\tmp\contrib\watt

     cd into /contrib/watt/util and run the command:
       make -f errnos.mak dj_err.exe
     This binary is required by the build process of the library.

     cd into /contrib/watt/src and configure the sources by running the batch
     file:
       configur.bat djgpp
     This will create the required makefile for DJGPP and all other required
     files to compile the library.
     Now you can build the library by running the command:
       make -f djgpp.mak

     After having build the library, you can build the binaries ping.exe and
     tcpinfo.exe.  To this purpose, cd into /contrib/watt/bin and run the
     command:
       make -f djgpp.mak ping.exe tcpinfo.exe

     There is no installation target in the makefiles.  You can create a
     directory where you want to install the library.  Make a /bin, /inc
     and /lib directory.  Copy the *.cfg files from the /contrib/watt/bin
     into the new /bin directory, copy the contents of the /contrib/watt/inc
     directory into the new /inc directory _preserving_ the directory tree.
     Copy libwatt.a from /contrib/watt/lib into the new /lib directory.  Then
     set C_INCLUDE_PATH and LIBRARY_PATH environment variable to point to the
     directory where the library and headers have been installed.
     Also set the WATTCP.CFG environment variable to point to the directory
     where wattcp.cfg has been stored.



     The port has been compiled using djdev205 and consists of two packages that
     can be downloaded from ftp.delorie.com and mirrors as (timestamp 2015-11-17):

      Watt-32(version 2.2 dev-rel. 10) binaries, headers,, library and docs:
      ftp://ftp.delorie.com/pub/djgpp/current/v2tk/wat3222br5.zip

      Watt-32(version 2.2 dev-rel. 10) source:
      ftp://ftp.delorie.com/pub/djgpp/current/v2tk/wat3222sr5.zip



     Send suggestions and bug reports concerning the DJGPP port to
     comp.os.msdos.djgpp or <djgpp AT delorie DOT com>.


Enjoy.

          Guerrero, Juan Manuel <juan DOT guerrero AT gmx DOT de>


P.S.:  this build has been used to create the OpenSSL 1.0.1p port released lately.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019