mirror of https://github.com/mabam/CAP.git
1976 lines
59 KiB
Bash
Executable File
1976 lines
59 KiB
Bash
Executable File
#!/bin/sh
|
|
# $Author: djh $ $Date: 1996/09/10 14:11:08 $
|
|
# $Header: /mac/src/cap60/RCS/Configure,v 2.107 1996/09/10 14:11:08 djh Rel djh $
|
|
# $Revision: 2.107 $
|
|
# 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)
|
|
#
|
|
# Usage: Configure [output file name]
|
|
#
|
|
fastether="define([fastether],1) # For papif and samples"
|
|
needselfdef="define([selfdefinetypes],1)"
|
|
# ccompiler="define([thecompiler],[cc])"
|
|
if [ -z "${CC}" ]; then
|
|
ccompiler=cc
|
|
else
|
|
ccompiler=${CC}
|
|
fi
|
|
export ccompiler
|
|
# lpd system "bsd" or sys v "lp"
|
|
lpd="bsd"
|
|
mydir=`pwd`
|
|
PCAT=/bin/cat
|
|
PGREP=grep
|
|
if [ -f /bin/nm ]; then
|
|
PNM=/bin/nm
|
|
else
|
|
if [ -f /usr/ccs/bin/nm ]; then
|
|
PNM=/usr/ccs/bin/nm
|
|
else
|
|
PNM=/usr/bin/nm
|
|
fi
|
|
fi
|
|
# define to sh or /bin/sh if shell scripts can't be "executed" for some reason
|
|
USESH=""
|
|
export PGREP
|
|
os=""
|
|
ossecondary=""
|
|
|
|
echo
|
|
echo "This is the CAP configuration script. It will attempt to help"
|
|
echo "you get the CAP libraries and component programs configured."
|
|
echo
|
|
if [ -f /etc/atalk.local ]; then
|
|
${PGREP} _ /etc/atalk.local > /dev/null
|
|
rc=$?
|
|
if [ $rc -eq 0 ]; then
|
|
echo "WARNING: Your /etc/atalk.local file MAY need to be edited."
|
|
echo "Zone names must now be quoted to include spaces. The use"
|
|
echo "of underscores to denote a space is no longer supported."
|
|
echo
|
|
fi
|
|
fi
|
|
|
|
echo
|
|
echo "MAJOR CONFIGURATION"
|
|
|
|
useatis=1
|
|
# Configure OS
|
|
echo "Checking for Ultrix 4.0, OSF1, or later versions of Ultrix"
|
|
# Ultrix4.0
|
|
if [ -f /bin/uname ]; then
|
|
case "`/bin/uname`" in
|
|
"ULTRIX")
|
|
if [ `/bin/uname -r` -ge 4 ]; then
|
|
osdefault="ultrix40"
|
|
fi
|
|
;;
|
|
"OSF1")
|
|
osdefault="osf1"
|
|
;;
|
|
esac
|
|
fi
|
|
# Ultrix2.0
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for Ultrix 2.0"
|
|
if [ -f /vmb.exe ]; then
|
|
if [ -d /var ]; then
|
|
ossecondary="ultrix22"
|
|
echo "Ultrix 2.2 or later version of Ultrix"
|
|
else
|
|
echo "Ultrix 2.0 or later version of Ultrix"
|
|
fi
|
|
osdefault="ultrix20"
|
|
fi
|
|
fi
|
|
# sunos
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for SunOS/Solaris"
|
|
if [ -f /bin/uname ]; then
|
|
if [ `uname -s` = "SunOS" ]; then
|
|
if [ -f /bin/uname ]; then
|
|
if [ `uname -r` -ge "5.0" ]; then
|
|
echo "Solaris"
|
|
osdefault="solaris"
|
|
else
|
|
echo "SunOS"
|
|
osdefault="sunos"
|
|
fi
|
|
else
|
|
echo "SunOS"
|
|
osdefault="sunos"
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
# Encore Multimax
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for Encore MultiMax"
|
|
if [ -f /Umax.image ]; then
|
|
osdefault="encore"
|
|
fi
|
|
fi
|
|
# IBM RT
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for IBM RT running ACIS 4.2/4.3"
|
|
if [ -f /lib/ropt ]; then
|
|
if [ -d /usr/ibm ]; then
|
|
osdefault="bsd"
|
|
echo "IBM RT with ACIS 4.x"
|
|
ossecondary="acis 4.x"
|
|
if [ -f /bin/pcc ]; then
|
|
echo "I see /bin/pcc - I will use this instead of cc in case"
|
|
echo "you have the MetaWare High C compiler set as default"
|
|
ccompiler="pcc"
|
|
else
|
|
echo "WARNING: the MetaWare High C compiler and CAP are not compatible"
|
|
echo "modify the thecompiler define to point to the portable C compiler"
|
|
echo "if the default happens to be hc"
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
# Pyramid
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for Pyramid"
|
|
if [ -f /bin/pyr ]; then
|
|
/bin/pyr
|
|
rc=$?
|
|
if [ $rc -eq 0 ]; then
|
|
echo "Pyramid"
|
|
osdefault="pyr"
|
|
fi
|
|
fi
|
|
fi
|
|
#Amdahl
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for UTS"
|
|
if [ -f /bin/uts ]; then
|
|
/bin/uts
|
|
rc=$?
|
|
if [ $rc -eq 0 ]; then
|
|
echo "uts"
|
|
osdefault="uts"
|
|
lpd="lp"
|
|
fi
|
|
fi
|
|
fi
|
|
#ICL DRS6000 with DRS/NX 4.0
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for DRS/NX"
|
|
if [ -f /bin/uname ]; then
|
|
if [ `uname -m` = "DRS6000" ]; then
|
|
if [ `uname -s` = "unix" ]; then
|
|
echo "drsnx - ensure /usr/ucb comes before /usr/bin"
|
|
osdefault="drsnx"
|
|
lpd="lp"
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
useauxappletalk=0
|
|
# A/UX, hpux, SCO Xenix System V
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for System V based machines"
|
|
if [ -f /bin/uname ]; then
|
|
case "`uname`" in
|
|
"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
|
|
useatis=0
|
|
lpd="lpr"
|
|
else
|
|
echo "Release 1.1.1 or less"
|
|
lpd="lp"
|
|
fi
|
|
break
|
|
;;
|
|
"HP-UX")
|
|
echo "HP-UX"
|
|
osdefault="hpux"
|
|
lpd="lp"
|
|
break
|
|
;;
|
|
"XENIX")
|
|
echo "SCO Xenix System V"
|
|
osdefault="xenix5"
|
|
lpd="lp"
|
|
break
|
|
;;
|
|
"AIX")
|
|
echo "IBM AIX System V"
|
|
osdefault="aix"
|
|
lpd="lp"
|
|
break
|
|
;;
|
|
"DomainOS")
|
|
osdefault="domainossysv"
|
|
echo "HP/Apollo Domain OS System V"
|
|
echo "Sorry, I do not build under Sys 5.3 environment."
|
|
echo "Try building under BSD 4.3 environment."
|
|
exit
|
|
break
|
|
;;
|
|
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
|
|
# Silicon Graphics
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for Silicon Graphics IRIS/IRIX"
|
|
if [ -f /bin/4d ]; then
|
|
/bin/4d
|
|
rc=$?
|
|
if [ $rc -eq 0 ]; then
|
|
echo "Silicon Graphics IRIS/IRIX"
|
|
osdefault="irix"
|
|
fi
|
|
fi
|
|
fi
|
|
# Sony NEWS
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for Sony NEWS"
|
|
if [ -d /usr/sony/bin ]; then
|
|
echo "Sony NEWS"
|
|
osdefault="newsos"
|
|
fi
|
|
fi
|
|
# Control Data EP/IX V1/V2
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for Control Data EP/IX V1/V2"
|
|
if [ -f /bin/uname ]; then
|
|
if [ "`/bin/uname -v`" = "UMIPS" \
|
|
-o "`/bin/uname -v`" = "RISCos" ]; then
|
|
echo "Control Data EP/IX"
|
|
osdefault="epix"
|
|
echo "Compile using bsd43 environment"
|
|
ccompiler="cc -systype bsd43"
|
|
fi
|
|
fi
|
|
fi
|
|
# 386bsd, FreeBSD 1.n and derivatives
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for 386bsd etc."
|
|
if [ -x /386bsd ]; then
|
|
echo "386BSD and derivatives"
|
|
osdefault="386bsd"
|
|
fi
|
|
fi
|
|
# NetBSD 1.0
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for NetBSD 1.0"
|
|
if [ -x /netbsd ]; then
|
|
echo "NetBSD 1.0"
|
|
osdefault="netbsd"
|
|
fi
|
|
fi
|
|
# FreeBSD 2.0
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for FreeBSD"
|
|
if [ -f /usr/bin/uname ]; then
|
|
if [ "`/usr/bin/uname -s`" = "FreeBSD" ]; then
|
|
echo "FreeBSD"
|
|
osdefault="freebsd"
|
|
fi
|
|
fi
|
|
fi
|
|
# BSDI 1.1
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for BSDI BSD/386 1.1"
|
|
if [ -f /bsd ]; then
|
|
echo "BSDI BSD/386 1.1"
|
|
osdefault="bsdi"
|
|
fi
|
|
fi
|
|
# Linux 1.3.N
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for Linux"
|
|
if [ -f /vmlinuz ]; then
|
|
echo "Linux"
|
|
osdefault="linux"
|
|
fi
|
|
fi
|
|
# HP/Apollo Domain
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for HP/Apollo Domain 10.4"
|
|
if [ -f /lib/clib -a -f /lib/libc ]; then
|
|
if [ "${SYSTYPE}" = "bsd4.3" ]; then
|
|
domainvers=none
|
|
domainvers=`/usr/apollo/bin/bldt | { read ln; read ln; read d1 d2 d3 ver ln; echo $ver; }`
|
|
case "$domainvers" in
|
|
10.0, | 10.0.1, ) domainvers=10.0;;
|
|
10.1, ) domainvers=10.1;;
|
|
10.2, | 10.2.[0-9]*, ) domainvers=10.2;;
|
|
10.3, | 10.3.[0-9]*, ) domainvers=10.3;;
|
|
10.4, | 10.4.[0-9]*, ) domainvers=10.4;;
|
|
esac
|
|
echo "HP/Apollo Domain Version ${domainvers} under BSD 4.3 env."
|
|
osdefault="domainosbsd"
|
|
echo "Read NOTES about //node/path syntax in afpvols"
|
|
if [ "${domainvers}" != "10.4" ]; then
|
|
echo "WARNING: untested under Domain OS other than 10.4"
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
# NeXTstation
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Checking for NeXT."
|
|
if [ -x /NextApps ]; then
|
|
echo "NeXT"
|
|
osdefault="next"
|
|
fi
|
|
fi
|
|
# Default
|
|
if [ -z "${osdefault}" ]; then
|
|
echo "Establishing default as BSD"
|
|
echo "Warning: unable to guess unix variant, setting to bsd standard."
|
|
echo "bsd should be good for the following:"
|
|
echo " IBM-RT (ACIS 4.2,4.3), Ultrix 1.0, Ultrix 1.1, BSD 4.2,"
|
|
echo " and BSD 4.3"
|
|
osdefault="bsd"
|
|
fi
|
|
echo
|
|
valid=0
|
|
echo -n test | ${PGREP} n > /dev/null
|
|
rc=$?
|
|
if [ $rc -ne 0 ]; then
|
|
PROMPT="echo -n"
|
|
elif [ -x /usr/ucb/echo ]; then
|
|
PROMPT="/usr/ucb/echo -n"
|
|
else
|
|
PROMPT="echo"
|
|
fi
|
|
while [ ${valid} -eq 0 ];
|
|
do
|
|
${PROMPT} "Operating System type? (default ${osdefault}, ? for valid items) "
|
|
read os arg1
|
|
if [ -z "${os}" ]; then
|
|
os=${osdefault}
|
|
fi
|
|
case ${os} in
|
|
"osf1") valid=1;;
|
|
"ultrix20") valid=1;;
|
|
"ultrix40") valid=1;;
|
|
"ultrix12") valid=1;;
|
|
"bsd") valid=1;;
|
|
"hpux") valid=1;;
|
|
"aux") valid=1;;
|
|
"xenix5") valid=1;;
|
|
"aix") valid=1;;
|
|
"uts") valid=1;;
|
|
"pyr") valid=1;;
|
|
"sunos") valid=1;;
|
|
"solaris") valid=1;;
|
|
"encore") valid=1;;
|
|
"next") valid=1;;
|
|
"dynix") valid=1;;
|
|
"irix") valid=1;;
|
|
"newsos") valid=1;;
|
|
"drsnx") valid=1;;
|
|
"epix") valid=1;;
|
|
"386bsd") valid=1;;
|
|
"netbsd") valid=1;;
|
|
"freebsd") valid=1;;
|
|
"bsdi") valid=1;;
|
|
"linux") valid=1;;
|
|
"domainosbsd") valid=1;;
|
|
"?"|*)
|
|
if [ "${os}" != "?" ]; then
|
|
echo "unknown type ${os}, valid are:"
|
|
fi
|
|
echo " bsd - try if you aren't sure";
|
|
echo " ultrix12 - Ultrix 1.2";
|
|
echo " ultrix20 - Ultrix 2.0 or later";
|
|
echo " ultrix40 - Ultrix 4.0 or later";
|
|
echo " osf1 - DEC-OSF/1 1.3 or later";
|
|
echo " hpux - HP-UX for series 9000";
|
|
echo " aux - A/UX";
|
|
echo " uts - Amdahl UTS";
|
|
echo " xenix5 - SCO Xenix System V";
|
|
echo " aix - IBM AIX System V";
|
|
echo " pyr - pyramid";
|
|
echo " sunos - suns under SunOS 4.N or less";
|
|
echo " solaris - suns under Solaris 2.0 or greater";
|
|
echo " encore - Encore MultiMax";
|
|
echo " next - NeXT/MACH";
|
|
echo " dynix - Sequent Balance"
|
|
echo " irix - Silicon Graphics IRIS/IRIX"
|
|
echo " newsos - Sony NEWS"
|
|
echo " drsnx - ICL DRS/NX V4.0"
|
|
echo " epix - Control Data EP/IX"
|
|
echo " 386bsd - 386/BSD, FreeBSD 1.n and derivatives"
|
|
echo " netbsd - NetBSD 1.0"
|
|
echo " freebsd - FreeBSD 2.0"
|
|
echo " bsdi - BSDI BSD/386 1.1"
|
|
echo " linux - Linux"
|
|
echo " domainosbsd - HP/Apollo Domain BSD 4.3"
|
|
;;
|
|
esac
|
|
done
|
|
echo "Will configure for ${os}"
|
|
echo
|
|
echo
|
|
uabprogs="define([uabprogs],[])"
|
|
uabplibs="define([uabplibs],[])"
|
|
uabpobjs="define([uabpobjs],[])"
|
|
etherprogs="define([etherprogs],[])"
|
|
etherpobjs="define([etherpobjs],[])"
|
|
capdprogs="define([capdprogs],[])"
|
|
capdpobjs="define([capdpobjs],[])"
|
|
lapobj="define([lapobj],[abkip.o abddp.o abnbp.o atalkdbm.o])"
|
|
usingphase2="# define([usephase2],1)"
|
|
usingatis="# define([useatis],1)"
|
|
singletree="# define([debug],1)"
|
|
includefile="# define([includef],1)"
|
|
result=0
|
|
usephase2=0
|
|
uabsupport=0
|
|
uarsupport=0
|
|
ethersupport=0
|
|
kernelsupport=0
|
|
case ${os} in
|
|
"sunos"|"ultrix40"|"ultrix20"|"ultrix12"|"osf1")
|
|
uabsupport=1
|
|
uarsupport=1
|
|
ethersupport=1
|
|
;;
|
|
"solaris")
|
|
uarsupport=1
|
|
ethersupport=1
|
|
;;
|
|
"aix")
|
|
uarsupport=1
|
|
;;
|
|
"pyr")
|
|
# later, someone should try this.
|
|
# uabsupport=1
|
|
ethersupport=1
|
|
;;
|
|
"irix")
|
|
uabsupport=1
|
|
uarsupport=1
|
|
ethersupport=0
|
|
;;
|
|
"newsos")
|
|
uabsupport=1
|
|
uarsupport=1
|
|
ethersupport=0
|
|
;;
|
|
"hpux")
|
|
uabsupport=1
|
|
uarsupport=1
|
|
ethersupport=0
|
|
;;
|
|
"386bsd")
|
|
uabsupport=1
|
|
uarsupport=1
|
|
ethersupport=1
|
|
;;
|
|
"netbsd")
|
|
uabsupport=1
|
|
uarsupport=1
|
|
ethersupport=1
|
|
;;
|
|
"freebsd")
|
|
uabsupport=1
|
|
uarsupport=1
|
|
ethersupport=1
|
|
;;
|
|
"bsdi")
|
|
uabsupport=1
|
|
uarsupport=1
|
|
ethersupport=1
|
|
;;
|
|
"linux")
|
|
uarsupport=1
|
|
kernelsupport=1
|
|
;;
|
|
"next")
|
|
uarsupport=1
|
|
ethersupport=1
|
|
;;
|
|
*)
|
|
uabsupport=0
|
|
uarsupport=0
|
|
ethersupport=0
|
|
;;
|
|
esac
|
|
# Tell people their list of choices...
|
|
if [ ${uabsupport} -eq 1 -o ${uarsupport} -eq 1 \
|
|
-o ${ethersupport} -eq 1 -o ${kernelsupport} -eq 1 ]; then
|
|
echo "In addition to IPTalk (the default), this operating system"
|
|
echo "can also support CAP AppleTalk packets over EtherTalk via:"
|
|
echo
|
|
if [ ${uabsupport} -eq 1 ]; then
|
|
echo " UAB (Unix AppleTalk Bridge)"
|
|
fi
|
|
if [ ${uarsupport} -eq 1 ]; then
|
|
echo " UAR (Unix AppleTalk Router)"
|
|
fi
|
|
if [ ${ethersupport} -eq 1 ]; then
|
|
echo " Native EtherTalk"
|
|
fi
|
|
if [ ${kernelsupport} -eq 1 ]; then
|
|
echo " Kernel AppleTalk"
|
|
fi
|
|
echo
|
|
echo "See the README files and other documentation for further info."
|
|
echo
|
|
fi
|
|
|
|
if [ ${uabsupport} -eq 1 ]; then
|
|
result=0
|
|
while :
|
|
do
|
|
${PROMPT} "Do you wish to use UAB (Unix AppleTalk Bridge) (default no) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="no"
|
|
fi
|
|
case ${ans} in
|
|
"yes"|"y") result=1; break;;
|
|
"no" |"n") result=0; break;;
|
|
*) echo "you must answer yes or no or carriage return for no." ;;
|
|
esac
|
|
done
|
|
if [ $result -eq 0 ]; then
|
|
echo "Not using UAB."
|
|
uabprogs="define([uabprogs],[])"
|
|
uabplibs="define([uabplibs],[])"
|
|
uabpobjs="define([uabpobjs],[])"
|
|
lapobj="define([lapobj],[abkip.o abddp.o abnbp.o atalkdbm.o])"
|
|
else
|
|
uabprogs="define([uabprogs],[uab])"
|
|
uabplibs="define([uabplibs],[libuabcap.a])"
|
|
lapobj="define([lapobj],[abmkip.o abddp.o abnbp.o atalkdbm.o])"
|
|
case ${os} in
|
|
"ultrix20"|"ultrix12")
|
|
echo "OK, setting things up for UAB."
|
|
uabpobjs="define([uabpobjs],[dlip.o])";;
|
|
"ultrix40")
|
|
echo "OK, setting things up for UAB."
|
|
uabpobjs="define([uabpobjs],[spfiltp.o])";;
|
|
"osf1")
|
|
echo "OK, setting things up for UAB."
|
|
uabpobjs="define([uabpobjs],[spfiltp.o])";;
|
|
"pyr")
|
|
echo "OK, setting things up for UAB."
|
|
uabpobjs="define([uabpobjs],[senetp.o])";;
|
|
"irix")
|
|
echo "OK, setting things up for UAB."
|
|
uabpobjs="define([uabpobjs],[snooppf.o])";;
|
|
"newsos")
|
|
echo "OK, setting things up for UAB."
|
|
uabpobjs="define([uabpobjs],[srawetherp.o])";;
|
|
"hpux")
|
|
echo "OK, setting things up for UAB."
|
|
uabpobjs="define([uabpobjs],[sllap.o])";;
|
|
"386bsd"|"netbsd"|"freebsd"|"bsdi"|"next")
|
|
echo "OK, setting things up for UAB."
|
|
uabpobjs="define([uabpobjs],[bpfiltp.o])";;
|
|
"solaris")
|
|
echo "OK, setting things up for UAB."
|
|
uabpobjs="define([uabpobjs],[sdlpi.o])";;
|
|
"sunos")
|
|
${PROMPT} "Have you installed the 'enet' driver (no) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="no"
|
|
fi
|
|
case ${ans} in
|
|
"yes"|"y") aresult=1;;
|
|
*) aresult=0;;
|
|
esac
|
|
if [ $aresult -eq 0 ]; then
|
|
echo "OK, using the NIT ethernet interface."
|
|
uabpobjs="define([uabpobjs],[snitp.o])"
|
|
else
|
|
echo "OK, using the 'enet' ethernet interface."
|
|
uabpobjs="define([uabpobjs],[senetp.o])"
|
|
fi
|
|
esac
|
|
fi
|
|
fi
|
|
echo
|
|
if [ $result -eq 0 ]; then
|
|
if [ ${uarsupport} -eq 1 ]; then
|
|
result=0
|
|
while :
|
|
do
|
|
${PROMPT} "Do you wish to use UAR (Unix AppleTalk Router)(default no) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="no"
|
|
fi
|
|
case ${ans} in
|
|
"yes"|"y") result=1; break;;
|
|
"no" |"n") result=0; break;;
|
|
*) echo "you must answer yes or no or carriage return for no." ;;
|
|
esac
|
|
done
|
|
if [ $result -eq 0 ]; then
|
|
echo "Not using UAR."
|
|
uabprogs="define([uabprogs],[])"
|
|
uabplibs="define([uabplibs],[])"
|
|
uabpobjs="define([uabpobjs],[])"
|
|
lapobj="define([lapobj],[abkip.o abddp.o abnbp.o atalkdbm.o])"
|
|
else
|
|
uabprogs="define([uabprogs],[])"
|
|
uabplibs="define([uabplibs],[])"
|
|
uabpobjs="define([uabpobjs],[])"
|
|
lapobj="define([lapobj],[abmkip.o abddp.o abnbp.o atalkdbm.o])"
|
|
${PROMPT} "Do you want Phase 2 compatibility (yes) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="yes"
|
|
fi
|
|
case ${ans} in
|
|
"yes"|"y")
|
|
usephase2=1
|
|
echo "OK, setting things up for UAR, Phase 2."
|
|
;;
|
|
*)
|
|
echo "OK, setting things up for UAR, Phase 1."
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
fi
|
|
echo
|
|
if [ $result -eq 0 ]; then
|
|
if [ ${ethersupport} -eq 1 ]; then
|
|
result=0
|
|
while :
|
|
do
|
|
${PROMPT} "Do you wish to use Native EtherTalk (default no) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="no"
|
|
fi
|
|
case ${ans} in
|
|
"yes"|"y") result=1; break;;
|
|
"no" |"n") result=0; break;;
|
|
*) echo "you must answer yes or no or carriage return for no." ;;
|
|
esac
|
|
done
|
|
if [ $result -eq 0 ]; then
|
|
echo "Not using Native EtherTalk."
|
|
etherprogs="define([etherprogs],[])"
|
|
etherpobjs="define([etherpobjs],[])"
|
|
lapobj="define([lapobj],[abkip.o abddp.o abnbp.o atalkdbm.o])"
|
|
else
|
|
etherprogs="define([etherprogs],[aarpd])"
|
|
lapobj="define([lapobj],[abetalk.o abddp.o abnbp.o atalkdbm.o])"
|
|
case ${os} in
|
|
"ultrix20"|"ultrix12")
|
|
echo "OK, setting things up for Native EtherTalk."
|
|
etherpobjs="define([etherpobjs],[dlip.o])";;
|
|
"osf1"|"ultrix40")
|
|
${PROMPT} "Do you want Phase 2 compatibility (yes) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="yes"
|
|
fi
|
|
case ${ans} in
|
|
"yes"|"y")
|
|
usephase2=1
|
|
echo "OK, setting things up for Native EtherTalk, Phase 2"
|
|
;;
|
|
*)
|
|
echo "OK, setting things up for Native EtherTalk."
|
|
;;
|
|
esac
|
|
case ${os} in
|
|
"osf1")
|
|
etherpobjs="define([etherpobjs],[spfiltp.o])"
|
|
;;
|
|
"ultrix40")
|
|
etherpobjs="define([etherpobjs],[spfiltp.o])"
|
|
;;
|
|
esac
|
|
;;
|
|
"pyr")
|
|
echo "OK, setting things up for Native EtherTalk."
|
|
etherpobjs="define([etherpobjs],[senetp.o])";;
|
|
"386bsd")
|
|
echo "OK, setting things up for Native EtherTalk."
|
|
etherpobjs="define([etherpobjs],[bpfiltp.o])";;
|
|
"netbsd"|"freebsd"|"bsdi"|"next")
|
|
${PROMPT} "Do you want Phase 2 compatibility (yes) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="yes"
|
|
fi
|
|
case ${ans} in
|
|
"yes"|"y")
|
|
usephase2=1
|
|
echo "OK, setting things up for Native EtherTalk, Phase2."
|
|
;;
|
|
*)
|
|
echo "OK, setting things up for Native EtherTalk."
|
|
;;
|
|
esac
|
|
etherpobjs="define([etherpobjs],[bpfiltp.o])";;
|
|
"solaris")
|
|
${PROMPT} "Do you want Phase 2 compatibility (yes) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="yes"
|
|
fi
|
|
case ${ans} in
|
|
"yes"|"y")
|
|
usephase2=1
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
${PROMPT} "OK, using the Streams ethernet interface "
|
|
if [ $usephase2 -eq 1 ]; then
|
|
echo "for Phase 2 support."
|
|
else
|
|
echo "for Phase 1 support."
|
|
fi
|
|
etherpobjs="define([etherpobjs],[sdlpi.o])";;
|
|
"sunos")
|
|
${PROMPT} "Do you want Phase 2 compatibility (yes) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="yes"
|
|
fi
|
|
case ${ans} in
|
|
"yes"|"y")
|
|
usephase2=1
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
${PROMPT} "Have you installed the 'enet' driver (no) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="no"
|
|
fi
|
|
case ${ans} in
|
|
"yes"|"y") aresult=1;;
|
|
*) aresult=0;;
|
|
esac
|
|
if [ $aresult -eq 0 ]; then
|
|
${PROMPT} "OK, using the NIT ethernet interface"
|
|
etherpobjs="define([etherpobjs],[snitp.o])"
|
|
else
|
|
${PROMPT} "OK, using the 'enet' ethernet interface"
|
|
etherpobjs="define([etherpobjs],[senetp.o])"
|
|
fi
|
|
if [ $usephase2 -eq 1 ]; then
|
|
echo " with Phase 2."
|
|
else
|
|
echo "."
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
fi
|
|
echo
|
|
if [ $result -eq 0 ]; then
|
|
if [ ${kernelsupport} -eq 1 ]; then
|
|
result=0
|
|
while :
|
|
do
|
|
${PROMPT} "Do you wish to use Kernel AppleTalk (default no) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="no"
|
|
fi
|
|
case ${ans} in
|
|
"yes"|"y") result=1; break;;
|
|
"no" |"n") result=0; break;;
|
|
*) echo "you must answer yes or no or carriage return for no." ;;
|
|
esac
|
|
done
|
|
if [ $result -eq 0 ]; then
|
|
echo "Not using Kernel AppleTalk."
|
|
capdprogs="define([capdprogs],[])"
|
|
capdpobjs="define([capdpobjs],[])"
|
|
lapobj="define([lapobj],[abkip.o abddp.o abnbp.o atalkdbm.o])"
|
|
else
|
|
echo "OK, setting things up for Kernel AppleTalk."
|
|
capdprogs="define([capdprogs],[capd])"
|
|
capdpobjs="define([capdpobjs],[capd.kas.o])"
|
|
lapobj="define([lapobj],[abkas.o abddp.o abnbp.o atalkdbm.o])"
|
|
usephase2=1
|
|
fi
|
|
fi
|
|
fi
|
|
if [ $useauxappletalk -ne 0 ]; then
|
|
lapobj="define([lapobj],[abauxddp.o abauxnbp.o])"
|
|
fi
|
|
if [ $usephase2 -ne 0 ]; then
|
|
usingphase2="define([usephase2],1)"
|
|
fi
|
|
if [ $useatis -ne 0 ]; then
|
|
usingatis="define([useatis],1)"
|
|
fi
|
|
echo
|
|
echo "CAP can be setup to occupy a single directory tree (for testing)."
|
|
result=0
|
|
while :
|
|
do
|
|
${PROMPT} "Do you wish to restrict CAP to this subdirectory (default no) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="no"
|
|
fi
|
|
case ${ans} in
|
|
"yes"|"y") result=1; break;;
|
|
"no" |"n") result=0; break;;
|
|
*) echo "you must answer yes or no or carriage return for no." ;;
|
|
esac
|
|
done
|
|
if [ $result -ne 0 ]; then
|
|
${PROMPT} "Which directory (" `pwd` ") ? "
|
|
read ans
|
|
if [ ! -z "${ans}" ]; then
|
|
if [ -d "${ans}" ]; then
|
|
mydir=${ans}
|
|
else
|
|
echo "Warning: the directory" ${ans} "doesn't exist."
|
|
fi
|
|
fi
|
|
echo "OK, using" ${mydir} "as the CAP root directory."
|
|
singletree="define([debug],1)"
|
|
else
|
|
echo
|
|
result=0
|
|
while :
|
|
do
|
|
${PROMPT} "Look for my include files in other than /usr/include (no) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="no"
|
|
fi
|
|
case ${ans} in
|
|
"yes"|"y") result=1; break;;
|
|
"no" |"n") result=0; break;;
|
|
*) echo "you must answer yes or no or carriage return for no." ;;
|
|
esac
|
|
done
|
|
if [ $result -ne 0 ]; then
|
|
${PROMPT} "Include file location (" ${mydir} ") ? "
|
|
read ans
|
|
if [ -n "${ans}" ]; then
|
|
mydir="${ans}"
|
|
fi
|
|
echo "OK, using include files in" ${mydir}
|
|
includefile="define([includef],1)"
|
|
fi
|
|
fi
|
|
echo
|
|
echo "CAP can be configured for various optional features."
|
|
echo "For more information, refer to the file 'CAP60.README'."
|
|
echo
|
|
echo "Checking for special feature customisation ..."
|
|
${PCAT} <<\EOT0 > /tmp/m4.f.$$
|
|
# m4.features
|
|
#
|
|
# This file is used to determine the default set of additional features
|
|
# that will be incorporated into CAP. These features have been contributed
|
|
# by many people throughout the network community.
|
|
#
|
|
# Necessary preamble - please don't alter
|
|
define(`concat',$1$2$3$4$5$6$7$8$9)
|
|
define(`specialcflags',`')
|
|
define(`aufsosflags',`')
|
|
define(`simpleflags',`')
|
|
define(`lwflags',`')
|
|
#
|
|
# To change the feature set, simply uncomment the wanted defines().
|
|
# The Configure file will then use the customised version.
|
|
# For more details, refer to the file 'CAP60.README'
|
|
#
|
|
# + SHORT_NAMES adds short name support to AUFS for AppleShare PC.
|
|
# define(`specialcflags',concat(specialcflags,` -DSHORT_NAMES'))
|
|
#
|
|
# + NOCASEMATCH removes UNIX case sensitivity in AUFS (like Macs).
|
|
# define(`specialcflags',concat(specialcflags,` -DNOCASEMATCH'))
|
|
#
|
|
# + SIZESERVER adds a daemon per AUFS server process for volume size info.
|
|
# define(`specialcflags',concat(specialcflags,` -DSIZESERVER'))
|
|
#
|
|
# + LWSRV_AUFS_SECURITY provides printer security based on AUFS connection.
|
|
# define(`specialcflags',concat(specialcflags,` -DLWSRV_AUFS_SECURITY'))
|
|
#
|
|
# + HIDE_LWSEC_FILE increases security of LWSRV_AUFS_SECURITY flag file
|
|
# define(`aufsosflags',concat(aufsosflags,` -DHIDE_LWSEC_FILE'))
|
|
# define(`lwflags',concat(lwflags,` -DHIDE_LWSEC_FILE'))
|
|
#
|
|
# + LWSRV_LPR_LOG causes stdout/stderr lpr output to be included in lwsrv log
|
|
# define(`specialcflags',concat(specialcflags,` -DLWSRV_LPR_LOG'))
|
|
#
|
|
# + AUTHENTICATE turn on alternate AUFS/LWSRV authentication method
|
|
# define(`specialcflags',concat(specialcflags,` -DAUTHENTICATE'))
|
|
#
|
|
# + STAT_CACHE causes critical AUFS stat() calls to be cached.
|
|
# define(`specialcflags',concat(specialcflags,` -DSTAT_CACHE'))
|
|
#
|
|
# + TREL_TIMEOUT causes an extra TREL timeout listener to run to avoid timeouts
|
|
# define(`specialcflags',concat(specialcflags,` -DTREL_TIMEOUT'))
|
|
#
|
|
# + RUTGERS includes local modifications for Rutgers University
|
|
# define(`specialcflags',concat(specialcflags,` -DRUTGERS'))
|
|
#
|
|
# + MELBOURNE includes local modifications for Melbourne University
|
|
# define(`specialcflags',concat(specialcflags,` -DMELBOURNE'))
|
|
#
|
|
# + USE_HOST_ICON provides automatic aufs ICON selection on supported hosts
|
|
# define(`specialcflags',concat(specialcflags,` -DUSE_HOST_ICON'))
|
|
#
|
|
# + PERMISSIVE_USER_NAME allows AUFS users to have their real name in Chooser
|
|
# define(`specialcflags',concat(specialcflags,` -DPERMISSIVE_USER_NAME'))
|
|
#
|
|
# + ULTRIX_SECURITY adds ULTRIX enhanced security to aufs
|
|
# define(`specialcflags',concat(specialcflags,` -DULTRIX_SECURITY'))
|
|
#
|
|
# + DIGITAL_UNIX_SECURITY adds OSF/1 enhanced security to aufs
|
|
# define(`specialcflags',concat(specialcflags,` -DDIGITAL_UNIX_SECURITY'))
|
|
#
|
|
# + USING_FDDI_NET adds support for FDDI networks (Digital UNIX/Ultrix only)
|
|
# define(`specialcflags',concat(specialcflags,` -DUSING_FDDI_NET'))
|
|
#
|
|
# + USE_MAC_DATES maintains Mac Create/Modify dates on file copy
|
|
# define(`specialcflags',concat(specialcflags,` -DUSE_MAC_DATES'))
|
|
#
|
|
# + DEV_NIT specifies alternate NIT device name (default "/dev/nit")
|
|
# define(`specialcflags',concat(specialcflags,` -DDEV_NIT=\"/dev/nit\"'))
|
|
#
|
|
# + APPLICATION_MANAGER control the use of designated applications
|
|
# define(`specialcflags',concat(specialcflags,` -DAPPLICATION_MANAGER'))
|
|
#
|
|
# + AUFS_README links readme file into new user's top level
|
|
# define(`specialcflags',concat(specialcflags,` -DAUFS_README'))
|
|
#
|
|
# + ULT42PFBUG unpatched ULTRIX 4.2 packet filter workaround (also need COPYALL)
|
|
# define(`specialcflags',concat(specialcflags,` -DULT42PFBUG'))
|
|
#
|
|
# + AUFS_IDLE_TIMEOUT will disconnect idle AUFS sessions (-[i|I] period)
|
|
# define(`specialcflags',concat(specialcflags,` -DAUFS_IDLE_TIMEOUT'))
|
|
#
|
|
# + REREAD_AFPVOLS kill -USR1 will make parent aufs re-read system vols file
|
|
# define(`specialcflags',concat(specialcflags,` -DREREAD_AFPVOLS'))
|
|
#
|
|
# + PASS_THRU pass through LWSRV jobs with no adobe preprocessing (for PCs)
|
|
# define(`specialcflags',concat(specialcflags,` -DPASS_THRU'))
|
|
#
|
|
# + DONT_PARSE pass through LWSRV jobs with no adobe preprocessing at all
|
|
# define(`specialcflags',concat(specialcflags,` -DDONT_PARSE'))
|
|
#
|
|
# + XDEV_RENAME allow files to be moved over cross device links
|
|
# define(`specialcflags',concat(specialcflags,` -DXDEV_RENAME'))
|
|
#
|
|
# + USR_FILE_TYPES user defined file suffix to creator/type/xlate mapping
|
|
# define(`specialcflags',concat(specialcflags,` -DUSR_FILE_TYPES'))
|
|
#
|
|
# + CREATE_AFPVOL create user .afpvols and 'mac' directories if non-existent
|
|
# define(`specialcflags',concat(specialcflags,` -DCREATE_AFPVOL=\"mac\"'))
|
|
#
|
|
# + CREAT_AFPVOL_NAM customize name for the volume (modifies CREATE_AFPVOL)
|
|
# (CREAT_AFPVOL_NAM fmt string: %U user, %H host, %V vol, %D home eg: "%U@%H")
|
|
# define(`specialcflags',concat(specialcflags,` -DCREAT_AFPVOL_NAM="\"%U\""'))
|
|
#
|
|
# + ISO_TRANSLATE use Macintosh/ISO 8859 character translation on I/O
|
|
# define(`specialcflags',concat(specialcflags,` -DISO_TRANSLATE'))
|
|
#
|
|
# + ISO_FILENAMES extend ISO translation to filenames (assumes ISO_TRANSLATE)
|
|
# define(`specialcflags',concat(specialcflags,` -DISO_FILENAMES'))
|
|
#
|
|
# + ISO_FILE_TRANS use ISO translation on unix/TEXT file contents
|
|
# define(`specialcflags',concat(specialcflags,` -DISO_FILE_TRANS'))
|
|
#
|
|
# + DENYREADWRITE implement AUFS read/write access and deny modes
|
|
# define(`specialcflags',concat(specialcflags,` -DDENYREADWRITE'))
|
|
#
|
|
# + STEAL_PORTS extends DDP dynamic skts down into experimental range 64-128
|
|
# (WARNING!!: Requires uar.1.0.patch11 or uar.1.1.patch09 for use with UAR)
|
|
# define(`specialcflags',concat(specialcflags,` -DSTEAL_PORTS'))
|
|
#
|
|
# + USESYSLOG sends PAPIF Information, Warning & Debug messages to syslog()
|
|
# define(`specialcflags',concat(specialcflags,` -DUSESYSLOG'))
|
|
#
|
|
# + NOCAPDOTPRINTERS uses /etc/lp/printers/<lw>/comment instead of cap.printers
|
|
# (Note: intended for use with Solaris 2.N only)
|
|
# define(`specialcflags',concat(specialcflags,` -DNOCAPDOTPRINTERS'))
|
|
#
|
|
#
|
|
# AUFS definable options (previously required editing m4.setup)
|
|
#
|
|
# + FIXED_DIRIDS compile server and AUFS code for fixed directory & file IDs
|
|
# define(`specialcflags',concat(specialcflags,` -DFIXED_DIRIDS'))
|
|
#
|
|
# + DISTRIB_PASSWDS use ~/.afppass for encrypted passwords (see CAP60.README)
|
|
# define(`specialcflags',concat(specialcflags,` -DDISTRIB_PASSWDS'))
|
|
#
|
|
# + AFP_DISTPW_PATH alternate directory for .afppass files (not in ~user)
|
|
# define(`specialcflags',concat(specialcflags,` -DAFP_DISTPW_PATH=\"/etc/dp\"'))
|
|
#
|
|
# + AFP_DISTPW_MODE enforced .afppass mode (must be 0644 for NFS mounted dirs)
|
|
# define(`specialcflags',concat(specialcflags,` -DAFP_DISTPW_MODE=0600'))
|
|
#
|
|
# + DEBUG_AFP_CMD write detailed AUFS AFP debugging info to -Z specified file
|
|
# define(`specialcflags',concat(specialcflags,` -DDEBUG_AFP_CMD'))
|
|
#
|
|
# + PID_FILE write an aufs process-ID file
|
|
# define(`specialcflags',concat(specialcflags,` -DPID_FILE=\"aufs.pid\"'))
|
|
#
|
|
# + CLOSE_LOG_SIG close and reopen the aufs log on signal -USR2
|
|
# define(`specialcflags',concat(specialcflags,` -DCLOSE_LOG_SIG=SIGUSR2'))
|
|
#
|
|
# + LOG_WTMP add entry to the 'wtmp' file for each AUFS connection (not IRIX4)
|
|
# define(`aufsosflags',concat(aufsosflags,` -DLOG_WTMP'))
|
|
#
|
|
# + LOG_WTMP_FILE specify name of alternate wtmp file for LOG_WTMP feature
|
|
# define(`aufsosflags',concat(aufsosflags,` -DLOG_WTMP_FILE=\"/usr/adm/wtmp\"'))
|
|
#
|
|
# + ADMIN_GRP allows users in specified UNIX group to login as AUFS superuser
|
|
# define(`aufsosflags',concat(aufsosflags,` -DADMIN_GRP=\"macadm\"'))
|
|
#
|
|
# + NONLXLATE for aufs
|
|
# define(`aufsosflags',concat(aufsosflags,` -DNONLXLATE'))
|
|
#
|
|
# + FULL_NCS_SUPPORT (National Character Support) for aufs
|
|
# define(`aufsosflags',concat(aufsosflags,` -DFULL_NCS_SUPPORT'))
|
|
#
|
|
# + NCS_ALL_TEXT perform specified translation on any TEXT file
|
|
# define(`aufsosflags',concat(aufsosflags,` -DNCS_ALL_TEXT'))
|
|
#
|
|
# + GGTYPE="gid_t" (group ID type) for AUFS
|
|
# define(`aufsosflags',concat(aufsosflags,` -DGGTYPE="gid_t"'))
|
|
#
|
|
# + NOCHGRPEXEC don't exec chgrp, just use chown(2) 3rd arg. [Not for Sys V]
|
|
# define(`aufsosflags',concat(aufsosflags,` -DNOCHGRPEXEC'))
|
|
#
|
|
# + USEDIRSETGID set group ID bit on non-primary group dirs [SunOS/Sys V]
|
|
# define(`aufsosflags',concat(aufsosflags,` -DUSEDIRSETGID'))
|
|
#
|
|
# + NETWORKTRASH fix permissions on network trash stuff
|
|
# define(`aufsosflags',concat(aufsosflags,` -DNETWORKTRASH'))
|
|
#
|
|
# + SHADOW_PASSWD add support for shadow password files if supported
|
|
# define(`aufsosflags',concat(aufsosflags,` -DSHADOW_PASSWD'))
|
|
#
|
|
# + LOGIN_AUTH_PROG AUFS -L option specifies external authorization program
|
|
# define(`aufsosflags',concat(aufsosflags,` -DLOGIN_AUTH_PROG'))
|
|
#
|
|
# + USEQUOTA forces usage of ufs quotas [Solaris 2.x only]
|
|
# note: check if you applied ufs quota patch:
|
|
# 100833-xx for Solaris 2.1
|
|
# 101039-xx for Solaris 2.2
|
|
# define(`aufsosflags',concat(aufsosflags,` -DUSEQUOTA'))
|
|
#
|
|
#
|
|
# LWSRV definable options (previously required editing m4.setup)
|
|
#
|
|
# + LPRARGS passes arguments on lwsrv command line directly to lpr
|
|
# define(`lwflags',concat(lwflags,` -DLPRARGS'))
|
|
#
|
|
# + DOCNAME adds document name as a part of job name to lpr
|
|
# define(`lwflags',concat(lwflags,` -DDOCNAME'))
|
|
#
|
|
# + LPRCMD redefine BSD lpr to use alternate path
|
|
# define(`lwflags',concat(lwflags,` -DLPRCMD=\"/usr/local/bin/lpr\"'))
|
|
#
|
|
# + TEMPFILE set alternative path for lwsrv spool files (default /tmp)
|
|
# define(`lwflags',concat(lwflags,` -DTEMPFILE=\"/usr/tmp/lwsrvXXXXXX\"'))
|
|
#
|
|
# + USELPRSYM add -s (symlink) option to lwsrv lpr call (not for OSF/1)
|
|
# define(`lwflags',concat(lwflags,` -DUSELPRSYM'))
|
|
#
|
|
# + USESYSVLP required for HP-UX (and probably other System V) spooling
|
|
# define(`lwflags',concat(lwflags,` -DUSESYSVLP'))
|
|
#
|
|
# + PAGECOUNT adds page count to job name (value is internal buffer size)
|
|
# define(`lwflags',concat(lwflags,` -DPAGECOUNT=512'))
|
|
# define(`simpleflags',concat(simpleflags,` -DPAGECOUNT=512'))
|
|
#
|
|
# + ADOBE_DSC2_CONFORMANT forces Adobe DSC2 conformance
|
|
# define(`simpleflags',concat(simpleflags,` -DADOBE_DSC2_CONFORMANT'))
|
|
#
|
|
# + PROCSET_PATCH delete PatchPrep header for non-Apple LaserWriters
|
|
# define(`simpleflags',concat(simpleflags,` -DPROCSET_PATCH'))
|
|
#
|
|
# + RUN_AS_USER run lpd job as Chooser Name if valid UNIX account (no authent)
|
|
# define(`lwflags',concat(lwflags,` -DRUN_AS_USER'))
|
|
#
|
|
# + USER_REQUIRED (requires RUN_AS_USER) refuse printing if Chsr name invalid
|
|
# define(`lwflags',concat(lwflags,` -DUSER_REQUIRED'))
|
|
#
|
|
#
|
|
# PAPIF options
|
|
#
|
|
# + DUPLEXMODE tell suitably equipped printer to print on both sides of a page
|
|
# define(`specialcflags',concat(specialcflags,` -DDUPLEXMODE'))
|
|
#
|
|
# + TRANS3 add support for TranScript 3.0 'psdman' (instead of pstext)
|
|
# define(`specialcflags',concat(specialcflags,` -DTRANS3'))
|
|
#
|
|
# + PSJOBHEADER send PS header in file specified in env. variable "PSJOBHEADER"
|
|
# define(`specialcflags',concat(specialcflags,` -DPSJOBHEADER'))
|
|
#
|
|
#
|
|
EOT0
|
|
result=0
|
|
if [ -f m4.features ]; then
|
|
diff m4.features /tmp/m4.f.$$ > /dev/null 2>/dev/null
|
|
rc=$?
|
|
if [ $rc -ne 0 ]; then
|
|
echo
|
|
echo "You appear to have a locally customised version of m4.features."
|
|
while :
|
|
do
|
|
${PROMPT} "I assume that you want to use it rather than the default (y) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="yes"
|
|
fi
|
|
case ${ans} in
|
|
"y"|"ye"|"yes") result=1; break;;
|
|
"no"|"n") result=0; break;;
|
|
*) echo "you must answer yes or no or carriage return for yes." ;;
|
|
esac
|
|
done
|
|
if [ $result -eq 0 ]; then
|
|
echo "OK, copying m4.features to /tmp and replacing with the default."
|
|
${PCAT} m4.features > /tmp/m4.features
|
|
${PCAT} /tmp/m4.f.$$ > m4.features
|
|
else
|
|
echo "Using the locally customised version of m4.features."
|
|
fi
|
|
else
|
|
echo "Using the default feature list."
|
|
fi
|
|
else
|
|
echo "Using the default feature list."
|
|
${PCAT} /tmp/m4.f.$$ > m4.features
|
|
fi
|
|
rm -f /tmp/m4.f.$$
|
|
echo
|
|
echo
|
|
result=0
|
|
while :
|
|
do
|
|
${PROMPT} "Do you wish to customise the feature list (default no) ? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="no"
|
|
fi
|
|
case ${ans} in
|
|
"y"|"yes") result=1; break;;
|
|
"n"|"no") result=0; break;;
|
|
*) echo "you must answer yes or no or carriage return for no." ;;
|
|
esac
|
|
done
|
|
if [ $result -ne 0 ]; then
|
|
case ${os} in
|
|
"ultrix40"|"ultrix20"|"ultrix12"|"bsd"|"encore"|"newsos"|"epix"|"osf1")
|
|
${EDITOR-vi} m4.features
|
|
;;
|
|
*)
|
|
${EDITOR:-vi} m4.features
|
|
;;
|
|
esac
|
|
fi
|
|
echo
|
|
echo
|
|
echo "Some machines send packets fast enough to overrun a Kinetics box"
|
|
echo "running KIP. You should answer yes if you know this is the case."
|
|
echo "If you aren't sure, answer no. You can go back and recompile the"
|
|
echo "relevant programs later. Generally, the programs affected are the"
|
|
echo "LaserWriter printing programs."
|
|
echo
|
|
echo "Systems affected are generally those whose network interfaces are faster"
|
|
echo "than the DEQNA (DEC Q-Bus Network Adapter). Machines at risk may"
|
|
echo "include, but are not limited to, Sun 3's and 4's and DEC VAX 8xxx class"
|
|
echo "machines with DEBNT/DEBNA's"
|
|
echo
|
|
result=0
|
|
while :
|
|
do
|
|
${PROMPT} "Do you want to throttle output for a Kinetics box (default no)? "
|
|
read ans
|
|
if [ -z "${ans}" ]; then
|
|
ans="no"
|
|
fi
|
|
case ${ans} in
|
|
"y"|"ye"|"yes") result=1; break;;
|
|
"no"|"n") fastether="# $fastether"; result=0; break;;
|
|
*) echo "you must answer yes or no or carriage return for no" ;;
|
|
esac
|
|
done
|
|
if [ $result -eq 0 ]; then
|
|
echo "We won't slow down printing code."
|
|
else
|
|
echo "We will slow down printing code."
|
|
fi
|
|
# check for byte swapping
|
|
echo
|
|
echo "Checking the byte ordering on your machine ..."
|
|
${PCAT} <<\EOTF > /tmp/bs$$.c
|
|
#include <stdio.h>
|
|
|
|
main()
|
|
{
|
|
unsigned short aword, result;
|
|
char *pchar = (char *) &aword;
|
|
|
|
*pchar++ = 0x42;
|
|
*pchar = 0x53;
|
|
|
|
result = (aword != 0x4253);
|
|
printf("This appears to be a '%s-endian' machine.\n",(result)?"little":"big");
|
|
exit(result);
|
|
}
|
|
EOTF
|
|
byteswapping="# define([usebyteswap],1)"
|
|
${ccompiler} -o /tmp/bs$$ /tmp/bs$$.c > /dev/null 2>/dev/null
|
|
rc=$?
|
|
if [ $rc -eq 0 ]; then
|
|
/tmp/bs$$
|
|
rc=$?
|
|
if [ $rc -ne 0 ]; then
|
|
byteswapping="define([usebyteswap],1)"
|
|
echo "Defining BYTESWAPPED for correct operation."
|
|
fi
|
|
else
|
|
echo "Hmmm, can't get sensible results, assuming non-byteswapped"
|
|
echo "Uncomment the 'usebyteswap' line in m4.setup if incorrect."
|
|
fi
|
|
rm -f /tmp/bs$$ /tmp/bs$$.c
|
|
# check types.h
|
|
echo
|
|
echo "Checking to see if the sequence"
|
|
echo " #include <sys/param.h>"
|
|
echo " #include <sys/types.h>"
|
|
echo "causes a problem at your site."
|
|
echo "Assuming that your C compiler returns error codes."
|
|
echo " Temporary files: /tmp/cx$$.c, cx$$.o"
|
|
echo
|
|
${PROMPT} "[Hit carriage return to continue] "
|
|
read ans
|
|
trap "
|
|
echo Exiting... Wait...
|
|
if [ -f /tmp/cx$$.c ]; then rm -f /tmp/cx$$.c; fi;
|
|
if [ -f cx$$.o ]; then rm -f cx$$.o fi
|
|
exit 255" 2
|
|
echo "#include <sys/param.h>" > /tmp/cx$$.c
|
|
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
|
|
echo "The sequence does cause a problem, checking to see if the"
|
|
echo "actual sequence:"
|
|
echo " #include <sys/param.h>"
|
|
echo " #ifndef _TYPES"
|
|
echo " # include <sys/types.h>"
|
|
echo " #endif"
|
|
echo "can be made to work by define _TYPES everywhere"
|
|
echo
|
|
${PROMPT} "[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
|
|
echo "This failed, continuing configuration, but you probably won't be"
|
|
echo "able to compile because sys/param.h or sys/types are probably not"
|
|
echo "there and even if they are, CAP sources make invalid assumptions"
|
|
echo "about them"
|
|
fi
|
|
else
|
|
echo
|
|
echo "No problems here"
|
|
needselfdef="# ${needselfdef}"
|
|
fi
|
|
rm -f /tmp/cx$$.c
|
|
if [ -f cx$$.o ]; then
|
|
rm -f cx$$.o
|
|
fi
|
|
trap 2
|
|
echo
|
|
echo "Checking for various system calls. (But not the list of system"
|
|
echo "call for system V compatibility). Temp files: m4.tmp, /tmp/cx$$"
|
|
echo
|
|
${PROMPT} "[Hit carriage return to continue] "
|
|
read ans
|
|
echo
|
|
trap "
|
|
echo Exiting... Wait...
|
|
if [ -f /tmp/cx$$ ]; then rm -f /tmp/cx$$; fi; exit 255" 2
|
|
libs=""
|
|
case "${osdefault}" in
|
|
"xenix5")
|
|
echo "Getting name list from /lib/386/Slib{[cx],socket}.a..."
|
|
${PNM} /lib/386/Slibc.a > /tmp/cx$$
|
|
${PNM} /lib/386/Slibx.a >> /tmp/cx$$
|
|
${PNM} /lib/386/Slibsocket.a >> /tmp/cx$$
|
|
;;
|
|
"solaris")
|
|
echo "Getting name list from /lib/libc.a ..."
|
|
${PNM} /lib/libc.a > /tmp/cx$$
|
|
echo "Getting name list from /lib/libsocket.a ..."
|
|
${PNM} /lib/libsocket.a >> /tmp/cx$$
|
|
echo "Getting name list from /lib/libnsl.a ..."
|
|
${PNM} /lib/libnsl.a >> /tmp/cx$$
|
|
libs="-lsocket -lnsl"
|
|
;;
|
|
"drsnx")
|
|
echo "Getting name list from /usr/ccs/libc.a /usr/ucblib/libucb.a..."
|
|
${PNM} /usr/ccs/lib/libc.a > /tmp/cx$$
|
|
${PNM} /usr/ucblib/libucb.a >> /tmp/cx$$
|
|
${PNM} /usr/lib/libsocket.a >> /tmp/cx$$
|
|
;;
|
|
"epix")
|
|
echo "Getting name list from /bsd43/usr/lib/libc.a"
|
|
${PNM} /bsd43/usr/lib/libc.a > /tmp/cx$$
|
|
;;
|
|
"osf1")
|
|
echo "Getting name list from /usr/lib/libc.a"
|
|
${PNM} -B /usr/lib/libc.a > /tmp/cx$$
|
|
;;
|
|
"domainosbsd")
|
|
echo "Getting name list from /lib/clib /lib/libc..."
|
|
${PNM} /lib/clib > /tmp/cx$$
|
|
${PNM} /lib/libc >> /tmp/cx$$
|
|
;;
|
|
*)
|
|
if [ -f /lib/libc.a ]; then
|
|
echo "Getting name list from /lib/libc.a..."
|
|
${PNM} /lib/libc.a > /tmp/cx$$
|
|
else
|
|
if [ -f /usr/lib/libc.a ]; then
|
|
echo "Getting name list from /usr/lib/libc.a..."
|
|
${PNM} /usr/lib/libc.a > /tmp/cx$$
|
|
else
|
|
if [ -f /lib/libsys_s.a ]; then
|
|
echo "Getting NeXT 2.0 name list from /lib/libsys_s.a..."
|
|
${PNM} /lib/libsys_s.a > /tmp/cx$$
|
|
else
|
|
if [ -f /lib/libc.so.1 ]; then
|
|
echo "Getting IRIX 5 name list from /lib/libc.so.1"
|
|
${PNM} /lib/libc.so.1 > /tmp/cx$$
|
|
else
|
|
echo "Cannot get the namelist ... HELP"
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
;;
|
|
esac
|
|
names=$?
|
|
# FreeBSD (1.0) gives an error in nm, ignore it.
|
|
if [ $names -ne 0 -a "${os}" != "386bsd" -a "${os}" != "freebsd" -a "${os}" != "bsdi" -a "${os}" != "netbsd" ]; then
|
|
echo "Couldn't get the name list!"
|
|
else
|
|
echo "Done, running function configuration"
|
|
confos=${os}; export confos; export ccompiler; export libs
|
|
${USESH} ./conf.func.sh /tmp/cx$$ conf.func.lst m4 m4.tmp
|
|
rc=$?
|
|
if [ $rc -eq 1 ]; then
|
|
if [ -z "${USESH}" ]; then
|
|
sh conf.func.sh /tmp/cx$$ conf.func.lst m4 m4.tmp
|
|
fi
|
|
fi
|
|
unset confos
|
|
echo "Done."
|
|
fi
|
|
rm -f /tmp/cx$$
|
|
trap 2
|
|
# now setup
|
|
if [ -z "$1" ]; then
|
|
of=m4.setup
|
|
else
|
|
of=$1
|
|
fi
|
|
echo
|
|
${PROMPT} "[Hit carriage return to continue] "
|
|
read ans
|
|
echo
|
|
if [ -f ${of} ]; then
|
|
echo "Getting ready to overwrite existing ${of}"
|
|
else
|
|
echo "Getting ready to create ${of}"
|
|
fi
|
|
echo
|
|
${PROMPT} "[Hit carriage return to continue] "
|
|
read ans
|
|
echo "Creating ${of}"
|
|
rm -f ${of}
|
|
exec > ${of}
|
|
${PCAT} <<\EOT
|
|
define(`concat',$1$2$3$4$5$6$7$8$9)
|
|
changequote([,])
|
|
|
|
# os - one of:
|
|
# "bsd" - bsd 4.2, bsd 4.3, ultrix 1.1, acis 4.2,4.3 other
|
|
# "standard" bsd systems without nfs
|
|
# "ultrix12" - Ultrix 1.2
|
|
# "ultrix20" - Ultrix 2.0 or greater
|
|
# "ultrix40" - Ultrix 4.0 or greater
|
|
# "osf1" - OSF/1 1.3 or greater
|
|
# "hpux" - HP/UX
|
|
# "aux" - A/UX
|
|
# "uts" - Amdahl UTS
|
|
# "xenix5" - SCO Xenix System V
|
|
# "aix" - IBM AIX System V
|
|
# "pyr" - pyramid (in BSD universe)
|
|
# "sunos" - SunOS 4.N or less
|
|
# "solaris" - Solaris 2.N (SunOS 5.0 and greater)
|
|
# "encore" - Encore MultiMax
|
|
# "next" - NeXT/MACH
|
|
# "dynix" - Sequent Balance
|
|
# "irix" - Silicon Graphics IRIS-4D/IRIX
|
|
# "newsos" - Sony NEWS
|
|
# "drsnx" - ICL DRS/NX V4.0
|
|
# "epix" - Control Data EP/IX
|
|
# "386bsd" - 386/BSD and derivatives
|
|
# "netbsd" - NetBSD 1.0
|
|
# "freebsd" - FreeBSD 2.0
|
|
# "bsdi" - BSDI BSD/386 1.1
|
|
# "domainosbsd" - HP/Apollo Domain BSD 4.3
|
|
# Warning: hpux, pyr are hardcoded in some of the makefiles (sorry)
|
|
|
|
# MAJOR CONFIGURATION
|
|
# set to one of the above (or configure your own below)
|
|
EOT
|
|
echo "define([os],[[$os]])"
|
|
echo
|
|
echo "# System call configuration (not for system v compatibilty)"
|
|
echo "# known: X_GETOPT, X_VPRINTF, X_GETMNT, X_STATFS, X_QUOTA,"
|
|
echo "# X_SUNQUOTA, X_FLOCK, X_LOCKF, X_FCNTLLOCKF"
|
|
${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 "# turn on if your system sends packets very quickly"
|
|
echo "# (see applications/aufs/INSTALLATION)"
|
|
echo "${fastether}"
|
|
echo
|
|
echo "# The following selects the correct lap delivery objects"
|
|
echo "${lapobj}"
|
|
echo
|
|
echo "# This determines what happens to UAB and UAR"
|
|
echo "${uabprogs}"
|
|
echo "${uabplibs}"
|
|
echo "${uabpobjs}"
|
|
echo
|
|
echo "# This sets up Native EtherTalk support"
|
|
echo "${etherprogs}"
|
|
echo "${etherpobjs}"
|
|
echo
|
|
echo "# This sets up capd"
|
|
echo "${capdprogs}"
|
|
echo "${capdpobjs}"
|
|
echo
|
|
echo "# And this determines if Phase 2 packets are used"
|
|
echo "${usingphase2}"
|
|
echo
|
|
echo "# The following selects byteswapping or otherwise"
|
|
echo "${byteswapping}"
|
|
echo
|
|
echo "# We use build_here to restrict CAP to a single directory tree"
|
|
echo "# but still using etcdest (see below) for the location of atalk.local"
|
|
echo "# and other configuration files"
|
|
echo "# define([build_here],1)"
|
|
echo
|
|
echo "# We use the debug flag to restrict CAP to a single directory tree"
|
|
echo "# for testing purposes, e.g. testing new versions"
|
|
echo "${singletree}"
|
|
echo
|
|
echo "# The includef flag sets an alternate localtion for include files"
|
|
echo "${includefile}"
|
|
echo
|
|
echo "# Systems with kernel AppleTalk support do not need atis"
|
|
echo "${usingatis}"
|
|
echo
|
|
echo "# uncomment if your param.h includes types.h and types.h doesn't"
|
|
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([rutgersdef],1) # so rutgers can do things quickly
|
|
|
|
# location of include files
|
|
define([includedir],[[/usr/include]])
|
|
ifelse(os,[epix],[define([includedir],[[/bsd43/usr/include]])])
|
|
# location of des subroutine source (see lib/afp/README)
|
|
define([desloc],[[../../extras]])
|
|
# location of atalk.local, etc.
|
|
define([etcdest],[[/etc]])
|
|
ifdef([columbia],[define([etcdest],[[/usr/local/lib/cap]])])
|
|
# location of user cap programs
|
|
define([capdestdir],[[/usr/local/cap]])
|
|
# location of cap "server" programs (aufs, lwsrv, papif, uab etc.)
|
|
define([capsrvrdestdir],[[/usr/local/cap]])
|
|
# location of some cap data files
|
|
define([caplibdestdir],[[/usr/local/lib/cap]])
|
|
ifdef([rutgersdef],[define([caplibdestdir],[[/usr/local/cap/lib]])])
|
|
# location of cap libraries
|
|
define([libdestdir],[[/usr/local/lib]])
|
|
# override for aux (doesn't search /usr/local/lib)
|
|
ifelse(os,[aux],[define([libdestdir],[[/usr/lib]])])
|
|
# cap library names
|
|
define([caplib],[[libcap.a]])
|
|
define([afplib],[[libafp.a]])
|
|
define([afpclib],[[libafpc.a]])
|
|
# names to load cap libraries with
|
|
define([libcap],[[-lcap]])
|
|
define([libafp],[[-lafp]])
|
|
define([libafpc],[[-lafpc]])
|
|
ifelse(os,[encore],
|
|
[define([libcap],concat([-L],libdestdir,[ ],libcap))])
|
|
ifelse(os,[encore],
|
|
[define([libafp],concat([-L],libdestdir,[ ],libafp))])
|
|
ifelse(os,[encore],
|
|
[define([libafpc],concat([-L],libdestdir,[ ],libafpc))])
|
|
ifelse(os,[aix],
|
|
[define([libcap],concat([-L],libdestdir,[ ],libcap))])
|
|
ifelse(os,[aix],
|
|
[define([libafp],concat([-L],libdestdir,[ ],libafp))])
|
|
ifelse(os,[aix],
|
|
[define([libafpc],concat([-L],libdestdir,[ ],libafpc))])
|
|
ifelse(os,[hpux],
|
|
[define([libcap],concat([-L],libdestdir,[ ],libcap))])
|
|
ifelse(os,[hpux],
|
|
[define([libafp],concat([-L],libdestdir,[ ],libafp))])
|
|
ifelse(os,[hpux],
|
|
[define([libafpc],concat([-L],libdestdir,[ ],libafpc))])
|
|
ifelse(os,[epix],
|
|
[define([libcap],concat([-L],libdestdir,[ ],libcap))])
|
|
ifelse(os,[epix],
|
|
[define([libafp],concat([-L],libdestdir,[ ],libafp))])
|
|
ifelse(os,[epix],
|
|
[define([libafpc],concat([-L],libdestdir,[ ],libafpc))])
|
|
ifelse(os,[solaris],
|
|
[define([libcap],concat([-L],libdestdir,[ ],libcap))])
|
|
ifelse(os,[solaris],
|
|
[define([libafp],concat([-L],libdestdir,[ ],libafp))])
|
|
ifelse(os,[solaris],
|
|
[define([libafpc],concat([-L],libdestdir,[ ],libafpc))])
|
|
ifelse(os,[netbsd],
|
|
[define([libcap],concat([-L],libdestdir,[ ],libcap))])
|
|
ifelse(os,[netbsd],
|
|
[define([libafp],concat([-L],libdestdir,[ ],libafp))])
|
|
ifelse(os,[netbsd],
|
|
[define([libafpc],concat([-L],libdestdir,[ ],libafpc))])
|
|
ifelse(os,[freebsd],
|
|
[define([libcap],concat([-L],libdestdir,[ ],libcap))])
|
|
ifelse(os,[freebsd],
|
|
[define([libafp],concat([-L],libdestdir,[ ],libafp))])
|
|
ifelse(os,[freebsd],
|
|
[define([libafpc],concat([-L],libdestdir,[ ],libafpc))])
|
|
# any special libraries
|
|
define([libspecial],[])
|
|
ifelse(os,[ultrix40],[
|
|
define([libspecial],concat(libspecial,[ -lauth]))])
|
|
ifelse(os,[osf1],[
|
|
define([libspecial],concat(libspecial,[ -lsecurity]))])
|
|
ifelse(os,[xenix5],[
|
|
define([libspecial],concat(libspecial,[ -lsocket]))])
|
|
ifelse(os,[drsnx],[
|
|
define([libspecial],concat(libspecial,[ -lucb]))])
|
|
ifelse(os,[uts],[
|
|
define([libspecial],concat(libspecial,[ -lsocket -lbsd -la]))])
|
|
ifelse(os,[dynix],[
|
|
define([libspecial],concat(libspecial,[ -lseq]))])
|
|
ifelse(os,[irix],[
|
|
define([libspecial],concat(libspecial,[ -lbsd]))])
|
|
ifelse(os,[aix],[
|
|
define([libspecial],concat(libspecial,[ -lbsd]))])
|
|
ifelse(os,[aux],[
|
|
define([libspecial],concat(libspecial,[ -lat -lbsd]))])
|
|
ifelse(os,[hpux],[
|
|
define([libspecial],concat(libspecial,[ -lBSD -lndbm]))])
|
|
ifelse(os,[epix],[
|
|
define([libspecial],concat(libspecial,[ -lc -lsec]))])
|
|
ifelse(os,[386bsd],[
|
|
define([libspecial],concat(libspecial,[ -lrpc]))])
|
|
ifelse(os,[netbsd],[
|
|
define([libspecial],concat(libspecial,[ -lcrypt]))])
|
|
ifelse(os,[freebsd],[
|
|
define([libspecial],concat(libspecial,[ -lcrypt]))])
|
|
ifelse(os,[bsdi],[
|
|
define([libspecial],concat(libspecial,[ -lrpc -lkvm]))])
|
|
ifelse(os,[linux],[
|
|
define([libspecial],concat(libspecial,[ -lgdbm]))])
|
|
ifelse(os,[solaris],[
|
|
define([libspecial],concat(libspecial,[ -lsocket -lnsl ]))])
|
|
# rutgers specific
|
|
define([libru],[])
|
|
ifdef([rutgersdef], [
|
|
ifelse(os,[solaris],[
|
|
define([libru],concat(libru,[ -L/usr/local/lib -R/usr/local/lib -lru ]))],[
|
|
define([libru],concat(libru,[ -lru ]))])])
|
|
|
|
#
|
|
# special configurations for individual source files
|
|
#
|
|
|
|
#
|
|
# Aufs: see applications/aufs/INSTALLATION
|
|
#
|
|
# WARNING: OS DEPENDENT
|
|
# define([smartunixfinderinfo],1)
|
|
#
|
|
# Set -DNONLXLATE, -DFULL_NCS_SUPPORT, -DGGTYPE="gid_t" or -DNOCHGRPEXEC
|
|
# in m4.features
|
|
# Others: USESTATFS, USEGETMNT, USECHOWN, USEQUOTA, USESUNQUOTA, USEBSDQUOTA
|
|
# are autoconfigured
|
|
define([aufsosdefs],[aufsosflags()])
|
|
|
|
#
|
|
# lib/cap/authenticate.c: configuration file
|
|
#
|
|
define([authconfig],concat([\"],etcdest,[/],[cap.auth],[\"]))
|
|
|
|
#
|
|
# lwsrv: see applications/lwsrv/README
|
|
#
|
|
# lwflags and simpleflags are now defined in m4.features
|
|
|
|
#
|
|
# lwrename: set name of file containing list of printers to be renamed
|
|
#
|
|
define([lwrenamefile],concat([\"],caplibdestdir,[/lwrename.list\"]))
|
|
|
|
#
|
|
# papif: see applications/papif/README
|
|
#
|
|
# uncomment and set to right location to turn on printing "plain text files"
|
|
# define([pstextloc],[[\"/usr/local/lib/ps/pstext\"]])
|
|
#
|
|
# uncomment and set to right location to turn on page reversal
|
|
# define([psrevloc],[[\"/usr/local/lib/ps/psrev\"]])
|
|
#
|
|
# Valid are:
|
|
# -DVERBOSELOG - default (set =0 to turn off)
|
|
# -DNO_STRUCT - default is on (structured)
|
|
# -DNOACCT - default is on (accounting)
|
|
# -DIDLESTUFF - default is off
|
|
# -DSFLOWQ - default is 8 (min 1, max 8)
|
|
# -DRFLOWQ - default is 8 (min 1, max 8)
|
|
# -DATPRESPONSETIMEOUT - default is 120 (2 minutes) - in seconds
|
|
# -DWATCHTIME - default is 10 seconds (in seconds)
|
|
# -DDEBUG - default is off
|
|
# -DSTRIPCONTROLD - default is off
|
|
# -DMAPCRTOLF - default is off
|
|
# -DMACUSER - default is off (need LPD_JOB environment variable in lpd)
|
|
# -DPLP - Use with PLP rather than Berkeley lpd
|
|
# see papif README file for explanations of the above
|
|
# The following defines are recommended for System V lp printers (vs. bsd lpd)
|
|
# -DWATCHTIME=0 (no status) -DNOACCT
|
|
define([papflags],[-DMACUSER])
|
|
EOT1
|
|
if [ "${lpd}" = "lp" ]; then
|
|
echo "define([papflags],concat(papflags,[ -DWATCHTIME=0 -DNOACCT]))"
|
|
else
|
|
echo "define([papflags],concat(papflags,[ -DIDLESTUFF]))"
|
|
fi
|
|
echo
|
|
echo "# Set -DBANNERFIRST if you want the banner page to come out as the"
|
|
echo "# first page instead of the last page "
|
|
echo "# Set -DBANNERLAST if want it last"
|
|
echo "# Set -DPSBANNER if you want a custom PostScipt Banner (must specify"
|
|
echo "# short banners in printcap). This still defaults to regular banners"
|
|
echo "# Add -DCHARGEBANNER if you want to charge the banner page to the user"
|
|
echo "# on system V - there is no accounting, so leave blank"
|
|
if [ "${lpd}" = "lp" ]; then
|
|
echo "define([papbanner],[])"
|
|
else
|
|
echo "define([papbanner],[-DCHARGEBANNER])"
|
|
fi
|
|
${PCAT} <<\EOT3
|
|
|
|
# for cap.printers - uncomment and change the following line to point
|
|
# papif, et. al. to a location other than /etc/cap.printers. (Note:
|
|
# line below would set it to $etcdest/cap.printers)
|
|
# define([capprinters],concat([\"],etcdest,[/],[cap.printers],[\"]))
|
|
ifdef([columbia],
|
|
[define([capprinters],concat([\"],etcdest,[/],[cap.printers],[\"]))])
|
|
# for atalkdbm - allows change following line(s) to modify atalk.local
|
|
# (probably shouldn't). Remember that atalk.local is expected to
|
|
# be in etcdest
|
|
define([atalklocal],concat([\"],etcdest,[/],[atalk.local],[\"]))
|
|
define([etalklocal],concat([\"],etcdest,[/],[etalk.local],[\"]))
|
|
define([configdir],concat([\"],etcdest,[\"]))
|
|
define([uabpidfile],concat([\"],caplibdestdir,[/],[uab.pid],[\"]))
|
|
define([uabbrdescr],concat([\"],caplibdestdir,[/],[bridge_desc],[\"]))
|
|
|
|
# in case you want to globally change the c compiler
|
|
EOT3
|
|
echo "define([thecompiler],[${ccompiler}])"
|
|
${PCAT} <<\EOT4
|
|
define([theloader],[ld])
|
|
define([theinstaller],[cp])
|
|
|
|
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
# END OF CONFIGABLE OPTIONS #
|
|
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
# You should only edit past here if you are "porting"
|
|
# Automatics
|
|
define([osname],[Unknown])
|
|
ifelse(os,[ultrix12],[define([osname],[Ultrix 1.2])])
|
|
ifelse(os,[ultrix20],[define([osname],[Ultrix 2.0])])
|
|
ifelse(os,[ultrix40],[define([osname],[Ultrix 4.0])])
|
|
ifelse(os,[osf1],[define([osname],[OSF/1])])
|
|
ifelse(os,[aux],[define([osname],[A/UX])])
|
|
ifelse(os,[sunos],[define([osname],[SunOS])])
|
|
ifelse(os,[solaris],[define([osname],[Solaris 2.x in native SVR4 mode])])
|
|
ifelse(os,[encore],[define([osname],[Encore Umax])])
|
|
ifelse(os,[hpux],[define([osname],[HP-UX (for 9000 series)])])
|
|
ifelse(os,[uts],[define([osname],[Amdahl UTS])])
|
|
ifelse(os,[bsd],[define([osname],[Standard BSD])])
|
|
ifelse(os,[pyr],[define([osname],[Pyramid in BSD universe])])
|
|
ifelse(os,[xenix5],[define([osname],[SCO Xenix System V])])
|
|
ifelse(os,[aix],[define([osname],[IBM AIX System V])])
|
|
ifelse(os,[next],[define([osname],[NeXT/MACH])])
|
|
ifelse(os,[dynix],[define([osname],[Sequent Balance])])
|
|
ifelse(os,[irix],[define([osname],[Silicon Graphics IRIS/IRIX])])
|
|
ifelse(os,[newsos],[define([osname],[Sony NEWS])])
|
|
ifelse(os,[drsnx],[define([osname],[ICL DRS])])
|
|
ifelse(os,[epix],[define([osname],[Control Data EP/IX])])
|
|
ifelse(os,[386bsd],[define([osname],[386/BSD etc])])
|
|
ifelse(os,[netbsd],[define([osname],[NetBSD 1.0])])
|
|
ifelse(os,[freebsd],[define([osname],[FreeBSD])])
|
|
ifelse(os,[bsdi],[define([osname],[BSD/386])])
|
|
ifelse(os,[domainosbsd],[define([osname],[HP/Apollo Domain BSD 4.3])])
|
|
#
|
|
define([cflags],ifdef([selfdefinetypes],[-D_TYPES],[]))
|
|
define([cflags],concat(cflags,ifdef([usebyteswap],[ -DBYTESWAPPED],[])))
|
|
define([cflags],concat(cflags,ifdef([usephase2],[ -DPHASE2],[])))
|
|
define([bigcflags],ifelse(os,[hpux],[]))
|
|
# The encore optimiser is slightly over zealous
|
|
ifelse(os,[encore],[define([cflags],concat(cflags,[ -Dencore]))],[
|
|
define([cflags],concat(cflags,[ -O]))])
|
|
ifelse(os,[pyr],[
|
|
define([cflags],concat(cflags,[ -q]))])
|
|
ifelse(os,[next],[
|
|
define([cflags],concat(cflags,[ -DNeXT -DADDRINPACK]))])
|
|
ifelse(os,[xenix5],[
|
|
define([cflags],concat(cflags,[ -Dxenix5 -I$I -DLAI_TCP -Di386]))])
|
|
ifelse(os,[aix],[
|
|
define([cflags],concat(cflags,[ -DAIX -DUSETIMES -DNOWAIT3 -DUSEDIRENT]))])
|
|
ifelse(os,[solaris],[
|
|
define([cflags],concat(cflags,[ -DSOLARIS]))])
|
|
ifelse(os,[uts],[
|
|
define([cflags],concat(cflags,[ -eft ]))])
|
|
ifelse(os,[irix],[
|
|
define([cflags],concat(cflags,[ -cckr -D_BSD_COMPAT]))])
|
|
ifelse(os,[drsnx],[
|
|
define([cflags],concat(cflags,[ -DNOWAIT3]))])
|
|
ifelse(os,[epix],[
|
|
define([cflags],concat(cflags,[ -DEPIX]))])
|
|
ifelse(os,[osf1],[
|
|
define([cflags],concat(cflags,[ -DUSEDIRENT]))])
|
|
ifelse(os,[netbsd],[
|
|
define([cflags],concat(cflags,[ -D__386BSD__]))])
|
|
ifelse(os,[bsdi],[
|
|
define([cflags],concat(cflags,[ -D__386BSD__]))])
|
|
ifelse(os,[linux],[
|
|
define([cflags],concat(cflags,[ -DUSE_GDBM]))])
|
|
|
|
# was used for nbp, but found we needed more... leave in case
|
|
define([nbpflags],[])
|
|
define([lflags],[])
|
|
define([mflags],[])
|
|
|
|
# aux's c compiler isn't nice - it doesn't have a preprocessor
|
|
# definition for aux. So, let's invent one. Also turn on -n
|
|
# for shared code.
|
|
ifelse(os,[aux],[
|
|
define([cflags],concat(cflags,[ -n -Daux]))
|
|
define([lflags],concat(lflags,[ -n]))])
|
|
|
|
# for NetBSD 1.0 on 68k strip symbols to avoid ld error on some progs
|
|
ifelse(os,[netbsd],[define([lflags],concat(lflags,[ -s]))])
|
|
|
|
# use the transitional option of the C compiler - interpret as K&R C, not ANSI
|
|
ifelse(os,[drsnx],[
|
|
define([cflags],concat(cflags,[ -Xt -Ddrsnx]))])
|
|
|
|
# check to see if we need sysvinstall usage
|
|
ifelse(os,[hpux6],[define([sysvinstall],[yes])],
|
|
os,[irix3],[define([sysvinstall],[yes])])
|
|
|
|
# or if we really want to use install
|
|
# ifelse(os,[someOS], [define([theinstaller],[install])])
|
|
|
|
# for cap library
|
|
# Valid are:
|
|
# NOFFS - no ffs function defined, fake it out
|
|
# LOCALTIME_GTOD - uses pd localtime, but gettimeofday always reads
|
|
# disk based time of day. Always defined for AUX for now. Probably
|
|
# needs to be changed for versions of Aux after 1.0
|
|
# NORECVMSG - no recvmsg in system (fake it out)
|
|
# NOSENDMSG - no recvmsg in system (fake it out)
|
|
define([caposdefs],
|
|
concat( ifdef([X_NOFFS],[ -DNOFFS],[]),
|
|
ifelse(os,[aux],[ -DLOCALTIME_GTOD],[]),
|
|
ifdef([X_NORECVMSG], [ -DNORECVMSG],[]),
|
|
ifdef([X_NOSENDMSG], [ -DNOSENDMSG],[])))
|
|
# for afp library
|
|
# two cases for X_LOCKF - if lockf isn't defined
|
|
# first: X_FCNTLLOCKF is defined, so just note that lockf uses fcntl.h
|
|
# second: " " isn't defined so define no lockf
|
|
# we "know" that flock() was hiding in libbsd.a under aix
|
|
define([afposdefs],
|
|
concat( ifdef([X_FLOCK],[], ifelse(os,[aix],[],[ -DNOFLOCK])),
|
|
ifdef([X_LOCKF],[],
|
|
[ifdef([X_FCNTLLOCKF],[ -DLOCKFUSESFCNTL],[ -DNOLOCKF])])))
|
|
# for aufs
|
|
define([aufsosdefs],
|
|
concat(aufsosdefs,
|
|
ifdef([X_STATFS],[ -DUSESTATFS],[]),
|
|
ifdef([X_GETMNT],[ -DUSEGETMNT],[]),
|
|
ifdef([X_QUOTA],[ -DUSEQUOTA],[]),
|
|
ifdef([X_SUNQUOTA],[ -DUSESUNQUOTA],[]),
|
|
ifdef([X_BSDQUOTA],[ -DUSEBSDQUOTA],[]),
|
|
ifelse(os,[irix],[ -DNOVFORK]),
|
|
ifelse(os,[aix],[ -DNOVFORK -DUSECHOWN],[])))
|
|
|
|
# if no ranlib (or fakeout like hpux) and need to order libaries
|
|
ifelse(os,[dummy], [define(uselordertsort,[1])],
|
|
os,[aux], [define(uselordertsort,[1])],
|
|
os,[solaris], [define(uselordertsort,[1])],
|
|
os,[uts], [define(uselordertsort,[1])],
|
|
os,[drsnx], [define(uselordertsort,[1])],
|
|
os,[irix], [define(uselordertsort,[1])])
|
|
|
|
# lw config
|
|
define([lwflags],
|
|
concat(lwflags,
|
|
ifdef([fastether],[ -DSFLOWQ=1],[]),
|
|
ifelse(os,[aix],[],[])))
|
|
|
|
# more papif config
|
|
define([papflags],
|
|
concat(papflags,
|
|
ifelse(os,[irix],[ -DNOVFORK]),
|
|
ifelse(os,[aix],[ -DNOVFORK],[])))
|
|
|
|
#NBPFLAGS = nbpflags()
|
|
#SPECCFLAGS = specialcflags()
|
|
#BIGCFLAGS = bigcflags()
|
|
#CFLAGS = cflags()
|
|
#LFLAGS = lflags()
|
|
#AFPOSDEFS = afposdefs()
|
|
#AUFSOSDEFS = aufsosdefs()
|
|
|
|
ifdef([debug],[
|
|
define([build_here],1)
|
|
# location of atalk.local, etc.
|
|
define([etcdest],concat(cwd,[[[/etc]]]))
|
|
])
|
|
|
|
ifdef([includef],[
|
|
# location of include files
|
|
define([includedir],[cwd])
|
|
define([cflags],concat(cflags,[ -I],includedir))
|
|
])
|
|
|
|
ifdef([build_here],[
|
|
# location of include files
|
|
define([includedir],[cwd])
|
|
# location of des subroutine source (see lib/afp/README)
|
|
define([desloc],[[../../extras]])
|
|
# location of user cap programs
|
|
define([capdestdir],concat(cwd,[[[/bin]]]))
|
|
# location of cap "server" programs (aufs, lwsrv, papif, uab etc.)
|
|
define([capsrvrdestdir],concat(cwd,[[[/bin]]]))
|
|
# location of some cap data files
|
|
define([caplibdestdir],concat(cwd,[[[/bin]]]))
|
|
# location of cap libraries
|
|
define([libdestdir],concat(cwd,[[[/lib]]]))
|
|
# cap library names
|
|
define([caplib],[[libcap.a]])
|
|
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],[\"]))
|
|
define([cflags],concat(cflags,[ -I],includedir))
|
|
define([atalklocal],concat([\"],etcdest,[/],[atalk.local],[\"]))
|
|
define([etalklocal],concat([\"],etcdest,[/],[etalk.local],[\"]))
|
|
define([configdir],concat([\"],etcdest,[\"]))
|
|
])
|
|
|
|
define([datestring],maketemp(/tmp/capcXXXXXX))
|
|
syscmd(date > datestring())
|
|
##########MARKER##########
|
|
# Makefile autoconfigured for ...
|
|
[#] osname() system on include(datestring())
|
|
syscmd(rm -f datestring())
|
|
|
|
MFLAGS=mflags()
|
|
LFLAGS=lflags()
|
|
CC=thecompiler()
|
|
LD=theloader()
|
|
SHELL=/bin/sh
|
|
INSTALLER=theinstaller()
|
|
EOT4
|
|
exec > /dev/tty
|
|
echo "${of} configured"
|
|
echo
|
|
echo "Getting ready to create the makefiles"
|
|
echo
|
|
echo "You can (re)generate the makefiles at any time by typing:"
|
|
echo "gen.makes (or sh gen.makes) from the top level directory."
|
|
echo
|
|
echo "You need to build new makefiles if you change the user"
|
|
echo "options by editing the 'm4.setup' or 'm4.features' files"
|
|
echo "or have run 'make spotless' to remove all {m,M}akefiles."
|
|
echo
|
|
${PROMPT} "[Hit carriage return to continue] "
|
|
read ans
|
|
echo
|
|
${USESH} ./gen.makes
|
|
echo
|
|
case ${os} in
|
|
"aux")
|
|
echo "WARNING: remove old 'Makefiles' by typing: 'make spotless'"
|
|
echo "then re-run 'gen.makes' to create new small-m 'makefiles'"
|
|
echo
|
|
;;
|
|
esac
|
|
echo "CAP Configuration complete!"
|
|
echo
|
|
echo "You can now start the build process with 'make programs'"
|
|
echo "(but it would be best to read the documentation in 'doc')."
|
|
echo
|