liam@cs.qmw.ac.uk (William Roberts) (07/28/90)
I have done enough work on the CAP system to make it work with A?UX 2.0
native support for AppleTalk that I can now compile and run both
lwsrv and aufs. Note that you don't need atis anymore, and that A/UX 2.0
comes supplied with its own equivalent of papif.
What you need is actually fairly small.
You need the following patches, which modify the Configure script,
the top-level Makefile, the lib/cap Makefile.m4 and the lib/cap/whatiswhat
file. This is all harmless and sets you up for the two new files in
the lib/cap directory that do the work of talking to A/UX's own built-in
DDP and NBP implementation.
You will be please to hear that no other changes are required, and that
I didn't fiddle with the existing ab*.c files at all.
I started from the Rutgers CAP distribution (ru-cap) which we fetched
a month or so ago - I did send out some other unrelated Patches at
around that time. If people have problems applying the patches then
I will simply send out the revised files complete, since they too are
not very big.
Happy patching....
William Roberts
liam@cs.qmw.ac.uk
These are the patches to the Rutgers distribution of CAP (ru-cap)
that make things happen and arrange to include the new auxat_*.c
files provided in the shar file.
Patch for Configure (also adds support for Sequent's DYNIX os):
----------------------------------
*** /tmp/,RCSt1a03554 Fri Jul 27 21:03:09 1990
--- Configure Fri Jul 27 15:31:02 1990
***************
*** 1,7 ****
#!/bin/sh
! # $Author: root $ $Date: 90/06/18 12:31:01 $
! # $Header: Configure,v 1.1 90/06/18 12:31:01 root Exp $
! # $Revision: 1.1 $
# CAP configuration shell script. This ain't perfect, but it's a start
# execute with /bin/sh Configure if your system won't run it (ksh is okay
# too)
--- 1,7 ----
#!/bin/sh
! # $Author: root $ $Date: 90/07/27 15:30:31 $
! # $Header: Configure,v 1.3 90/07/27 15:30:31 root Locked $
! # $Revision: 1.3 $
# CAP configuration shell script. This ain't perfect, but it's a start
# execute with /bin/sh Configure if your system won't run it (ksh is okay
# too)
***************
*** 97,103 ****
--- 97,113 ----
"A/UX")
echo "A/UX"
osdefault="aux"
+ if [ `uname -r` -ge 2 ]; then
+ echo "Release 2.0 or greater"
+ echo "defaulting to native AppleTalk"
+ useauxappletalk=1
+ lpd="lpr"
+ else
+ echo "Release 1.1.1 or less"
+ echo "If you have AppleTalk for A/UX, you will need to edit"
+ echo "something to set useauxappletalk=1 to use it"
lpd="lp"
+ fi
break
;;
"HP-UX")
***************
*** 115,120 ****
--- 125,138 ----
esac
fi
fi
+ # Sequent Balance
+ if [ -z "${osdefault}" ]; then
+ echo "Checking for Sequent Balance"
+ if [ -f /dynix ]; then
+ echo "Sequent Balance"
+ osdefault="dynix"
+ fi
+ fi
# Default
if [ -z "${osdefault}" ]; then
echo "Establishing default as BSD"
***************
*** 142,147 ****
--- 160,166 ----
"pyr") valid=1;;
"sunos") valid=1;;
"next") valid=1;;
+ "dynix") valid=1;;
"?"|*)
if [ "${os}" != "?" ]; then
echo "unknown type ${os}, valid are:"
***************
*** 154,159 ****
--- 173,179 ----
echo " pyr - pyramid";
echo " sunos - suns";
echo " next - NeXT/MACH";
+ echo " dynix - Sequent Balance";
;;
esac
done
***************
*** 209,215 ****
echo "#ifndef _TYPES" >> /tmp/cx$$.c
echo "# include <sys/types.h>" >> /tmp/cx$$.c
echo "#endif" >> /tmp/cx$$.c
! ${ccompiler} -c /tmp/cx$$.c > /dev/null 2>/dev/null
rc=$?
if [ $rc -ne 0 ]; then
echo
--- 229,235 ----
echo "#ifndef _TYPES" >> /tmp/cx$$.c
echo "# include <sys/types.h>" >> /tmp/cx$$.c
echo "#endif" >> /tmp/cx$$.c
! ${ccompiler} -c /tmp/cx$$.c > /dev/null
rc=$?
if [ $rc -ne 0 ]; then
echo
***************
*** 222,228 ****
echo "can be made to work by define _TYPES everywhere"
echo "[Hit carriage return to continue]"
read ans
! ${ccompiler} -c -D_TYPES /tmp/cx$$.c > /dev/null 2>/dev/null
rc=$?
if [ $rc -ne 0 ]; then
echo
--- 242,248 ----
echo "can be made to work by define _TYPES everywhere"
echo "[Hit carriage return to continue]"
read ans
! ${ccompiler} -c -D_TYPES /tmp/cx$$.c > /dev/null
rc=$?
if [ $rc -ne 0 ]; then
echo
***************
*** 302,307 ****
--- 322,328 ----
# "pyr" - pyramid (in BSD universe)
# "sunos" - SunOS
# "next" - NeXT/MACH
+ # "dynix" - Sequent Balance
# Warning: hpux, pyr are hardcoded in some of the makefiles (sorry)
# MAJOR CONFIGURATION
***************
*** 315,326 ****
${PCAT} m4.tmp
echo
echo "# GETOPT support"
! echo "ifdef([X_GETOPT],[],[define([needgetopt],[att_getopt.o])])"
echo "# VPRINTF support"
echo "ifdef([X_VPRINTF],[define([usevprintf], 1)],[])"
echo
echo "# Path to cap sources: useful for testing"
echo "define([cwd],[${mydir}])"
echo "# turn on if your system sends packets very quickly (see"
echo "# applications/aufs/INSTALLATION)"
echo "${fastether}"
--- 336,353 ----
${PCAT} m4.tmp
echo
echo "# GETOPT support"
! if [ "${os}" = "dynix" ]; then
! echo "# Dynix provides getopt in -lseq "
! else
! echo "ifdef([X_GETOPT],[],[define([needgetopt],[att_getopt.o])])"
! fi
echo "# VPRINTF support"
echo "ifdef([X_VPRINTF],[define([usevprintf], 1)],[])"
echo
echo "# Path to cap sources: useful for testing"
echo "define([cwd],[${mydir}])"
+ echo "# define([debug],1) # for installing in source directories"
+ echo
echo "# turn on if your system sends packets very quickly (see"
echo "# applications/aufs/INSTALLATION)"
echo "${fastether}"
***************
*** 329,339 ****
echo "# prevent itself from being included twice"
echo "# define _TYPES"
echo "${needselfdef}"
${PCAT} <<\EOT1
# MINOR CONFIGURATION: configure various programs
! #define([columbia],1) # so columbia can do things quickly
! #define([debug],1) # testing things (without disrupting)
# location of include files
define([includedir],[[/usr/include]])
--- 356,370 ----
echo "# prevent itself from being included twice"
echo "# define _TYPES"
echo "${needselfdef}"
+ echo
+ if [ "${useauxappletalk}" = "1" ]; then
+ echo "# can we use A/UX native support for AppleTalk.."
+ echo "define([useauxappletalk],1)"
+ fi
${PCAT} <<\EOT1
# MINOR CONFIGURATION: configure various programs
! # define([columbia],1) # so columbia can do things quickly
# location of include files
define([includedir],[[/usr/include]])
***************
*** 355,370 ****
define([afplib],[[libafp.a]])
define([afpclib],[[libafpc.a]])
# names to load cap libraries with
! define([libcap],[[-lcap]])
define([libafp],[[-lafp]])
define([libafpc],[[-lafpc]])
# any special libraries
define([libspecial],[])
!
# Aufs: see applications/aufs/INSTALLATION
# WARNING: OS DEPENDENT
! #define([smartunixfinderinfo],1)
# valid here are -DNONXLATE, -DFULL_NCS_SUPPORT
# or GGTYPE="gid_t"
--- 386,409 ----
define([afplib],[[libafp.a]])
define([afpclib],[[libafpc.a]])
# names to load cap libraries with
! # NB: when you write YOUR m4-based system like this, make sure that
! # you never ever choose a name (e.g. libcap) which could
! # possibly occur in any of the vriables you use. The debug
! # option turns libcap into $cwd/lib/libcap.a and this causes
! # much horridness, including the test in this definition...
! define([libcap],ifdef([useauxappletalk],[[-lcap -lat]],[[-lcap]]))
define([libafp],[[-lafp]])
define([libafpc],[[-lafpc]])
+
+
# any special libraries
define([libspecial],[])
! # override for Dynix getopt in -lseq
! ifelse(os,[dynix],[define([libspecial],[[-lseq]])])
# Aufs: see applications/aufs/INSTALLATION
# WARNING: OS DEPENDENT
! # define([smartunixfinderinfo],1)
# valid here are -DNONXLATE, -DFULL_NCS_SUPPORT
# or GGTYPE="gid_t"
***************
*** 452,457 ****
--- 491,497 ----
os,[bsd],[Standard BSD],
os,[pyr],[Pyramid in BSD universe],
os,[next],[NeXT/MACH],
+ os,[dynix],[Sequent Balance],
[Unknown]))
define([cflags],ifdef([selfdefinetypes],[-O -D_TYPES],[-O]))
define([bigcflags],ifelse(os,[hpux],[+Nd2000 +Ns2000]))
***************
*** 534,540 ****
define([afplib],[[libafp.a]])
define([afpclib],[[libafpc.a]])
# names to load cap libraries with
! define([libcap],concat(cwd,[[[/lib/libcap.a]]]))
define([libafp],concat(cwd,[[[/lib/libafp.a]]]))
define([libafpc],concat(cwd,[[[/lib/libafpc.a]]]))
define([capprinters],concat([\"],etcdest,[/],[cap.printers],[\"]))
--- 574,586 ----
define([afplib],[[libafp.a]])
define([afpclib],[[libafpc.a]])
# names to load cap libraries with
! # see note above about the stupidity of chosing libcap as the
! # m4 variable name for a string containing the letters libcap...
! # Still, I don't fancy changing all those Makefile.m4 files.
! define([libcap],concat(cwd,[[[/lib/libcap.a]]],
! ifdef([useauxappletalk],[ -lat],[])
! )
! )
define([libafp],concat(cwd,[[[/lib/libafp.a]]]))
define([libafpc],concat(cwd,[[[/lib/libafpc.a]]]))
define([capprinters],concat([\"],etcdest,[/],[cap.printers],[\"]))
***************
*** 554,559 ****
--- 600,606 ----
LFLAGS=lflags()
CC=thecompiler()
LD=theloader()
+ SHELL=/bin/sh
EOT4
exec > /dev/tty
echo "${of} configured"
-------------------------------
Patches for the Makefile (makes it a bit more robust):
-------------------------------
*** /tmp/,RCSt1a03565 Fri Jul 27 21:04:57 1990
--- Makefile Fri Jul 27 18:44:40 1990
***************
*** 20,34 ****
touch libinstall
programs: libinstall
! (cd samples; make)
! (cd contrib; make)
! (cd applications; make)
touch programs
install: libinstall programs
! (cd samples; make install)
! (cd contrib; make install)
! (cd applications; make install)
cap.shar: listtodist
cap.dist shar
--- 20,34 ----
touch libinstall
programs: libinstall
! -(cd samples; make)
! -(cd contrib; make)
! -(cd applications; make)
touch programs
install: libinstall programs
! -(cd samples; make install)
! -(cd contrib; make install)
! -(cd applications; make install)
cap.shar: listtodist
cap.dist shar
-------------------------------------------
Now change to lib/cap and apply the following patches to
the Makefile.m4 and whatiswhat:
-------------------------
*** /tmp/,RCSt1a03580 Fri Jul 27 21:06:57 1990
--- lib/cap/Makefile.m4 Fri Jul 27 17:10:39 1990
***************
*** 1,12 ****
CFLAGS=cflags() caposdefs()
I=includedir()
NBPFLAGS=nbpflags()
! LIBABSRCS=abatp.c abddp.c abmisc.c abnbp.c \
abpap.c abpapc.c abpaps.c abpp.c abqueue.c abasp.c \
! abzip.c abversion.c atalkdbm.c absched.c abkip.c
! LIBABOBJS=abatp.o abddp.o abmisc.o abnbp.o \
abpap.o abpapc.o abpaps.o abpp.o abqueue.o abasp.o \
! abzip.o abversion.o atalkdbm.o absched.o abkip.o
LIBCAP=caplib()
DESTDIR=libdestdir()
--- 1,19 ----
CFLAGS=cflags() caposdefs()
I=includedir()
NBPFLAGS=nbpflags()
!
! AUXATSRCS=auxat_ddp.c auxat_nbp.c
! AUXATOBJS=auxat_ddp.o auxat_nbp.o
!
! KIPSRCS=abddp.c abkip.c abnbp.c atalkdbm.c
! KIPOBJS=abddp.o abkip.o abnbp.o atalkdbm.o
!
! LIBABSRCS=abatp.c abmisc.c abversion.c absched.c \
abpap.c abpapc.c abpaps.c abpp.c abqueue.c abasp.c \
! ifdef([useauxappletalk],[$(AUXATSRCS)],[$(KIPSRCS)])
! LIBABOBJS=abatp.o abmisc.o abversion.o absched.o \
abpap.o abpapc.o abpaps.o abpp.o abqueue.o abasp.o \
! ifdef([useauxappletalk],[$(AUXATOBJS)],[$(KIPOBJS)])
LIBCAP=caplib()
DESTDIR=libdestdir()
***************
*** 15,21 ****
[ar rv $(LIBCAP) $(LIBABOBJS)])
clean:
! -rm ${LIBABOBJS} ${LIBCAP} core *~
install: $(LIBCAP)
ifdef([sysvinstall],[install -f $(DESTDIR)],[install]) $(LIBCAP) $(DESTDIR)
--- 22,28 ----
[ar rv $(LIBCAP) $(LIBABOBJS)])
clean:
! -rm -f ${LIBABOBJS} ${LIBCAP} core *~
install: $(LIBCAP)
ifdef([sysvinstall],[install -f $(DESTDIR)],[install]) $(LIBCAP) $(DESTDIR)
***************
*** 60,62 ****
--- 67,71 ----
abversion.o: abversion.c $I/netat/appletalk.h
absched.o: absched.c $I/netat/appletalk.h $I/netat/compat.h
atalkdbm.o: atalkdbm.c
+
+ # I.O.U for the dependencies in auxat_*.c
---------------------------------------
Because I'm a tidy soul, here is a revised whatiswhat file:
---------------------------------------
*** /tmp/,RCSt1a03591 Fri Jul 27 21:08:15 1990
--- lib/cap/whatiswhat Fri Jul 27 18:47:07 1990
***************
*** 16,18 ****
--- 16,24 ----
atalkdbm.c - Appletalk routing table handler (SUMEX)
[SHOULD BE SPECIFIC TO KIP(UDP) ENCAPSULATION]
abkip.c - Glue to KIP (UDP) encapsulation
+
+ auxat_ddp.c - DDP routines for native A/UX AppleTalk support
+ auxat_nbp.c - NBP routines for native A/UX AppleTalk support
+
+ There should also be auxat_atp.c and auxat_zip.c, but they will have
+ to wait for now...
---------------------------
In addition to these patches (which are all harmless and should be
applied to any version of CAP whether you intend to build it on
A/UX 2.0 or not), there are the two new files auxat_ddp.c and
auxat_nbp.c which replace the KIP functionality.
--
William Roberts ARPA: liam@cs.qmw.ac.uk
Queen Mary & Westfield College UUCP: liam@qmw-cs.UUCP
Mile End Road AppleLink: UK0087
LONDON, E1 4NS, UK Tel: 071-975 5250 (Fax: 081-980 6533)