Patches to CAP for A/UX 2.0 native AppleTalk
William Roberts
liam at cs.qmw.ac.uk
Sat Jul 28 06:30:16 AEST 1990
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 at 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 at cs.qmw.ac.uk
Queen Mary & Westfield College UUCP: liam at qmw-cs.UUCP
Mile End Road AppleLink: UK0087
LONDON, E1 4NS, UK Tel: 071-975 5250 (Fax: 081-980 6533)
More information about the Comp.unix.aux
mailing list