shell bypass 403
# ========================================================================
# Copyright 1988-2007 University of Washington
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
#
# ========================================================================
# Program: C client makefile
#
# Author: Mark Crispin
# Networks and Distributed Computing
# Computing & Communications
# University of Washington
# Administration Building, AG-44
# Seattle, WA 98195
# Internet: MRC@CAC.Washington.EDU
#
# Date: 11 May 1989
# Last Edited: 17 December 2007
# Command line build parameters
EXTRAAUTHENTICATORS=
EXTRADRIVERS=mbox
PASSWDTYPE=std
SSLTYPE=nopwd
IP=4
# The optimization level here for GCC ports is set here for a reason. It's
# to get you to read this text.
# The general concensus seems to be that -O2 is the one to use.
# Over the years, I've been told to use many different settings, including -O6.
# In recent versions of GCC [as of 2/2005], -O6 generates bad code that, among
# other ill effects, causes infinite loops.
# -O3 seems to be safe, but empirical observation from our local expert
# indicates that in some (many?) cases -O3 code runs slower than -O2.
GCCOPTLEVEL= -O2
# Try to have some consistency in GCC builds. We want optimization, but we
# also want to be able to debug.
GCCCFLAGS= -g $(GCCOPTLEVEL) -pipe -fno-omit-frame-pointer
GCC4CFLAGS= $(GCCCFLAGS) -Wno-pointer-sign
# Extended flags needed for SSL. You may need to modify.
SSLDIR=/usr/local/openssl-1.0.0
SSLCERTS=$(SSLDIR)/certs
SSLKEYS=$(SSLCERTS)
SSLINCLUDE=$(SSLDIR)/include
SSLLIB=$(SSLDIR)/lib
SSLCRYPTO=-lcrypto
# Older versions of MIT Kerberos also have a libcrypto. If so, you may need
# to use this instead
#SSLCRYPTO=$(SSLLIB)/libcrypto.a
# RSA Security Inc. released the RSA public key encryption algorithm into
# the public domain on September 6, 2000. There is no longer any need to
# use RSAREF.
SSLRSA= # -lRSAglue -lrsaref
SSLCFLAGS= -I$(SSLINCLUDE) -I$(SSLINCLUDE)/openssl\
-DSSL_CERT_DIRECTORY=\"$(SSLCERTS)\" -DSSL_KEY_DIRECTORY=\"$(SSLKEYS)\"
SSLLDFLAGS= -L$(SSLLIB) -lssl $(SSLCRYPTO) $(SSLRSA)
# Extended flags needed for non-standard passwd types. You may need to modify.
AFSDIR=/usr/afsws
AFSCFLAGS=-I$(AFSDIR)/include
AFSLIB=$(AFSDIR)/lib
AFSLDFLAGS=-L$(AFSLIB)/afs -L$(AFSLIB) -L$(AFSDIR)/domestic/lib\
-lkauth -lprot -lubik -lauth -lrxkad -lrx -llwp -ldes -lcom_err\
$(AFSLIB)/afs/util.a -laudit -lsys
# AFSLDFLAGS may also need -L/usr/ucblib -lucb
DCECFLAGS= -DDCE_MINIMAL -DPASSWD_OVERRIDE=\"/opt/pop3/passwd/passwd\"
DCELDFLAGS= -ldce
PAMLDFLAGS= -lpam -ldl
# Build parameters normally set by the individual port
CHECKPW=std
LOGINPW=std
SIGTYPE=bsd
CRXTYPE=std
ACTIVEFILE=/usr/lib/news/active
SPOOLDIR=/usr/spool
MAILSPOOL=$(SPOOLDIR)/mail
NEWSSPOOL=$(SPOOLDIR)/news
RSHPATH=/usr/ucb/rsh
MD5PWD=/etc/cram-md5.pwd
# Tries one of the test alternatives below if not specified.
LOCKPGM=
# Test alternatives if LOCKPGM not specified
LOCKPGM1=/usr/libexec/mlock
LOCKPGM2=/usr/sbin/mlock
LOCKPGM3=/etc/mlock
# Default formats for creating new mailboxes and for empty mailboxes in the
# default namespace; must be set to the associated driver's prototype.
#
# The CREATEPROTO is the default format for new mailbox creation.
# The EMPTYPROTO is the default format for handling zero-byte files.
#
# Normally, this is set by the individual port.
#
# NOTE: namespace formats (e.g. mh and news) can not be set as a default format
# since they do not exist in the default namespace. Also, it is meaningless to
# set certain other formats (e.g. mbx, mx, and mix) as the EMPTYPROTO since
# these formats can never be empty files.
CREATEPROTO=unixproto
EMPTYPROTO=unixproto
# Commands possibly overriden by the individual port
ARRC=ar rc
CC=cc
LN=ln -s
RANLIB=ranlib
# Standard distribution build parameters
DEFAULTAUTHENTICATORS=ext md5 pla log
#
# mh needs to be after any other directory format drivers (such as mx or mix)
# since otherwise mh will seize any directory that is under the mh path.
# However, mh needs to be before any sysinbox formats (such as mmdf or unix)
# since otherwise INBOX won't work correctly when mh_allow_inbox is set.
#
DEFAULTDRIVERS=imap nntp pop3 mix mx mbx tenex mtx mh mmdf unix news phile
CHUNKSIZE=65536
# Normally no need to change any of these
ARCHIVE=c-client.a
BINARIES=osdep.o mail.o misc.o newsrc.o smanager.o utf8.o utf8aux.o siglocal.o \
dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o
CFLAGS=-g
CAT=cat
MAKE=make
MV=mv
RM=rm -rf
SH=sh
# Primary build command
BUILD=$(MAKE) build EXTRACFLAGS='$(EXTRACFLAGS)'\
EXTRALDFLAGS='$(EXTRALDFLAGS)'\
EXTRADRIVERS='$(EXTRADRIVERS)' EXTRAAUTHENTICATORS='$(EXTRAAUTHENTICATORS)'\
PASSWDTYPE=$(PASSWDTYPE) SSLTYPE=$(SSLTYPE) IP=$(IP)
# Here if no make argument established
missing: osdep.h
$(MAKE) all `$(CAT) SPECIALS`
osdep.h:
@echo You must specify what type of system
@false
# Current ports
a32: # AIX 3.2 for RS/6000
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CRXTYPE=nfs \
SPOOLDIR=/var/spool \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="-g -Dunix=1 -D_BSD" \
BASELDFLAGS="-lbsd"
a41: # AIX 4.1 for RS/6000
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CHECKPW=a41 CRXTYPE=nfs \
SPOOLDIR=/var/spool \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="-g -Dunix=1 -D_BSD -qro -qroconst" \
BASELDFLAGS="-ls"
aix: # AIX/370
@echo You are building for AIX on an S/370 class machine
@echo If you want AIX on an RS/6000 you need to use a32 or a41 instead!
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
BASECFLAGS="-g" \
BASELDFLAGS="-lbsd"
aos: # AOS for RT
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
BASECFLAGS="-g -Dconst="
art: # AIX 2.2.1 for RT
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=sv4 \
SPOOLDIR=/var \
ACTIVEFILE=/usr/local/news/control/active \
RSHPATH=/bin/rsh \
BASECFLAGS="-g -Dconst= -Dvoid=char" \
RANLIB=true
asv: # Altos SVR4
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=sv4 LOGINPW=old \
ACTIVEFILE=/usr/spool/news/active \
RSHPATH=/usr/bin/rcmd \
BASECFLAGS="-Dconst= -DSIGSTOP=SIGKILL" \
BASELDFLAGS="-lsocket -lrpc -lgen -lcrypt -lxenix" \
RANLIB=true
aux: # A/UX
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
MAILSPOOL=/usr/mail \
BASECFLAGS="-g -B/usr/lib/big/ -Dvoid=char -Dconst=" \
RANLIB=true ARRC="ar -rc"
bs3: # BSD/i386 3.0 or higher
$(BUILD) `$(CAT) SPECIALS` OS=bsi \
CHECKPW=bsi LOGINPW=bsi CRXTYPE=nfs \
SPOOLDIR=/var NEWSSPOOL=/var/news/spool \
ACTIVEFILE=/var/news/etc/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)" CC=shlicc
bsd: # BSD UNIX
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
BASECFLAGS="-g -Dconst="
bsf: # FreeBSD
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CRXTYPE=nfs \
SPOOLDIR=/var \
ACTIVEFILE=/usr/local/news/lib/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)" \
BASELDFLAGS="-lcrypt"
bsi: # BSD/i386
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
SPOOLDIR=/var NEWSSPOOL=/var/news/spool \
ACTIVEFILE=/var/news/etc/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)"
bso: # OpenBSD
$(BUILD) `$(CAT) SPECIALS` OS=bsi \
SIGTYPE=psx CRXTYPE=nfs \
SPOOLDIR=/var \
ACTIVEFILE=/usr/local/news/lib/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)"
cvx: # Convex
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
BASECFLAGS="-O -ext -Dconst="
cyg: # Cygwin - note that most local file drivers don't work!!
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
DEFAULTDRIVERS="imap nntp pop3 mbx unix phile" \
SIGTYPE=psx CHECKPW=cyg LOGINPW=cyg CRXTYPE=std \
SPOOLDIR=/var \
ACTIVEFILE=/usr/local/news/lib/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)" \
BASELDFLAGS="-lcrypt" \
CC=gcc
d-g: # Data General DG/UX
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=sv4 CRXTYPE=nfs \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
ACTIVEFILE=/local/news/active \
RSHPATH=/usr/bin/remsh \
BASECFLAGS="-g -Dconst=" \
BASELDFLAGS="-lnsl -lsocket" \
RANLIB=true
d54: # Data General DG/UX 5.4
$(BUILD) `$(CAT) SPECIALS` OS=d-g \
SIGTYPE=sv4 CRXTYPE=nfs \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
ACTIVEFILE=/local/news/active \
RSHPATH=/usr/bin/remsh \
BASECFLAGS="-g -Dconst=" \
BASELDFLAGS="-lnsl -lsocket" \
RANLIB=true
dpx: # Bull DPX/2
$(BUILD) `$(CAT) SPECIALS` OS=sv4 \
SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 \
RSHPATH=/usr/bin/remsh \
BASECFLAGS="-Dconst= -DSYSTEM5 -DSHORT_IDENT" \
BASELDFLAGS="-linet" \
RANLIB=true LN=ln
drs: # ICL DRS/NX
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 CRXTYPE=nfs \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
ACTIVEFILE=/var/lib/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="-O" \
BASELDFLAGS="-lsocket -lgen" \
RANLIB=true
do4: # Apollo Domain/OS sr10.4
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
BASECFLAGS="-A systype,bsd4.3 -D_APOLLO_SOURCE" \
RANLIB=true
dyn: # Dynix
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
BASECFLAGS="-g -Dconst="
epx: # EP/IX
$(BUILD) `$(CAT) SPECIALS` OS=sv4 \
SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
ACTIVEFILE=/usr/share/news/active \
RSHPATH=/usr/net/rsh \
BASECFLAGS="-g -systype svr4" \
BASELDFLAGS="-lsocket -lnsl -lgen" \
RANLIB=true
ga4: # GCC AIX 4.1 for RS/6000
$(BUILD) `$(CAT) SPECIALS` OS=a41 \
SIGTYPE=psx CHECKPW=a41 CRXTYPE=nfs \
SPOOLDIR=/var/spool \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="-g -Dunix=1 -D_BSD" \
BASELDFLAGS="-ls"
gas: # GCC Altos SVR4
$(BUILD) `$(CAT) SPECIALS` OS=asv \
SIGTYPE=sv4 LOGINPW=old \
ACTIVEFILE=/usr/spool/news/active \
RSHPATH=/usr/bin/rcmd \
BASECFLAGS="-g -O -DALTOS_SYSTEM_V -DSIGSTOP=SIGKILL" \
BASELDFLAGS="-lsocket -lrpc -lgen -lcrypt -lxenix" \
RANLIB=true CC=gcc
gh9: # GCC HP-UX 9.x
$(BUILD) `$(CAT) SPECIALS` OS=hpp \
SIGTYPE=psx CRXTYPE=nfs \
MAILSPOOL=/usr/mail \
RSHPATH=/usr/bin/remsh \
BASECFLAGS="$(GCCCFLAGS)" \
RANLIB=true CC=gcc
ghp: # GCC HP-UX 10.x
$(BUILD) `$(CAT) SPECIALS` OS=hpp \
SIGTYPE=psx CRXTYPE=nfs \
SPOOLDIR=/var \
ACTIVEFILE=/var/news/active \
RSHPATH=/usr/bin/remsh \
BASECFLAGS="$(GCCCFLAGS)" \
RANLIB=true CC=gcc
ghs: # GCC HP-UX with Trusted Computer Base
$(BUILD) `$(CAT) SPECIALS` OS=shp \
SIGTYPE=psx CHECKPW=sec CRXTYPE=nfs \
SPOOLDIR=/var \
ACTIVEFILE=/var/news/active \
RSHPATH=/usr/bin/remsh \
BASECFLAGS="$(GCCCFLAGS)" \
BASELDFLAGS="-lnet -lV3 -lsec" \
RANLIB=true CC=gcc
go5: # GCC 2.7.1 (95q4) SCO Open Server 5.0.x
$(BUILD) `$(CAT) SPECIALS` OS=sc5 \
SIGTYPE=psx CHECKPW=sec LOGINPW=sec \
CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
SPOOLDIR=/var/spool \
ACTIVEFILE=/var/lib/news/active \
RSHPATH=/usr/bin/rcmd \
BASECFLAGS="$(GCCCFLAGS) -I/usr/include -L/lib" \
BASELDFLAGS="-lsocket -lprot -lx -ltinfo -lm" \
RANLIB=true CC=gcc
gsc: # Santa Cruz Operation
$(BUILD) `$(CAT) SPECIALS` OS=sco \
SIGTYPE=sv4 CHECKPW=sec LOGINPW=sec \
CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
RSHPATH=/usr/bin/rcmd \
BASECFLAGS="$(GCCCFLAGS)" \
BASELDFLAGS="-lsocket -lprot -lcrypt_i -lx -los" \
RANLIB=true LN=ln CC=gcc
gsg: # GCC Silicon Graphics
$(BUILD) `$(CAT) SPECIALS` OS=sgi \
SIGTYPE=sv4 CRXTYPE=nfs \
MAILSPOOL=/usr/mail \
RSHPATH=/usr/bsd/rsh \
BASECFLAGS="$(GCCCFLAGS)" \
RANLIB=true CC=gcc
gso: os_sol.h # GCC Solaris
$(BUILD) `$(CAT) SPECIALS` OS=sol \
SIGTYPE=psx CHECKPW=psx CRXTYPE=nfs \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
ACTIVEFILE=/usr/share/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)" \
BASELDFLAGS="-lsocket -lnsl -lgen" \
RANLIB=true CC=gcc
gsu: # GCC SUN-OS
$(BUILD) `$(CAT) SPECIALS` OS=sun \
CRXTYPE=nfs \
BASECFLAGS="$(GCCCFLAGS)" \
BASELDFLAGS="-ldl" \
CC=gcc
gul: # GCC Ultrix
$(BUILD) `$(CAT) SPECIALS` OS=ult \
SIGTYPE=psx CHECKPW=ult CRXTYPE=nfs \
BASECFLAGS="$(GCCCFLAGS)" \
BASELDFLAGS="-lauth -lc" \
CC=gcc
h11: # HP-UX 11i
$(BUILD) `$(CAT) SPECIALS` OS=hpp \
SIGTYPE=psx CRXTYPE=nfs \
SPOOLDIR=/var \
ACTIVEFILE=/var/news/active \
RSHPATH=/usr/bin/remsh \
BASECFLAGS="-g -Ae" \
RANLIB=true
hpp: # HP-UX 9.x
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CRXTYPE=nfs \
MAILSPOOL=/usr/mail \
RSHPATH=/usr/bin/remsh \
BASECFLAGS="-g -Aa -D_HPUX_SOURCE" \
BASELDFLAGS="-lnet -lV3" \
RANLIB=true
hpx: # HP-UX 10.x
$(BUILD) `$(CAT) SPECIALS` OS=hpp \
SIGTYPE=psx CRXTYPE=nfs \
SPOOLDIR=/var \
ACTIVEFILE=/var/news/active \
RSHPATH=/usr/bin/remsh \
BASECFLAGS="-g -Ae" \
BASELDFLAGS="-lnet -lV3" \
RANLIB=true
isc: # Interactive
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
ACTIVEFILE=/var/spool/news/active \
BASECFLAGS="-Xp -D_SYSV3" \
BASELDFLAGS="-linet -lnsl_s -lgen -lx -lsec -liberty" \
RANLIB=true
lnp: # Linux Pluggable Authentication modules
$(BUILD) `$(CAT) SPECIALS` OS=slx \
SIGTYPE=psx CHECKPW=pam CRXTYPE=nfs \
SPOOLDIR=/var/spool \
ACTIVEFILE=/var/lib/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)" \
BASELDFLAGS="$(PAMLDFLAGS)"
lnx: # Linux non-shadow passwords
@echo You are building for traditional Linux *without* shadow
@echo passwords and with the crypt function in the C library.
@echo If your system has shadow passwords, or if crypt is not
@echo in the C library, you must use slx, sl4, or sl5 instead!
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CRXTYPE=nfs \
SPOOLDIR=/var/spool \
ACTIVEFILE=/var/lib/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)"
lyn: # LynxOS
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
RSHPATH=/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)" \
BASELDFLAGS=-lbsd \
CC=gcc
mct: # MachTen - CRXTYPE=nfs doesn't work (at least not on 2.2)
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SPOOLDIR=/var/spool \
BASECFLAGS="$(GCCCFLAGS)"
mnt: # Mint
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CRXTYPE=nfs \
SPOOLDIR=/var/spool \
ACTIVEFILE=/var/lib/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)"
neb: # NetBSD
$(BUILD) `$(CAT) SPECIALS` OS=bsi \
CRXTYPE=nfs \
SPOOLDIR=/var \
ACTIVEFILE=/var/db/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)" \
BASELDFLAGS="-lcrypt"
nec: # NEC UX
$(BUILD) `$(CAT) SPECIALS` OS=sv4 \
SIGTYPE=sv4 CHECKPW=sv4 \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
ACTIVEFILE=/var/news/lib/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="-g -Kopt=2 -KOlimit=2000" \
BASELDFLAGS="-lsocket -lnsl -lgen" \
RANLIB=true CC=/usr/abiccs/bin/cc
nto: # QNX Neutrino RTP
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
SPOOLDIR=/var/spool \
ACTIVEFILE=/var/lib/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="-g -O"
nxt: # NEXTSTEP
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
BASECFLAGS="$(GCCCFLAGS)"
nx3: # NEXTSTEP 3.0 single threaded
$(BUILD) `$(CAT) SPECIALS` OS=nxt \
CRXTYPE=nfs \
BASECFLAGS="$(GCCCFLAGS)"
echo "void malloc_singlethreaded (void);" >> linkage.h
echo " malloc_singlethreaded ();" >> linkage.c
osf: # OSF/1
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CRXTYPE=nfs \
SPOOLDIR=/var/spool \
BASECFLAGS="-g3 -w -O2 -Olimit 1500"
# Note: sia_become_user() used by LOGINPW=os4 doesn't seem to work right. The
# user doesn't get proper file access, and the process can't be killed.
os4: # OSF/1 (Digital UNIX) 4
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CHECKPW=os4 LOGINPW=os4 CRXTYPE=nfs \
SPOOLDIR=/var/spool \
BASECFLAGS="-g3 -w -std0 -O2"
osx: # Mac OS X
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCC4CFLAGS)"
ptx: # PTX
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CHECKPW=svo LOGINPW=sv4 CRXTYPE=nfs \
MAILSPOOL=/usr/mail \
RSHPATH=/usr/bin/resh \
BASECFLAGS="-Wc,-O3 -Wc,-seq -Dprivate=PRIVATE" \
BASELDFLAGS="-lseq -lsec -lsocket -linet -lnsl -lgen" \
RANLIB=true
pyr: # Pyramid
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
BASECFLAGS="-g -Dconst="
qnx: # QNX
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CHECKPW=psx LOGINPW=old \
RSHPATH=/usr/ucb/rsh \
BASECFLAGS="-Otax -g -Dunix=1 -D_POSIX_SOURCE" \
BASELDFLAGS="-g -N128k -llogin -lsocket -lunix"
s40: # SUN-OS 4.0
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
BASECFLAGS="-g -Dconst="
sc5: # SCO Open Server 5.0
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CHECKPW=sec LOGINPW=sec \
CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
SPOOLDIR=/var/spool \
ACTIVEFILE=/var/lib/news/active \
RSHPATH=/usr/bin/rcmd \
BASECFLAGS="-O3 -s -belf" \
BASELDFLAGS="-lsocket -lprot -lx -ltinfo -lm" \
RANLIB=true
sco: # Santa Cruz Operation
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=sv4 CHECKPW=sec LOGINPW=sec \
CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
RSHPATH=/usr/bin/rcmd \
BASECFLAGS="-O3" \
BASELDFLAGS="-lsocket -lprot -lcrypt_i -lx -los" \
RANLIB=true LN=ln
# Note: setting _POSIX_SOURCE doesn't seem to build it as of SGI IRIX 5.3
sgi: # Silicon Graphics
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=sv4 CRXTYPE=nfs \
MAILSPOOL=/usr/mail \
RSHPATH=/usr/bsd/rsh \
BASECFLAGS="-g3 -O2 -Olimit 8192" \
RANLIB=true
sg6: # Silicon Graphics, IRIX 6.5
MAKEFLAGS= $(BUILD) `$(CAT) SPECIALS` OS=sgi \
SIGTYPE=sv4 CRXTYPE=nfs \
MAILSPOOL=/usr/mail \
RSHPATH=/usr/bsd/rsh \
BASECFLAGS="-g3 -O2 -OPT:Olimit=0 -woff 1110,1116" \
RANLIB=true
# Note: Mark Kaesling says that setluid() isn't in HP-UX with SecureWare.
shp: # HP-UX with Trusted Computer Base
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CHECKPW=sec CRXTYPE=nfs \
SPOOLDIR=/var \
ACTIVEFILE=/var/news/active \
RSHPATH=/usr/bin/remsh \
BASECFLAGS="-g -Ae" \
BASELDFLAGS="-lnet -lV3 -lsec" \
RANLIB=true
slx: # Secure Linux
@echo You are building for libc6/glibc versions of Secure Linux
@echo If you want libc5 versions you must use sl5 instead!
@echo If you want libc4 versions you must use sl4 instead!
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CHECKPW=psx CRXTYPE=nfs \
SPOOLDIR=/var/spool \
ACTIVEFILE=/var/lib/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)" \
BASELDFLAGS="-lcrypt"
sl4: # Secure Linux using libc4
@echo You are building for libc4 versions of Secure Linux
@echo If you want libc6/glibc versions you must use slx instead!
@echo If you want libc5 versions you must use sl5 instead!
$(BUILD) `$(CAT) SPECIALS` OS=slx \
SIGTYPE=psx CHECKPW=psx CRXTYPE=nfs \
SPOOLDIR=/var/spool \
ACTIVEFILE=/var/lib/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)" \
BASELDFLAGS="-lshadow"
sl5: # Secure Linux using libc5
@echo You are building for libc5 versions of Secure Linux
@echo If you want libc6/glibc versions you must use slx instead!
@echo If you want libc4 versions you must use sl4 instead!
$(BUILD) `$(CAT) SPECIALS` OS=slx \
SIGTYPE=psx CHECKPW=psx CRXTYPE=nfs \
SPOOLDIR=/var/spool \
ACTIVEFILE=/var/lib/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="$(GCCCFLAGS)"
snx: # Siemens Nixdorf SINIX and Reliant UNIX
$(BUILD) `$(CAT) SPECIALS` OS=sv4 \
SIGTYPE=psx CHECKPW=sv4 \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
ACTIVEFILE=/usr/share/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="-g -D_SYS_CLOCK_H -Dconst=" \
BASELDFLAGS="-lsocket -lnsl -lgen" \
RANLIB=true
# Sorry about the -w, but the cretinous SUN Workshop Pro C compiler barfs on
# implicit casts between char and unsigned char.
soc: os_sol.h # Solaris with cc
$(BUILD) `$(CAT) SPECIALS` OS=sol \
SIGTYPE=psx CHECKPW=psx CRXTYPE=nfs \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
ACTIVEFILE=/usr/share/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="-g -O -w" \
BASELDFLAGS="-lsocket -lnsl -lgen" \
RANLIB=true CC=/opt/SUNWspro/bin/cc
# Note: It is a long and disgusting story about why cc is set to ucbcc. You
# need to invoke the C compiler so that it links with the SVR4 libraries and
# not the BSD libraries, otherwise readdir() will return the wrong information.
# Of all the names in the most common path, ucbcc is the only name to be found
# (on /usr/ccs/bin) that points to a suitable compiler. cc is likely to be
# /usr/ucb/cc which is absolutely not the compiler that you want. The real
# SVR4 cc is probably something like /opt/SUNWspro/bin/cc which is rarely in
# anyone's path.
#
# ucbcc is probably a link to acc, e.g. /opt/SUNWspro/SC4.0/bin/acc, and is
# the UCB C compiler using the SVR4 libraries.
#
# If ucbcc isn't on your system, then punt on the SUN C compiler and use gcc
# instead (the gso port instead of the sol port).
#
# If, in spite of all the above warnings, you choose to use the "soc" port
# instead of the "sol" port, be sure to check the behavior of the LIST command
# in imapd. Also, note that the "soc" port uses -O. If you want to use the
# real SVR4 compiler, you must use -O. If it works to compile with -O2, then
# cc is probably using the UCB compiler with BSD libraries, and will not build
# a good binary
#
# To recap:
# 1) The sol port is designed to be built using the UCB compiler using the
# SVR4 libraries. This compiler is "ucbcc", which is lunk to acc. You
# use -O2 as one of the CFLAGS.
# 2) If you build the sol port with the UCB compiler using the BSD libraries,
# you will get no error messages but you will get bad binaries (the most
# obvious symptom is dropping the first two characters return filenames
# from the imapd LIST command. This compiler also uses -O2, and is very
# often what the user gets from "cc". BEWARE!!!
# 3) If you build the sol port with the real SVR4 compiler, which is often
# hidden away or unavailable on many systems, then you will get errors
# from -O2 and you need to change that to -O. But you will get a good
# binary. However, you should try it with -O2 first, to make sure that
# you got this compiler and not the UCB compiler using BSD libraries.
sol: os_sol.h # Solaris
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CHECKPW=psx CRXTYPE=nfs \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
ACTIVEFILE=/usr/share/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="-g -O2" \
BASELDFLAGS="-lsocket -lnsl -lgen" \
RANLIB=true CC=ucbcc
sos: # Secure OSF/1
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CHECKPW=sce LOGINPW=sec CRXTYPE=nfs \
BASECFLAGS="-g3 -w -O2 -Olimit 1500" \
BASELDFLAGS="-lsecurity -laud"
ssn: # Secure SUN-OS
$(BUILD) `$(CAT) SPECIALS` OS=sun \
CHECKPW=ssn CRXTYPE=nfs \
BASECFLAGS="-g -Dconst=" \
BASELDFLAGS="-ldl"
sua: # Windows Vista Subsystem for UNIX Applications
$(BUILD) `$(CAT) SPECIALS` OS=sua \
SIGTYPE=psx CRXTYPE=nfs LOGINPW=old \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
ACTIVEFILE=/var/lib/news/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="-g -O2" \
BASELDFLAGS="-lcrypt"
sun: # SUN-OS
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
BASECFLAGS="-g -Dconst=" \
BASELDFLAGS="-ldl"
sv2: # SVR2
@echo You are being *very* optimistic!
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=sv4 LOGINPW=old \
MAILSPOOL=/usr/mail \
RSHPATH=/usr/bin/remsh \
BASECFLAGS="-Dconst= -DSYSTEM5 -DSHORT_IDENT -I/usr/ethernet/include" \
BASELDFLAGS="-lnet" \
RANLIB=true LN=ln
sv4: # SVR4
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
ACTIVEFILE=/usr/share/news/active \
RSHPATH=/usr/bin/resh \
BASECFLAGS="-g -Dconst=" \
BASELDFLAGS="-lsocket -lnsl -lgen" \
RANLIB=true
ult: # Ultrix
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
SIGTYPE=psx CHECKPW=ult CRXTYPE=nfs \
BASECFLAGS="-g3 -O2 -Olimit 1500 -Dconst=" \
BASELDFLAGS="-lauth -lc"
uw2: # UnixWare SVR4.2
$(BUILD) `$(CAT) SPECIALS` OS=sv4 \
SIGTYPE=sv4 CHECKPW=sv4 \
SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
ACTIVEFILE=/var/news/lib/active \
RSHPATH=/usr/bin/rsh \
BASECFLAGS="-g" \
BASELDFLAGS="-lsocket -lnsl -lgen" \
RANLIB=true
vul: # VAX Ultrix
$(BUILD) `$(CAT) SPECIALS` OS=ult \
SIGTYPE=psx CHECKPW=ult CRXTYPE=nfs \
BASECFLAGS="-O2 -Dconst=" \
BASELDFLAGS="-lauth -lc"
vu2: # VAX Ultrix 2.3, etc.
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
CRXTYPE=nfs \
BASECFLAGS="-O2 -Dconst= -Dvoid=char"
# Build it!
build: clean once $(ARCHIVE)
all: $(ARCHIVE)
$(ARCHIVE): $(BINARIES)
sh -c '$(RM) $(ARCHIVE) || true'
@$(CAT) ARCHIVE
@$(SH) ARCHIVE
.c.o:
`$(CAT) CCTYPE` -c `$(CAT) CFLAGS` $*.c
# Cleanup
clean:
sh -c '$(RM) auths.c crexcl.c ip_unix.c linkage.[ch] siglocal.c osdep*.[ch] *.o ARCHIVE *FLAGS *TYPE $(ARCHIVE) || true'
# Dependencies
dummy.o: mail.h misc.h osdep.h dummy.h
fdstring.o: mail.h misc.h osdep.h fdstring.h
flstring.o: mail.h misc.h osdep.h flstring.h
imap4r1.o: mail.h misc.h osdep.h imap4r1.h rfc822.h
mail.o: mail.h misc.h osdep.h rfc822.h linkage.h
mbx.o: mail.h misc.h osdep.h dummy.h
mh.o: mail.h misc.h osdep.h dummy.h
mix.o: mail.h misc.h osdep.h dummy.h
mx.o: mail.h misc.h osdep.h dummy.h
misc.o: mail.h misc.h osdep.h
mmdf.o: mail.h misc.h osdep.h pseudo.h dummy.h
mtx.o: mail.h misc.h osdep.h dummy.h
netmsg.o: mail.h misc.h osdep.h netmsg.h
news.o: mail.h misc.h osdep.h
newsrc.o: mail.h misc.h osdep.h newsrc.h
nntp.o: mail.h misc.h osdep.h netmsg.h smtp.h nntp.h rfc822.h
phile.o: mail.h misc.h osdep.h rfc822.h dummy.h
pseudo.o: pseudo.h
pop3.o: mail.h misc.h osdep.h rfc822.h
smanager.o: mail.h misc.h osdep.h
smtp.o: mail.h misc.h osdep.h smtp.h rfc822.h
rfc822.o: mail.h misc.h osdep.h rfc822.h
tenex.o: mail.h misc.h osdep.h dummy.h
unix.o: mail.h misc.h osdep.h unix.h pseudo.h dummy.h
utf8.o: mail.h misc.h osdep.h utf8.h tmap.c widths.c
utf8aux.o: mail.h misc.h osdep.h utf8.h
# OS-dependent
osdep.o:mail.h misc.h env.h fs.h ftl.h nl.h tcp.h \
osdep.h env_unix.h tcp_unix.h \
osdep.c env_unix.c fs_unix.c ftl_unix.c nl_unix.c tcp_unix.c ip_unix.c\
auths.c crexcl.c flockcyg.c flocklnx.c flocksim.c fsync.c \
gethstid.c getspnam.c \
gr_wait.c gr_wait4.c gr_waitp.c \
kerb_mit.c \
auth_ext.c auth_gss.c auth_log.c auth_md5.c auth_pla.c \
pmatch.c scandir.c setpgrp.c strerror.c truncate.c write.c \
memmove.c memmove2.c memset.c \
tz_bsd.c tz_nul.c tz_sv4.c \
write.c sslstdio.c \
strerror.c strpbrk.c strstr.c strtok.c strtoul.c \
OSCFLAGS
@echo Building OS-dependent module
@echo If you get No such file error messages for files x509.h, ssl.h,
@echo pem.h, buffer.h, bio.h, and crypto.h, that means that OpenSSL
@echo is not installed on your system. Either install OpenSSL first
@echo or build with command: make `$(CAT) OSTYPE` SSLTYPE=none
`$(CAT) CCTYPE` -c `$(CAT) CFLAGS` `$(CAT) OSCFLAGS` -c osdep.c
osdep.c: osdepbas.c osdepckp.c osdeplog.c osdepssl.c
$(CAT) osdepbas.c osdepckp.c osdeplog.c osdepssl.c > osdep.c
osdepbas.c:
@echo osdepbas.c not found...try make clean and new make
@false
osdepckp.c:
@echo osdepckp.c not found...try make clean and new make
@false
osdeplog.c:
@echo osdeplog.c not found...try make clean and new make
@false
osdepssl.c:
@echo osdepssl.c not found...try make clean and new make
@false
siglocal.c:
@echo siglocal.c not found...try make clean and new make
@false
crexcl.c:
@echo crexcl.c not found...do make clean and new make
@false
ip_unix.c:
@echo ip_unix.c not found...do make clean and new make
@false
os_sol.h:
sh -c 'if [ -f /lib/libc.a ]; then (strings /lib/libc.a | grep getpassphrase > /dev/null) && $(LN) os_soln.h os_sol.h || $(LN) os_solo.h os_sol.h ; else $(LN) os_soln.h os_sol.h ; fi'
# Once-only environment setup
once: onceenv ckp$(PASSWDTYPE) ssl$(SSLTYPE) osdep.c
onceenv:
@echo Once-only environment setup...
echo $(CC) > CCTYPE
echo $(BASECFLAGS) '$(EXTRACFLAGS)' -DCHUNKSIZE=$(CHUNKSIZE) > CFLAGS
echo -DCREATEPROTO=$(CREATEPROTO) -DEMPTYPROTO=$(EMPTYPROTO) \
-DMD5ENABLE=\"$(MD5PWD)\" -DMAILSPOOL=\"$(MAILSPOOL)\" \
-DANONYMOUSHOME=\"$(MAILSPOOL)/anonymous\" \
-DACTIVEFILE=\"$(ACTIVEFILE)\" -DNEWSSPOOL=\"$(NEWSSPOOL)\" \
-DRSHPATH=\"$(RSHPATH)\" -DLOCKPGM=\"$(LOCKPGM)\" \
-DLOCKPGM1=\"$(LOCKPGM1)\" -DLOCKPGM2=\"$(LOCKPGM2)\" \
-DLOCKPGM3=\"$(LOCKPGM3)\" > OSCFLAGS
echo $(BASELDFLAGS) $(EXTRALDFLAGS) > LDFLAGS
echo "$(ARRC) $(ARCHIVE) $(BINARIES);$(RANLIB) $(ARCHIVE)" > ARCHIVE
echo $(OS) > OSTYPE
./drivers $(EXTRADRIVERS) $(DEFAULTDRIVERS) dummy
./mkauths $(EXTRAAUTHENTICATORS) $(DEFAULTAUTHENTICATORS)
echo " mail_versioncheck (CCLIENTVERSION);" >> linkage.c
$(LN) os_$(OS).h osdep.h
$(LN) os_$(OS).c osdepbas.c
$(LN) log_$(LOGINPW).c osdeplog.c
$(LN) sig_$(SIGTYPE).c siglocal.c
$(LN) crx_$(CRXTYPE).c crexcl.c
$(LN) ip$(IP)_unix.c ip_unix.c
sh -c '(test $(OS) = sc5 -o $(OS) = sco -o ! -f /usr/include/sys/statvfs.h) && echo -DNOFSTATVFS >> OSCFLAGS || fgrep statvfs64 /usr/include/sys/statvfs.h > /dev/null || echo -DNOFSTATVFS64 >> OSCFLAGS'
# Password checkers
ckpafs: # AFS
@echo AFS password authentication
echo $(AFSCFLAGS) >> OSCFLAGS
# echo $(AFSLDFLAGS) >> LDFLAGS
# Note: Steve Roseman says that AFS libraries have to be lunk before SSL
echo $(AFSLDFLAGS) `$(CAT) LDFLAGS` > LDFLAGS.tmp
mv LDFLAGS.tmp LDFLAGS
$(LN) ckp_afs.c osdepckp.c
ckpdce: # DCE
@echo DCE password authentication
echo $(DCECFLAGS) >> OSCFLAGS
echo $(DCELDFLAGS) >> LDFLAGS
$(LN) ckp_dce.c osdepckp.c
ckpgss: # Kerberos V (must have gss EXTRAAUTHENTICATOR as well)
@echo Kerberos V password authentication
$(LN) ckp_gss.c osdepckp.c
ckpnul: # NUL authenticator (disables all plaintext authentication)
@echo Plaintext authentication prohibited
echo " mail_parameters (NIL,SET_DISABLEPLAINTEXT,(void *) 1);" >> linkage.c
$(LN) ckp_nul.c osdepckp.c
ckppam: # Pluggable Authentication Modules authenticator
@echo PAM password authentication
echo $(PAMLDFLAGS) >> LDFLAGS
$(LN) ckp_pam.c osdepckp.c
ckppmb: # Broken (e.g. SUN) Pluggable Authentication Modules authenticator
@echo Broken PAM password authentication
echo $(PAMLDFLAGS) >> LDFLAGS
$(LN) ckp_pmb.c osdepckp.c
ckpstd: # Port standard
@echo Standard password authentication
$(LN) ckp_$(CHECKPW).c osdepckp.c
ckptwo: # Something plus standard
@echo $(CHECKPWALT) password authentication first, then standard
$(CAT) ckp_1st.c ckp_$(CHECKPWALT).c ckp_2nd.c ckp_$(CHECKPW).c \
ckp_3rd.c > osdepckp.c
# SSL support
sslnone:# No SSL
@echo Building without SSL support
$(LN) ssl_none.c osdepssl.c
sslnopwd: sslunix snopwd
sslunix.nopwd: sslnopwd
sslsco.nopwd: sslsco snopwd
sslunix: sbasic sldunix
sslsco: sbasic sldsco
sbasic: # UNIX OpenSSL
@echo Building with SSL
$(LN) ssl_unix.c osdepssl.c
echo $(SSLCFLAGS) >> OSCFLAGS
echo " ssl_onceonlyinit ();" >> linkage.c
snopwd: # Plaintext disable
@echo Building with SSL and plaintext passwords disabled unless SSL/TLS
echo " mail_parameters (NIL,SET_DISABLEPLAINTEXT,(void *) 2);" >> linkage.c
sldunix:# Normal UNIX SSL load flags
echo $(SSLLDFLAGS) >> LDFLAGS
sldsco: # SCO SSL load flags
# Note: Tim Rice says that SSL has to be lunk before other libraries on SCO.
echo $(SSLLDFLAGS) `cat LDFLAGS` > LDFLAGS.tmp
mv LDFLAGS.tmp LDFLAGS
# A monument to a hack of long ago and far away...
love:
@echo not war?