Building the source tree in either DOS or Unix is nearly identical.

1) Set up for proper makefile...

	DOS:	copy makefile.dos makefile
		touch depend

	Unix:	ln -s makefile.unx Makefile


2) Edit the config.h file for the features desired...


3) Make it....

	make doeverything


Can't make it any easier!


There are some special notes below for BSD/OS compilation.

-------------------------------------------------------------------------

		Notes for BSD/OS implementation

This is to be regarded as a test implementation - some minor
problems, possibly related to the odd compiler warning or two -
are present.  It is based upon BSD/OS 2.0 with patches; earlier
versions have not been tested.  It is stable i.e. has not crashed
(yet), but still needs to be hammered.

* It is possible that some of my changes are the same as those done
  by Kirk Davis VE6KIK, especially since I viewed his source, but
  I declare that they were developed independently.  I hereby
  acknowledge Kirk for his assistance in getting my port working
  in the first place.

* I'm still not happy with the UUCP locking - needs further work
  wrt UID and GID (and I'm not enthusiastic about a root-owned
  program rampaging around my system - this is my production box)
  - currently it is merely setgid-dialer to access the serial ports.
  Note that UUCP locking is not the same as Linux.  I'll probably
  end up creating a "nos" user or something, so it's firewalled.

* Some changes need to be made to "makefile.unx" - see later.

* I thoroughly recommend the "Electric Fence" malloc debugging
  package by Bruce Perens; it enabled me to find a lingering problem
  with SIGSEGVs, which turned out to be an incorrect line in
  domain.txt (an errant SOA line, to be precise).  As with bugs
  of this nature, it didn't crash right away, but instead clobbered
  something else...  (No, I didn't fix the getline() bug.)

  Be aware that Electric Fence DOES slow down the system, and use
  significantly MORE virtual memory, so it should be used only when
  hunting down problems, not in day-to-day usage.


OK, here is what you have to do to "makefile.unx" to see how I
made the BSD/OS version:


  1) No support for ELF. You need:

     #USEELF = 1
     USEELF =
     #MAKEELF = 1
     MAKEELF =

  2) Static linking (LTYPE = -static) is default, but won't hurt.

  3) You might want to use "gcc2" instead of the default (whichever
     it is).

  4) The "INSTALL" is different; BSD/OS has protection for the serial
     ports.  This needs more work wrt uid/gid, cus I'm paranoid...
     I make it setgid to "dialer" at the moment, and spawn it from my
     own UID; a later mod will have it running under its own UID.  I
     also changed the UUCP directory to have GID "dialer".

     Old: INSTALL= install -c
     New: INSTALL= install -c -g dialer -m 2755

  5) BSD/OS needs IS_LITTLE_ENDIAN, USE_SETSTACK, BSD_RANDOM.

  6) Also SETSTACK= setsp.o

  7) BSD/OS doesn't come with NCURSES - get 1.8.5, until 1.9.x stabilises.
     You also need:

     ICURSES = -I/usr/local/include/ncurses
     LCURSES = -lncurses

  8) Debugging is different:

     DEBUG =  -g
     DBGLIB = # -lefence

  9) You might also want to turn off optimising whilst debugging:

     CFLAGS = $(LTYPE) -DUNIX $(DEBUG) $(PATCHES) $(WARNINGS) $(ICURSES) $(VERS)

 10) Send abuse if this doesn't work.

-- Dave Horsfall  VK2KFU  dave@esi.com.au
   (dave@vk2kfu.ampr.org won't work just yet)
 

