imapext-2007

annotate src/osdep/unix/Makefile @ 0:ada5e610ab86

imap-2007e
author yuuji@gentei.org
date Mon, 14 Sep 2009 15:17:45 +0900
parents
children 28a55bc1110c 5cecc027b845
rev   line source
yuuji@0 1 # ========================================================================
yuuji@0 2 # Copyright 1988-2007 University of Washington
yuuji@0 3 #
yuuji@0 4 # Licensed under the Apache License, Version 2.0 (the "License");
yuuji@0 5 # you may not use this file except in compliance with the License.
yuuji@0 6 # You may obtain a copy of the License at
yuuji@0 7 #
yuuji@0 8 # http://www.apache.org/licenses/LICENSE-2.0
yuuji@0 9 #
yuuji@0 10 #
yuuji@0 11 # ========================================================================
yuuji@0 12
yuuji@0 13 # Program: C client makefile
yuuji@0 14 #
yuuji@0 15 # Author: Mark Crispin
yuuji@0 16 # Networks and Distributed Computing
yuuji@0 17 # Computing & Communications
yuuji@0 18 # University of Washington
yuuji@0 19 # Administration Building, AG-44
yuuji@0 20 # Seattle, WA 98195
yuuji@0 21 # Internet: MRC@CAC.Washington.EDU
yuuji@0 22 #
yuuji@0 23 # Date: 11 May 1989
yuuji@0 24 # Last Edited: 17 December 2007
yuuji@0 25
yuuji@0 26
yuuji@0 27 # Command line build parameters
yuuji@0 28
yuuji@0 29 EXTRAAUTHENTICATORS=
yuuji@0 30 EXTRADRIVERS=mbox
yuuji@0 31 PASSWDTYPE=std
yuuji@0 32 SSLTYPE=nopwd
yuuji@0 33 IP=4
yuuji@0 34
yuuji@0 35
yuuji@0 36 # The optimization level here for GCC ports is set here for a reason. It's
yuuji@0 37 # to get you to read this text.
yuuji@0 38 # The general concensus seems to be that -O2 is the one to use.
yuuji@0 39 # Over the years, I've been told to use many different settings, including -O6.
yuuji@0 40 # In recent versions of GCC [as of 2/2005], -O6 generates bad code that, among
yuuji@0 41 # other ill effects, causes infinite loops.
yuuji@0 42 # -O3 seems to be safe, but empirical observation from our local expert
yuuji@0 43 # indicates that in some (many?) cases -O3 code runs slower than -O2.
yuuji@0 44
yuuji@0 45 GCCOPTLEVEL= -O2
yuuji@0 46
yuuji@0 47
yuuji@0 48 # Try to have some consistency in GCC builds. We want optimization, but we
yuuji@0 49 # also want to be able to debug.
yuuji@0 50
yuuji@0 51 GCCCFLAGS= -g $(GCCOPTLEVEL) -pipe -fno-omit-frame-pointer
yuuji@0 52 GCC4CFLAGS= $(GCCCFLAGS) -Wno-pointer-sign
yuuji@0 53
yuuji@0 54
yuuji@0 55 # Extended flags needed for SSL. You may need to modify.
yuuji@0 56
yuuji@0 57 SSLDIR=/usr/local/ssl
yuuji@0 58 SSLCERTS=$(SSLDIR)/certs
yuuji@0 59 SSLKEYS=$(SSLCERTS)
yuuji@0 60 SSLINCLUDE=$(SSLDIR)/include
yuuji@0 61 SSLLIB=$(SSLDIR)/lib
yuuji@0 62
yuuji@0 63 SSLCRYPTO=-lcrypto
yuuji@0 64
yuuji@0 65 # Older versions of MIT Kerberos also have a libcrypto. If so, you may need
yuuji@0 66 # to use this instead
yuuji@0 67 #SSLCRYPTO=$(SSLLIB)/libcrypto.a
yuuji@0 68
yuuji@0 69 # RSA Security Inc. released the RSA public key encryption algorithm into
yuuji@0 70 # the public domain on September 6, 2000. There is no longer any need to
yuuji@0 71 # use RSAREF.
yuuji@0 72 SSLRSA= # -lRSAglue -lrsaref
yuuji@0 73
yuuji@0 74 SSLCFLAGS= -I$(SSLINCLUDE) -I$(SSLINCLUDE)/openssl\
yuuji@0 75 -DSSL_CERT_DIRECTORY=\"$(SSLCERTS)\" -DSSL_KEY_DIRECTORY=\"$(SSLKEYS)\"
yuuji@0 76 SSLLDFLAGS= -L$(SSLLIB) -lssl $(SSLCRYPTO) $(SSLRSA)
yuuji@0 77
yuuji@0 78
yuuji@0 79 # Extended flags needed for non-standard passwd types. You may need to modify.
yuuji@0 80
yuuji@0 81 AFSDIR=/usr/afsws
yuuji@0 82 AFSCFLAGS=-I$(AFSDIR)/include
yuuji@0 83 AFSLIB=$(AFSDIR)/lib
yuuji@0 84 AFSLDFLAGS=-L$(AFSLIB)/afs -L$(AFSLIB) -L$(AFSDIR)/domestic/lib\
yuuji@0 85 -lkauth -lprot -lubik -lauth -lrxkad -lrx -llwp -ldes -lcom_err\
yuuji@0 86 $(AFSLIB)/afs/util.a -laudit -lsys
yuuji@0 87 # AFSLDFLAGS may also need -L/usr/ucblib -lucb
yuuji@0 88 DCECFLAGS= -DDCE_MINIMAL -DPASSWD_OVERRIDE=\"/opt/pop3/passwd/passwd\"
yuuji@0 89 DCELDFLAGS= -ldce
yuuji@0 90 PAMLDFLAGS= -lpam -ldl
yuuji@0 91
yuuji@0 92
yuuji@0 93 # Build parameters normally set by the individual port
yuuji@0 94
yuuji@0 95 CHECKPW=std
yuuji@0 96 LOGINPW=std
yuuji@0 97 SIGTYPE=bsd
yuuji@0 98 CRXTYPE=std
yuuji@0 99 ACTIVEFILE=/usr/lib/news/active
yuuji@0 100 SPOOLDIR=/usr/spool
yuuji@0 101 MAILSPOOL=$(SPOOLDIR)/mail
yuuji@0 102 NEWSSPOOL=$(SPOOLDIR)/news
yuuji@0 103 RSHPATH=/usr/ucb/rsh
yuuji@0 104 MD5PWD=/etc/cram-md5.pwd
yuuji@0 105 # Tries one of the test alternatives below if not specified.
yuuji@0 106 LOCKPGM=
yuuji@0 107 # Test alternatives if LOCKPGM not specified
yuuji@0 108 LOCKPGM1=/usr/libexec/mlock
yuuji@0 109 LOCKPGM2=/usr/sbin/mlock
yuuji@0 110 LOCKPGM3=/etc/mlock
yuuji@0 111
yuuji@0 112
yuuji@0 113 # Default formats for creating new mailboxes and for empty mailboxes in the
yuuji@0 114 # default namespace; must be set to the associated driver's prototype.
yuuji@0 115 #
yuuji@0 116 # The CREATEPROTO is the default format for new mailbox creation.
yuuji@0 117 # The EMPTYPROTO is the default format for handling zero-byte files.
yuuji@0 118 #
yuuji@0 119 # Normally, this is set by the individual port.
yuuji@0 120 #
yuuji@0 121 # NOTE: namespace formats (e.g. mh and news) can not be set as a default format
yuuji@0 122 # since they do not exist in the default namespace. Also, it is meaningless to
yuuji@0 123 # set certain other formats (e.g. mbx, mx, and mix) as the EMPTYPROTO since
yuuji@0 124 # these formats can never be empty files.
yuuji@0 125
yuuji@0 126 CREATEPROTO=unixproto
yuuji@0 127 EMPTYPROTO=unixproto
yuuji@0 128
yuuji@0 129
yuuji@0 130 # Commands possibly overriden by the individual port
yuuji@0 131
yuuji@0 132 ARRC=ar rc
yuuji@0 133 CC=cc
yuuji@0 134 LN=ln -s
yuuji@0 135 RANLIB=ranlib
yuuji@0 136
yuuji@0 137
yuuji@0 138 # Standard distribution build parameters
yuuji@0 139
yuuji@0 140 DEFAULTAUTHENTICATORS=ext md5 pla log
yuuji@0 141 #
yuuji@0 142 # mh needs to be after any other directory format drivers (such as mx or mix)
yuuji@0 143 # since otherwise mh will seize any directory that is under the mh path.
yuuji@0 144 # However, mh needs to be before any sysinbox formats (such as mmdf or unix)
yuuji@0 145 # since otherwise INBOX won't work correctly when mh_allow_inbox is set.
yuuji@0 146 #
yuuji@0 147 DEFAULTDRIVERS=imap nntp pop3 mix mx mbx tenex mtx mh mmdf unix news phile
yuuji@0 148 CHUNKSIZE=65536
yuuji@0 149
yuuji@0 150 # Normally no need to change any of these
yuuji@0 151
yuuji@0 152 ARCHIVE=c-client.a
yuuji@0 153 BINARIES=osdep.o mail.o misc.o newsrc.o smanager.o utf8.o utf8aux.o siglocal.o \
yuuji@0 154 dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
yuuji@0 155 rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
yuuji@0 156 unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o
yuuji@0 157 CFLAGS=-g
yuuji@0 158
yuuji@0 159 CAT=cat
yuuji@0 160 MAKE=make
yuuji@0 161 MV=mv
yuuji@0 162 RM=rm -rf
yuuji@0 163 SH=sh
yuuji@0 164
yuuji@0 165
yuuji@0 166 # Primary build command
yuuji@0 167
yuuji@0 168 BUILD=$(MAKE) build EXTRACFLAGS='$(EXTRACFLAGS)'\
yuuji@0 169 EXTRALDFLAGS='$(EXTRALDFLAGS)'\
yuuji@0 170 EXTRADRIVERS='$(EXTRADRIVERS)' EXTRAAUTHENTICATORS='$(EXTRAAUTHENTICATORS)'\
yuuji@0 171 PASSWDTYPE=$(PASSWDTYPE) SSLTYPE=$(SSLTYPE) IP=$(IP)
yuuji@0 172
yuuji@0 173
yuuji@0 174 # Here if no make argument established
yuuji@0 175
yuuji@0 176 missing: osdep.h
yuuji@0 177 $(MAKE) all `$(CAT) SPECIALS`
yuuji@0 178
yuuji@0 179 osdep.h:
yuuji@0 180 @echo You must specify what type of system
yuuji@0 181 @false
yuuji@0 182
yuuji@0 183
yuuji@0 184 # Current ports
yuuji@0 185
yuuji@0 186 a32: # AIX 3.2 for RS/6000
yuuji@0 187 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 188 SIGTYPE=psx CRXTYPE=nfs \
yuuji@0 189 SPOOLDIR=/var/spool \
yuuji@0 190 RSHPATH=/usr/bin/rsh \
yuuji@0 191 BASECFLAGS="-g -Dunix=1 -D_BSD" \
yuuji@0 192 BASELDFLAGS="-lbsd"
yuuji@0 193
yuuji@0 194 a41: # AIX 4.1 for RS/6000
yuuji@0 195 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 196 SIGTYPE=psx CHECKPW=a41 CRXTYPE=nfs \
yuuji@0 197 SPOOLDIR=/var/spool \
yuuji@0 198 RSHPATH=/usr/bin/rsh \
yuuji@0 199 BASECFLAGS="-g -Dunix=1 -D_BSD -qro -qroconst" \
yuuji@0 200 BASELDFLAGS="-ls"
yuuji@0 201
yuuji@0 202 aix: # AIX/370
yuuji@0 203 @echo You are building for AIX on an S/370 class machine
yuuji@0 204 @echo If you want AIX on an RS/6000 you need to use a32 or a41 instead!
yuuji@0 205 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 206 CRXTYPE=nfs \
yuuji@0 207 BASECFLAGS="-g" \
yuuji@0 208 BASELDFLAGS="-lbsd"
yuuji@0 209
yuuji@0 210 aos: # AOS for RT
yuuji@0 211 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 212 CRXTYPE=nfs \
yuuji@0 213 BASECFLAGS="-g -Dconst="
yuuji@0 214
yuuji@0 215 art: # AIX 2.2.1 for RT
yuuji@0 216 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 217 SIGTYPE=sv4 \
yuuji@0 218 SPOOLDIR=/var \
yuuji@0 219 ACTIVEFILE=/usr/local/news/control/active \
yuuji@0 220 RSHPATH=/bin/rsh \
yuuji@0 221 BASECFLAGS="-g -Dconst= -Dvoid=char" \
yuuji@0 222 RANLIB=true
yuuji@0 223
yuuji@0 224 asv: # Altos SVR4
yuuji@0 225 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 226 SIGTYPE=sv4 LOGINPW=old \
yuuji@0 227 ACTIVEFILE=/usr/spool/news/active \
yuuji@0 228 RSHPATH=/usr/bin/rcmd \
yuuji@0 229 BASECFLAGS="-Dconst= -DSIGSTOP=SIGKILL" \
yuuji@0 230 BASELDFLAGS="-lsocket -lrpc -lgen -lcrypt -lxenix" \
yuuji@0 231 RANLIB=true
yuuji@0 232
yuuji@0 233 aux: # A/UX
yuuji@0 234 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 235 CRXTYPE=nfs \
yuuji@0 236 MAILSPOOL=/usr/mail \
yuuji@0 237 BASECFLAGS="-g -B/usr/lib/big/ -Dvoid=char -Dconst=" \
yuuji@0 238 RANLIB=true ARRC="ar -rc"
yuuji@0 239
yuuji@0 240 bs3: # BSD/i386 3.0 or higher
yuuji@0 241 $(BUILD) `$(CAT) SPECIALS` OS=bsi \
yuuji@0 242 CHECKPW=bsi LOGINPW=bsi CRXTYPE=nfs \
yuuji@0 243 SPOOLDIR=/var NEWSSPOOL=/var/news/spool \
yuuji@0 244 ACTIVEFILE=/var/news/etc/active \
yuuji@0 245 RSHPATH=/usr/bin/rsh \
yuuji@0 246 BASECFLAGS="$(GCCCFLAGS)" CC=shlicc
yuuji@0 247
yuuji@0 248 bsd: # BSD UNIX
yuuji@0 249 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 250 CRXTYPE=nfs \
yuuji@0 251 BASECFLAGS="-g -Dconst="
yuuji@0 252
yuuji@0 253 bsf: # FreeBSD
yuuji@0 254 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 255 SIGTYPE=psx CRXTYPE=nfs \
yuuji@0 256 SPOOLDIR=/var \
yuuji@0 257 ACTIVEFILE=/usr/local/news/lib/active \
yuuji@0 258 RSHPATH=/usr/bin/rsh \
yuuji@0 259 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 260 BASELDFLAGS="-lcrypt"
yuuji@0 261
yuuji@0 262 bsi: # BSD/i386
yuuji@0 263 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 264 CRXTYPE=nfs \
yuuji@0 265 SPOOLDIR=/var NEWSSPOOL=/var/news/spool \
yuuji@0 266 ACTIVEFILE=/var/news/etc/active \
yuuji@0 267 RSHPATH=/usr/bin/rsh \
yuuji@0 268 BASECFLAGS="$(GCCCFLAGS)"
yuuji@0 269
yuuji@0 270 bso: # OpenBSD
yuuji@0 271 $(BUILD) `$(CAT) SPECIALS` OS=bsi \
yuuji@0 272 SIGTYPE=psx CRXTYPE=nfs \
yuuji@0 273 SPOOLDIR=/var \
yuuji@0 274 ACTIVEFILE=/usr/local/news/lib/active \
yuuji@0 275 RSHPATH=/usr/bin/rsh \
yuuji@0 276 BASECFLAGS="$(GCCCFLAGS)"
yuuji@0 277
yuuji@0 278 cvx: # Convex
yuuji@0 279 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 280 CRXTYPE=nfs \
yuuji@0 281 BASECFLAGS="-O -ext -Dconst="
yuuji@0 282
yuuji@0 283 cyg: # Cygwin - note that most local file drivers don't work!!
yuuji@0 284 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 285 DEFAULTDRIVERS="imap nntp pop3 mbx unix phile" \
yuuji@0 286 SIGTYPE=psx CHECKPW=cyg LOGINPW=cyg CRXTYPE=std \
yuuji@0 287 SPOOLDIR=/var \
yuuji@0 288 ACTIVEFILE=/usr/local/news/lib/active \
yuuji@0 289 RSHPATH=/usr/bin/rsh \
yuuji@0 290 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 291 BASELDFLAGS="-lcrypt" \
yuuji@0 292 CC=gcc
yuuji@0 293
yuuji@0 294 d-g: # Data General DG/UX
yuuji@0 295 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 296 SIGTYPE=sv4 CRXTYPE=nfs \
yuuji@0 297 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 298 ACTIVEFILE=/local/news/active \
yuuji@0 299 RSHPATH=/usr/bin/remsh \
yuuji@0 300 BASECFLAGS="-g -Dconst=" \
yuuji@0 301 BASELDFLAGS="-lnsl -lsocket" \
yuuji@0 302 RANLIB=true
yuuji@0 303
yuuji@0 304 d54: # Data General DG/UX 5.4
yuuji@0 305 $(BUILD) `$(CAT) SPECIALS` OS=d-g \
yuuji@0 306 SIGTYPE=sv4 CRXTYPE=nfs \
yuuji@0 307 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 308 ACTIVEFILE=/local/news/active \
yuuji@0 309 RSHPATH=/usr/bin/remsh \
yuuji@0 310 BASECFLAGS="-g -Dconst=" \
yuuji@0 311 BASELDFLAGS="-lnsl -lsocket" \
yuuji@0 312 RANLIB=true
yuuji@0 313
yuuji@0 314 dpx: # Bull DPX/2
yuuji@0 315 $(BUILD) `$(CAT) SPECIALS` OS=sv4 \
yuuji@0 316 SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 \
yuuji@0 317 RSHPATH=/usr/bin/remsh \
yuuji@0 318 BASECFLAGS="-Dconst= -DSYSTEM5 -DSHORT_IDENT" \
yuuji@0 319 BASELDFLAGS="-linet" \
yuuji@0 320 RANLIB=true LN=ln
yuuji@0 321
yuuji@0 322 drs: # ICL DRS/NX
yuuji@0 323 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 324 SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 CRXTYPE=nfs \
yuuji@0 325 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 326 ACTIVEFILE=/var/lib/news/active \
yuuji@0 327 RSHPATH=/usr/bin/rsh \
yuuji@0 328 BASECFLAGS="-O" \
yuuji@0 329 BASELDFLAGS="-lsocket -lgen" \
yuuji@0 330 RANLIB=true
yuuji@0 331
yuuji@0 332 do4: # Apollo Domain/OS sr10.4
yuuji@0 333 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 334 CRXTYPE=nfs \
yuuji@0 335 BASECFLAGS="-A systype,bsd4.3 -D_APOLLO_SOURCE" \
yuuji@0 336 RANLIB=true
yuuji@0 337
yuuji@0 338 dyn: # Dynix
yuuji@0 339 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 340 CRXTYPE=nfs \
yuuji@0 341 BASECFLAGS="-g -Dconst="
yuuji@0 342
yuuji@0 343 epx: # EP/IX
yuuji@0 344 $(BUILD) `$(CAT) SPECIALS` OS=sv4 \
yuuji@0 345 SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 \
yuuji@0 346 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 347 ACTIVEFILE=/usr/share/news/active \
yuuji@0 348 RSHPATH=/usr/net/rsh \
yuuji@0 349 BASECFLAGS="-g -systype svr4" \
yuuji@0 350 BASELDFLAGS="-lsocket -lnsl -lgen" \
yuuji@0 351 RANLIB=true
yuuji@0 352
yuuji@0 353 ga4: # GCC AIX 4.1 for RS/6000
yuuji@0 354 $(BUILD) `$(CAT) SPECIALS` OS=a41 \
yuuji@0 355 SIGTYPE=psx CHECKPW=a41 CRXTYPE=nfs \
yuuji@0 356 SPOOLDIR=/var/spool \
yuuji@0 357 RSHPATH=/usr/bin/rsh \
yuuji@0 358 BASECFLAGS="-g -Dunix=1 -D_BSD" \
yuuji@0 359 BASELDFLAGS="-ls"
yuuji@0 360
yuuji@0 361 gas: # GCC Altos SVR4
yuuji@0 362 $(BUILD) `$(CAT) SPECIALS` OS=asv \
yuuji@0 363 SIGTYPE=sv4 LOGINPW=old \
yuuji@0 364 ACTIVEFILE=/usr/spool/news/active \
yuuji@0 365 RSHPATH=/usr/bin/rcmd \
yuuji@0 366 BASECFLAGS="-g -O -DALTOS_SYSTEM_V -DSIGSTOP=SIGKILL" \
yuuji@0 367 BASELDFLAGS="-lsocket -lrpc -lgen -lcrypt -lxenix" \
yuuji@0 368 RANLIB=true CC=gcc
yuuji@0 369
yuuji@0 370 gh9: # GCC HP-UX 9.x
yuuji@0 371 $(BUILD) `$(CAT) SPECIALS` OS=hpp \
yuuji@0 372 SIGTYPE=psx CRXTYPE=nfs \
yuuji@0 373 MAILSPOOL=/usr/mail \
yuuji@0 374 RSHPATH=/usr/bin/remsh \
yuuji@0 375 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 376 RANLIB=true CC=gcc
yuuji@0 377
yuuji@0 378 ghp: # GCC HP-UX 10.x
yuuji@0 379 $(BUILD) `$(CAT) SPECIALS` OS=hpp \
yuuji@0 380 SIGTYPE=psx CRXTYPE=nfs \
yuuji@0 381 SPOOLDIR=/var \
yuuji@0 382 ACTIVEFILE=/var/news/active \
yuuji@0 383 RSHPATH=/usr/bin/remsh \
yuuji@0 384 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 385 RANLIB=true CC=gcc
yuuji@0 386
yuuji@0 387 ghs: # GCC HP-UX with Trusted Computer Base
yuuji@0 388 $(BUILD) `$(CAT) SPECIALS` OS=shp \
yuuji@0 389 SIGTYPE=psx CHECKPW=sec CRXTYPE=nfs \
yuuji@0 390 SPOOLDIR=/var \
yuuji@0 391 ACTIVEFILE=/var/news/active \
yuuji@0 392 RSHPATH=/usr/bin/remsh \
yuuji@0 393 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 394 BASELDFLAGS="-lnet -lV3 -lsec" \
yuuji@0 395 RANLIB=true CC=gcc
yuuji@0 396
yuuji@0 397 go5: # GCC 2.7.1 (95q4) SCO Open Server 5.0.x
yuuji@0 398 $(BUILD) `$(CAT) SPECIALS` OS=sc5 \
yuuji@0 399 SIGTYPE=psx CHECKPW=sec LOGINPW=sec \
yuuji@0 400 CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
yuuji@0 401 SPOOLDIR=/var/spool \
yuuji@0 402 ACTIVEFILE=/var/lib/news/active \
yuuji@0 403 RSHPATH=/usr/bin/rcmd \
yuuji@0 404 BASECFLAGS="$(GCCCFLAGS) -I/usr/include -L/lib" \
yuuji@0 405 BASELDFLAGS="-lsocket -lprot -lx -ltinfo -lm" \
yuuji@0 406 RANLIB=true CC=gcc
yuuji@0 407
yuuji@0 408 gsc: # Santa Cruz Operation
yuuji@0 409 $(BUILD) `$(CAT) SPECIALS` OS=sco \
yuuji@0 410 SIGTYPE=sv4 CHECKPW=sec LOGINPW=sec \
yuuji@0 411 CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
yuuji@0 412 RSHPATH=/usr/bin/rcmd \
yuuji@0 413 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 414 BASELDFLAGS="-lsocket -lprot -lcrypt_i -lx -los" \
yuuji@0 415 RANLIB=true LN=ln CC=gcc
yuuji@0 416
yuuji@0 417 gsg: # GCC Silicon Graphics
yuuji@0 418 $(BUILD) `$(CAT) SPECIALS` OS=sgi \
yuuji@0 419 SIGTYPE=sv4 CRXTYPE=nfs \
yuuji@0 420 MAILSPOOL=/usr/mail \
yuuji@0 421 RSHPATH=/usr/bsd/rsh \
yuuji@0 422 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 423 RANLIB=true CC=gcc
yuuji@0 424
yuuji@0 425 gso: os_sol.h # GCC Solaris
yuuji@0 426 $(BUILD) `$(CAT) SPECIALS` OS=sol \
yuuji@0 427 SIGTYPE=psx CHECKPW=psx CRXTYPE=nfs \
yuuji@0 428 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 429 ACTIVEFILE=/usr/share/news/active \
yuuji@0 430 RSHPATH=/usr/bin/rsh \
yuuji@0 431 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 432 BASELDFLAGS="-lsocket -lnsl -lgen" \
yuuji@0 433 RANLIB=true CC=gcc
yuuji@0 434
yuuji@0 435 gsu: # GCC SUN-OS
yuuji@0 436 $(BUILD) `$(CAT) SPECIALS` OS=sun \
yuuji@0 437 CRXTYPE=nfs \
yuuji@0 438 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 439 BASELDFLAGS="-ldl" \
yuuji@0 440 CC=gcc
yuuji@0 441
yuuji@0 442 gul: # GCC Ultrix
yuuji@0 443 $(BUILD) `$(CAT) SPECIALS` OS=ult \
yuuji@0 444 SIGTYPE=psx CHECKPW=ult CRXTYPE=nfs \
yuuji@0 445 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 446 BASELDFLAGS="-lauth -lc" \
yuuji@0 447 CC=gcc
yuuji@0 448
yuuji@0 449 h11: # HP-UX 11i
yuuji@0 450 $(BUILD) `$(CAT) SPECIALS` OS=hpp \
yuuji@0 451 SIGTYPE=psx CRXTYPE=nfs \
yuuji@0 452 SPOOLDIR=/var \
yuuji@0 453 ACTIVEFILE=/var/news/active \
yuuji@0 454 RSHPATH=/usr/bin/remsh \
yuuji@0 455 BASECFLAGS="-g -Ae" \
yuuji@0 456 RANLIB=true
yuuji@0 457
yuuji@0 458 hpp: # HP-UX 9.x
yuuji@0 459 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 460 SIGTYPE=psx CRXTYPE=nfs \
yuuji@0 461 MAILSPOOL=/usr/mail \
yuuji@0 462 RSHPATH=/usr/bin/remsh \
yuuji@0 463 BASECFLAGS="-g -Aa -D_HPUX_SOURCE" \
yuuji@0 464 BASELDFLAGS="-lnet -lV3" \
yuuji@0 465 RANLIB=true
yuuji@0 466
yuuji@0 467 hpx: # HP-UX 10.x
yuuji@0 468 $(BUILD) `$(CAT) SPECIALS` OS=hpp \
yuuji@0 469 SIGTYPE=psx CRXTYPE=nfs \
yuuji@0 470 SPOOLDIR=/var \
yuuji@0 471 ACTIVEFILE=/var/news/active \
yuuji@0 472 RSHPATH=/usr/bin/remsh \
yuuji@0 473 BASECFLAGS="-g -Ae" \
yuuji@0 474 BASELDFLAGS="-lnet -lV3" \
yuuji@0 475 RANLIB=true
yuuji@0 476
yuuji@0 477 isc: # Interactive
yuuji@0 478 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 479 SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 \
yuuji@0 480 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 481 ACTIVEFILE=/var/spool/news/active \
yuuji@0 482 BASECFLAGS="-Xp -D_SYSV3" \
yuuji@0 483 BASELDFLAGS="-linet -lnsl_s -lgen -lx -lsec -liberty" \
yuuji@0 484 RANLIB=true
yuuji@0 485
yuuji@0 486 lnp: # Linux Pluggable Authentication modules
yuuji@0 487 $(BUILD) `$(CAT) SPECIALS` OS=slx \
yuuji@0 488 SIGTYPE=psx CHECKPW=pam CRXTYPE=nfs \
yuuji@0 489 SPOOLDIR=/var/spool \
yuuji@0 490 ACTIVEFILE=/var/lib/news/active \
yuuji@0 491 RSHPATH=/usr/bin/rsh \
yuuji@0 492 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 493 BASELDFLAGS="$(PAMLDFLAGS)"
yuuji@0 494
yuuji@0 495 lnx: # Linux non-shadow passwords
yuuji@0 496 @echo You are building for traditional Linux *without* shadow
yuuji@0 497 @echo passwords and with the crypt function in the C library.
yuuji@0 498 @echo If your system has shadow passwords, or if crypt is not
yuuji@0 499 @echo in the C library, you must use slx, sl4, or sl5 instead!
yuuji@0 500 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 501 SIGTYPE=psx CRXTYPE=nfs \
yuuji@0 502 SPOOLDIR=/var/spool \
yuuji@0 503 ACTIVEFILE=/var/lib/news/active \
yuuji@0 504 RSHPATH=/usr/bin/rsh \
yuuji@0 505 BASECFLAGS="$(GCCCFLAGS)"
yuuji@0 506
yuuji@0 507 lyn: # LynxOS
yuuji@0 508 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 509 CRXTYPE=nfs \
yuuji@0 510 RSHPATH=/bin/rsh \
yuuji@0 511 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 512 BASELDFLAGS=-lbsd \
yuuji@0 513 CC=gcc
yuuji@0 514
yuuji@0 515 mct: # MachTen - CRXTYPE=nfs doesn't work (at least not on 2.2)
yuuji@0 516 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 517 SPOOLDIR=/var/spool \
yuuji@0 518 BASECFLAGS="$(GCCCFLAGS)"
yuuji@0 519
yuuji@0 520 mnt: # Mint
yuuji@0 521 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 522 SIGTYPE=psx CRXTYPE=nfs \
yuuji@0 523 SPOOLDIR=/var/spool \
yuuji@0 524 ACTIVEFILE=/var/lib/news/active \
yuuji@0 525 RSHPATH=/usr/bin/rsh \
yuuji@0 526 BASECFLAGS="$(GCCCFLAGS)"
yuuji@0 527
yuuji@0 528 neb: # NetBSD
yuuji@0 529 $(BUILD) `$(CAT) SPECIALS` OS=bsi \
yuuji@0 530 CRXTYPE=nfs \
yuuji@0 531 SPOOLDIR=/var \
yuuji@0 532 ACTIVEFILE=/var/db/news/active \
yuuji@0 533 RSHPATH=/usr/bin/rsh \
yuuji@0 534 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 535 BASELDFLAGS="-lcrypt"
yuuji@0 536
yuuji@0 537 nec: # NEC UX
yuuji@0 538 $(BUILD) `$(CAT) SPECIALS` OS=sv4 \
yuuji@0 539 SIGTYPE=sv4 CHECKPW=sv4 \
yuuji@0 540 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 541 ACTIVEFILE=/var/news/lib/active \
yuuji@0 542 RSHPATH=/usr/bin/rsh \
yuuji@0 543 BASECFLAGS="-g -Kopt=2 -KOlimit=2000" \
yuuji@0 544 BASELDFLAGS="-lsocket -lnsl -lgen" \
yuuji@0 545 RANLIB=true CC=/usr/abiccs/bin/cc
yuuji@0 546
yuuji@0 547 nto: # QNX Neutrino RTP
yuuji@0 548 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 549 CRXTYPE=nfs \
yuuji@0 550 SPOOLDIR=/var/spool \
yuuji@0 551 ACTIVEFILE=/var/lib/news/active \
yuuji@0 552 RSHPATH=/usr/bin/rsh \
yuuji@0 553 BASECFLAGS="-g -O"
yuuji@0 554
yuuji@0 555 nxt: # NEXTSTEP
yuuji@0 556 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 557 CRXTYPE=nfs \
yuuji@0 558 BASECFLAGS="$(GCCCFLAGS)"
yuuji@0 559
yuuji@0 560 nx3: # NEXTSTEP 3.0 single threaded
yuuji@0 561 $(BUILD) `$(CAT) SPECIALS` OS=nxt \
yuuji@0 562 CRXTYPE=nfs \
yuuji@0 563 BASECFLAGS="$(GCCCFLAGS)"
yuuji@0 564 echo "void malloc_singlethreaded (void);" >> linkage.h
yuuji@0 565 echo " malloc_singlethreaded ();" >> linkage.c
yuuji@0 566
yuuji@0 567 osf: # OSF/1
yuuji@0 568 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 569 SIGTYPE=psx CRXTYPE=nfs \
yuuji@0 570 SPOOLDIR=/var/spool \
yuuji@0 571 BASECFLAGS="-g3 -w -O2 -Olimit 1500"
yuuji@0 572
yuuji@0 573 # Note: sia_become_user() used by LOGINPW=os4 doesn't seem to work right. The
yuuji@0 574 # user doesn't get proper file access, and the process can't be killed.
yuuji@0 575
yuuji@0 576 os4: # OSF/1 (Digital UNIX) 4
yuuji@0 577 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 578 SIGTYPE=psx CHECKPW=os4 LOGINPW=os4 CRXTYPE=nfs \
yuuji@0 579 SPOOLDIR=/var/spool \
yuuji@0 580 BASECFLAGS="-g3 -w -std0 -O2"
yuuji@0 581
yuuji@0 582 osx: # Mac OS X
yuuji@0 583 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 584 CRXTYPE=nfs \
yuuji@0 585 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 586 RSHPATH=/usr/bin/rsh \
yuuji@0 587 BASECFLAGS="$(GCC4CFLAGS)"
yuuji@0 588
yuuji@0 589 ptx: # PTX
yuuji@0 590 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 591 SIGTYPE=psx CHECKPW=svo LOGINPW=sv4 CRXTYPE=nfs \
yuuji@0 592 MAILSPOOL=/usr/mail \
yuuji@0 593 RSHPATH=/usr/bin/resh \
yuuji@0 594 BASECFLAGS="-Wc,-O3 -Wc,-seq -Dprivate=PRIVATE" \
yuuji@0 595 BASELDFLAGS="-lseq -lsec -lsocket -linet -lnsl -lgen" \
yuuji@0 596 RANLIB=true
yuuji@0 597
yuuji@0 598 pyr: # Pyramid
yuuji@0 599 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 600 CRXTYPE=nfs \
yuuji@0 601 BASECFLAGS="-g -Dconst="
yuuji@0 602
yuuji@0 603 qnx: # QNX
yuuji@0 604 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 605 CHECKPW=psx LOGINPW=old \
yuuji@0 606 RSHPATH=/usr/ucb/rsh \
yuuji@0 607 BASECFLAGS="-Otax -g -Dunix=1 -D_POSIX_SOURCE" \
yuuji@0 608 BASELDFLAGS="-g -N128k -llogin -lsocket -lunix"
yuuji@0 609
yuuji@0 610 s40: # SUN-OS 4.0
yuuji@0 611 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 612 CRXTYPE=nfs \
yuuji@0 613 BASECFLAGS="-g -Dconst="
yuuji@0 614
yuuji@0 615 sc5: # SCO Open Server 5.0
yuuji@0 616 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 617 SIGTYPE=psx CHECKPW=sec LOGINPW=sec \
yuuji@0 618 CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
yuuji@0 619 SPOOLDIR=/var/spool \
yuuji@0 620 ACTIVEFILE=/var/lib/news/active \
yuuji@0 621 RSHPATH=/usr/bin/rcmd \
yuuji@0 622 BASECFLAGS="-O3 -s -belf" \
yuuji@0 623 BASELDFLAGS="-lsocket -lprot -lx -ltinfo -lm" \
yuuji@0 624 RANLIB=true
yuuji@0 625
yuuji@0 626 sco: # Santa Cruz Operation
yuuji@0 627 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 628 SIGTYPE=sv4 CHECKPW=sec LOGINPW=sec \
yuuji@0 629 CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto \
yuuji@0 630 RSHPATH=/usr/bin/rcmd \
yuuji@0 631 BASECFLAGS="-O3" \
yuuji@0 632 BASELDFLAGS="-lsocket -lprot -lcrypt_i -lx -los" \
yuuji@0 633 RANLIB=true LN=ln
yuuji@0 634
yuuji@0 635 # Note: setting _POSIX_SOURCE doesn't seem to build it as of SGI IRIX 5.3
yuuji@0 636
yuuji@0 637 sgi: # Silicon Graphics
yuuji@0 638 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 639 SIGTYPE=sv4 CRXTYPE=nfs \
yuuji@0 640 MAILSPOOL=/usr/mail \
yuuji@0 641 RSHPATH=/usr/bsd/rsh \
yuuji@0 642 BASECFLAGS="-g3 -O2 -Olimit 8192" \
yuuji@0 643 RANLIB=true
yuuji@0 644
yuuji@0 645 sg6: # Silicon Graphics, IRIX 6.5
yuuji@0 646 MAKEFLAGS= $(BUILD) `$(CAT) SPECIALS` OS=sgi \
yuuji@0 647 SIGTYPE=sv4 CRXTYPE=nfs \
yuuji@0 648 MAILSPOOL=/usr/mail \
yuuji@0 649 RSHPATH=/usr/bsd/rsh \
yuuji@0 650 BASECFLAGS="-g3 -O2 -OPT:Olimit=0 -woff 1110,1116" \
yuuji@0 651 RANLIB=true
yuuji@0 652
yuuji@0 653 # Note: Mark Kaesling says that setluid() isn't in HP-UX with SecureWare.
yuuji@0 654
yuuji@0 655 shp: # HP-UX with Trusted Computer Base
yuuji@0 656 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 657 SIGTYPE=psx CHECKPW=sec CRXTYPE=nfs \
yuuji@0 658 SPOOLDIR=/var \
yuuji@0 659 ACTIVEFILE=/var/news/active \
yuuji@0 660 RSHPATH=/usr/bin/remsh \
yuuji@0 661 BASECFLAGS="-g -Ae" \
yuuji@0 662 BASELDFLAGS="-lnet -lV3 -lsec" \
yuuji@0 663 RANLIB=true
yuuji@0 664
yuuji@0 665 slx: # Secure Linux
yuuji@0 666 @echo You are building for libc6/glibc versions of Secure Linux
yuuji@0 667 @echo If you want libc5 versions you must use sl5 instead!
yuuji@0 668 @echo If you want libc4 versions you must use sl4 instead!
yuuji@0 669 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 670 SIGTYPE=psx CHECKPW=psx CRXTYPE=nfs \
yuuji@0 671 SPOOLDIR=/var/spool \
yuuji@0 672 ACTIVEFILE=/var/lib/news/active \
yuuji@0 673 RSHPATH=/usr/bin/rsh \
yuuji@0 674 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 675 BASELDFLAGS="-lcrypt"
yuuji@0 676
yuuji@0 677 sl4: # Secure Linux using libc4
yuuji@0 678 @echo You are building for libc4 versions of Secure Linux
yuuji@0 679 @echo If you want libc6/glibc versions you must use slx instead!
yuuji@0 680 @echo If you want libc5 versions you must use sl5 instead!
yuuji@0 681 $(BUILD) `$(CAT) SPECIALS` OS=slx \
yuuji@0 682 SIGTYPE=psx CHECKPW=psx CRXTYPE=nfs \
yuuji@0 683 SPOOLDIR=/var/spool \
yuuji@0 684 ACTIVEFILE=/var/lib/news/active \
yuuji@0 685 RSHPATH=/usr/bin/rsh \
yuuji@0 686 BASECFLAGS="$(GCCCFLAGS)" \
yuuji@0 687 BASELDFLAGS="-lshadow"
yuuji@0 688
yuuji@0 689 sl5: # Secure Linux using libc5
yuuji@0 690 @echo You are building for libc5 versions of Secure Linux
yuuji@0 691 @echo If you want libc6/glibc versions you must use slx instead!
yuuji@0 692 @echo If you want libc4 versions you must use sl4 instead!
yuuji@0 693 $(BUILD) `$(CAT) SPECIALS` OS=slx \
yuuji@0 694 SIGTYPE=psx CHECKPW=psx CRXTYPE=nfs \
yuuji@0 695 SPOOLDIR=/var/spool \
yuuji@0 696 ACTIVEFILE=/var/lib/news/active \
yuuji@0 697 RSHPATH=/usr/bin/rsh \
yuuji@0 698 BASECFLAGS="$(GCCCFLAGS)"
yuuji@0 699
yuuji@0 700 snx: # Siemens Nixdorf SINIX and Reliant UNIX
yuuji@0 701 $(BUILD) `$(CAT) SPECIALS` OS=sv4 \
yuuji@0 702 SIGTYPE=psx CHECKPW=sv4 \
yuuji@0 703 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 704 ACTIVEFILE=/usr/share/news/active \
yuuji@0 705 RSHPATH=/usr/bin/rsh \
yuuji@0 706 BASECFLAGS="-g -D_SYS_CLOCK_H -Dconst=" \
yuuji@0 707 BASELDFLAGS="-lsocket -lnsl -lgen" \
yuuji@0 708 RANLIB=true
yuuji@0 709
yuuji@0 710 # Sorry about the -w, but the cretinous SUN Workshop Pro C compiler barfs on
yuuji@0 711 # implicit casts between char and unsigned char.
yuuji@0 712
yuuji@0 713 soc: os_sol.h # Solaris with cc
yuuji@0 714 $(BUILD) `$(CAT) SPECIALS` OS=sol \
yuuji@0 715 SIGTYPE=psx CHECKPW=psx CRXTYPE=nfs \
yuuji@0 716 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 717 ACTIVEFILE=/usr/share/news/active \
yuuji@0 718 RSHPATH=/usr/bin/rsh \
yuuji@0 719 BASECFLAGS="-g -O -w" \
yuuji@0 720 BASELDFLAGS="-lsocket -lnsl -lgen" \
yuuji@0 721 RANLIB=true CC=/opt/SUNWspro/bin/cc
yuuji@0 722
yuuji@0 723
yuuji@0 724 # Note: It is a long and disgusting story about why cc is set to ucbcc. You
yuuji@0 725 # need to invoke the C compiler so that it links with the SVR4 libraries and
yuuji@0 726 # not the BSD libraries, otherwise readdir() will return the wrong information.
yuuji@0 727 # Of all the names in the most common path, ucbcc is the only name to be found
yuuji@0 728 # (on /usr/ccs/bin) that points to a suitable compiler. cc is likely to be
yuuji@0 729 # /usr/ucb/cc which is absolutely not the compiler that you want. The real
yuuji@0 730 # SVR4 cc is probably something like /opt/SUNWspro/bin/cc which is rarely in
yuuji@0 731 # anyone's path.
yuuji@0 732 #
yuuji@0 733 # ucbcc is probably a link to acc, e.g. /opt/SUNWspro/SC4.0/bin/acc, and is
yuuji@0 734 # the UCB C compiler using the SVR4 libraries.
yuuji@0 735 #
yuuji@0 736 # If ucbcc isn't on your system, then punt on the SUN C compiler and use gcc
yuuji@0 737 # instead (the gso port instead of the sol port).
yuuji@0 738 #
yuuji@0 739 # If, in spite of all the above warnings, you choose to use the "soc" port
yuuji@0 740 # instead of the "sol" port, be sure to check the behavior of the LIST command
yuuji@0 741 # in imapd. Also, note that the "soc" port uses -O. If you want to use the
yuuji@0 742 # real SVR4 compiler, you must use -O. If it works to compile with -O2, then
yuuji@0 743 # cc is probably using the UCB compiler with BSD libraries, and will not build
yuuji@0 744 # a good binary
yuuji@0 745 #
yuuji@0 746 # To recap:
yuuji@0 747 # 1) The sol port is designed to be built using the UCB compiler using the
yuuji@0 748 # SVR4 libraries. This compiler is "ucbcc", which is lunk to acc. You
yuuji@0 749 # use -O2 as one of the CFLAGS.
yuuji@0 750 # 2) If you build the sol port with the UCB compiler using the BSD libraries,
yuuji@0 751 # you will get no error messages but you will get bad binaries (the most
yuuji@0 752 # obvious symptom is dropping the first two characters return filenames
yuuji@0 753 # from the imapd LIST command. This compiler also uses -O2, and is very
yuuji@0 754 # often what the user gets from "cc". BEWARE!!!
yuuji@0 755 # 3) If you build the sol port with the real SVR4 compiler, which is often
yuuji@0 756 # hidden away or unavailable on many systems, then you will get errors
yuuji@0 757 # from -O2 and you need to change that to -O. But you will get a good
yuuji@0 758 # binary. However, you should try it with -O2 first, to make sure that
yuuji@0 759 # you got this compiler and not the UCB compiler using BSD libraries.
yuuji@0 760
yuuji@0 761 sol: os_sol.h # Solaris
yuuji@0 762 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 763 SIGTYPE=psx CHECKPW=psx CRXTYPE=nfs \
yuuji@0 764 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 765 ACTIVEFILE=/usr/share/news/active \
yuuji@0 766 RSHPATH=/usr/bin/rsh \
yuuji@0 767 BASECFLAGS="-g -O2" \
yuuji@0 768 BASELDFLAGS="-lsocket -lnsl -lgen" \
yuuji@0 769 RANLIB=true CC=ucbcc
yuuji@0 770
yuuji@0 771 sos: # Secure OSF/1
yuuji@0 772 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 773 SIGTYPE=psx CHECKPW=sce LOGINPW=sec CRXTYPE=nfs \
yuuji@0 774 BASECFLAGS="-g3 -w -O2 -Olimit 1500" \
yuuji@0 775 BASELDFLAGS="-lsecurity -laud"
yuuji@0 776
yuuji@0 777 ssn: # Secure SUN-OS
yuuji@0 778 $(BUILD) `$(CAT) SPECIALS` OS=sun \
yuuji@0 779 CHECKPW=ssn CRXTYPE=nfs \
yuuji@0 780 BASECFLAGS="-g -Dconst=" \
yuuji@0 781 BASELDFLAGS="-ldl"
yuuji@0 782
yuuji@0 783 sua: # Windows Vista Subsystem for UNIX Applications
yuuji@0 784 $(BUILD) `$(CAT) SPECIALS` OS=sua \
yuuji@0 785 SIGTYPE=psx CRXTYPE=nfs LOGINPW=old \
yuuji@0 786 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 787 ACTIVEFILE=/var/lib/news/active \
yuuji@0 788 RSHPATH=/usr/bin/rsh \
yuuji@0 789 BASECFLAGS="-g -O2" \
yuuji@0 790 BASELDFLAGS="-lcrypt"
yuuji@0 791
yuuji@0 792 sun: # SUN-OS
yuuji@0 793 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 794 CRXTYPE=nfs \
yuuji@0 795 BASECFLAGS="-g -Dconst=" \
yuuji@0 796 BASELDFLAGS="-ldl"
yuuji@0 797
yuuji@0 798 sv2: # SVR2
yuuji@0 799 @echo You are being *very* optimistic!
yuuji@0 800 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 801 SIGTYPE=sv4 LOGINPW=old \
yuuji@0 802 MAILSPOOL=/usr/mail \
yuuji@0 803 RSHPATH=/usr/bin/remsh \
yuuji@0 804 BASECFLAGS="-Dconst= -DSYSTEM5 -DSHORT_IDENT -I/usr/ethernet/include" \
yuuji@0 805 BASELDFLAGS="-lnet" \
yuuji@0 806 RANLIB=true LN=ln
yuuji@0 807
yuuji@0 808 sv4: # SVR4
yuuji@0 809 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 810 SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 \
yuuji@0 811 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 812 ACTIVEFILE=/usr/share/news/active \
yuuji@0 813 RSHPATH=/usr/bin/resh \
yuuji@0 814 BASECFLAGS="-g -Dconst=" \
yuuji@0 815 BASELDFLAGS="-lsocket -lnsl -lgen" \
yuuji@0 816 RANLIB=true
yuuji@0 817
yuuji@0 818 ult: # Ultrix
yuuji@0 819 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 820 SIGTYPE=psx CHECKPW=ult CRXTYPE=nfs \
yuuji@0 821 BASECFLAGS="-g3 -O2 -Olimit 1500 -Dconst=" \
yuuji@0 822 BASELDFLAGS="-lauth -lc"
yuuji@0 823
yuuji@0 824 uw2: # UnixWare SVR4.2
yuuji@0 825 $(BUILD) `$(CAT) SPECIALS` OS=sv4 \
yuuji@0 826 SIGTYPE=sv4 CHECKPW=sv4 \
yuuji@0 827 SPOOLDIR=/var/spool MAILSPOOL=/var/mail \
yuuji@0 828 ACTIVEFILE=/var/news/lib/active \
yuuji@0 829 RSHPATH=/usr/bin/rsh \
yuuji@0 830 BASECFLAGS="-g" \
yuuji@0 831 BASELDFLAGS="-lsocket -lnsl -lgen" \
yuuji@0 832 RANLIB=true
yuuji@0 833
yuuji@0 834 vul: # VAX Ultrix
yuuji@0 835 $(BUILD) `$(CAT) SPECIALS` OS=ult \
yuuji@0 836 SIGTYPE=psx CHECKPW=ult CRXTYPE=nfs \
yuuji@0 837 BASECFLAGS="-O2 -Dconst=" \
yuuji@0 838 BASELDFLAGS="-lauth -lc"
yuuji@0 839
yuuji@0 840 vu2: # VAX Ultrix 2.3, etc.
yuuji@0 841 $(BUILD) `$(CAT) SPECIALS` OS=$@ \
yuuji@0 842 CRXTYPE=nfs \
yuuji@0 843 BASECFLAGS="-O2 -Dconst= -Dvoid=char"
yuuji@0 844
yuuji@0 845
yuuji@0 846 # Build it!
yuuji@0 847
yuuji@0 848 build: clean once $(ARCHIVE)
yuuji@0 849
yuuji@0 850 all: $(ARCHIVE)
yuuji@0 851
yuuji@0 852 $(ARCHIVE): $(BINARIES)
yuuji@0 853 sh -c '$(RM) $(ARCHIVE) || true'
yuuji@0 854 @$(CAT) ARCHIVE
yuuji@0 855 @$(SH) ARCHIVE
yuuji@0 856
yuuji@0 857 .c.o:
yuuji@0 858 `$(CAT) CCTYPE` -c `$(CAT) CFLAGS` $*.c
yuuji@0 859
yuuji@0 860
yuuji@0 861 # Cleanup
yuuji@0 862
yuuji@0 863 clean:
yuuji@0 864 sh -c '$(RM) auths.c crexcl.c ip_unix.c linkage.[ch] siglocal.c osdep*.[ch] *.o ARCHIVE *FLAGS *TYPE $(ARCHIVE) || true'
yuuji@0 865
yuuji@0 866
yuuji@0 867 # Dependencies
yuuji@0 868
yuuji@0 869 dummy.o: mail.h misc.h osdep.h dummy.h
yuuji@0 870 fdstring.o: mail.h misc.h osdep.h fdstring.h
yuuji@0 871 flstring.o: mail.h misc.h osdep.h flstring.h
yuuji@0 872 imap4r1.o: mail.h misc.h osdep.h imap4r1.h rfc822.h
yuuji@0 873 mail.o: mail.h misc.h osdep.h rfc822.h linkage.h
yuuji@0 874 mbx.o: mail.h misc.h osdep.h dummy.h
yuuji@0 875 mh.o: mail.h misc.h osdep.h dummy.h
yuuji@0 876 mix.o: mail.h misc.h osdep.h dummy.h
yuuji@0 877 mx.o: mail.h misc.h osdep.h dummy.h
yuuji@0 878 misc.o: mail.h misc.h osdep.h
yuuji@0 879 mmdf.o: mail.h misc.h osdep.h pseudo.h dummy.h
yuuji@0 880 mtx.o: mail.h misc.h osdep.h dummy.h
yuuji@0 881 netmsg.o: mail.h misc.h osdep.h netmsg.h
yuuji@0 882 news.o: mail.h misc.h osdep.h
yuuji@0 883 newsrc.o: mail.h misc.h osdep.h newsrc.h
yuuji@0 884 nntp.o: mail.h misc.h osdep.h netmsg.h smtp.h nntp.h rfc822.h
yuuji@0 885 phile.o: mail.h misc.h osdep.h rfc822.h dummy.h
yuuji@0 886 pseudo.o: pseudo.h
yuuji@0 887 pop3.o: mail.h misc.h osdep.h rfc822.h
yuuji@0 888 smanager.o: mail.h misc.h osdep.h
yuuji@0 889 smtp.o: mail.h misc.h osdep.h smtp.h rfc822.h
yuuji@0 890 rfc822.o: mail.h misc.h osdep.h rfc822.h
yuuji@0 891 tenex.o: mail.h misc.h osdep.h dummy.h
yuuji@0 892 unix.o: mail.h misc.h osdep.h unix.h pseudo.h dummy.h
yuuji@0 893 utf8.o: mail.h misc.h osdep.h utf8.h tmap.c widths.c
yuuji@0 894 utf8aux.o: mail.h misc.h osdep.h utf8.h
yuuji@0 895
yuuji@0 896
yuuji@0 897 # OS-dependent
yuuji@0 898
yuuji@0 899 osdep.o:mail.h misc.h env.h fs.h ftl.h nl.h tcp.h \
yuuji@0 900 osdep.h env_unix.h tcp_unix.h \
yuuji@0 901 osdep.c env_unix.c fs_unix.c ftl_unix.c nl_unix.c tcp_unix.c ip_unix.c\
yuuji@0 902 auths.c crexcl.c flockcyg.c flocklnx.c flocksim.c fsync.c \
yuuji@0 903 gethstid.c getspnam.c \
yuuji@0 904 gr_wait.c gr_wait4.c gr_waitp.c \
yuuji@0 905 kerb_mit.c \
yuuji@0 906 auth_ext.c auth_gss.c auth_log.c auth_md5.c auth_pla.c \
yuuji@0 907 pmatch.c scandir.c setpgrp.c strerror.c truncate.c write.c \
yuuji@0 908 memmove.c memmove2.c memset.c \
yuuji@0 909 tz_bsd.c tz_nul.c tz_sv4.c \
yuuji@0 910 write.c sslstdio.c \
yuuji@0 911 strerror.c strpbrk.c strstr.c strtok.c strtoul.c \
yuuji@0 912 OSCFLAGS
yuuji@0 913 @echo Building OS-dependent module
yuuji@0 914 @echo If you get No such file error messages for files x509.h, ssl.h,
yuuji@0 915 @echo pem.h, buffer.h, bio.h, and crypto.h, that means that OpenSSL
yuuji@0 916 @echo is not installed on your system. Either install OpenSSL first
yuuji@0 917 @echo or build with command: make `$(CAT) OSTYPE` SSLTYPE=none
yuuji@0 918 `$(CAT) CCTYPE` -c `$(CAT) CFLAGS` `$(CAT) OSCFLAGS` -c osdep.c
yuuji@0 919
yuuji@0 920 osdep.c: osdepbas.c osdepckp.c osdeplog.c osdepssl.c
yuuji@0 921 $(CAT) osdepbas.c osdepckp.c osdeplog.c osdepssl.c > osdep.c
yuuji@0 922
yuuji@0 923 osdepbas.c:
yuuji@0 924 @echo osdepbas.c not found...try make clean and new make
yuuji@0 925 @false
yuuji@0 926
yuuji@0 927 osdepckp.c:
yuuji@0 928 @echo osdepckp.c not found...try make clean and new make
yuuji@0 929 @false
yuuji@0 930
yuuji@0 931 osdeplog.c:
yuuji@0 932 @echo osdeplog.c not found...try make clean and new make
yuuji@0 933 @false
yuuji@0 934
yuuji@0 935 osdepssl.c:
yuuji@0 936 @echo osdepssl.c not found...try make clean and new make
yuuji@0 937 @false
yuuji@0 938
yuuji@0 939 siglocal.c:
yuuji@0 940 @echo siglocal.c not found...try make clean and new make
yuuji@0 941 @false
yuuji@0 942
yuuji@0 943 crexcl.c:
yuuji@0 944 @echo crexcl.c not found...do make clean and new make
yuuji@0 945 @false
yuuji@0 946
yuuji@0 947 ip_unix.c:
yuuji@0 948 @echo ip_unix.c not found...do make clean and new make
yuuji@0 949 @false
yuuji@0 950
yuuji@0 951 os_sol.h:
yuuji@0 952 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'
yuuji@0 953
yuuji@0 954
yuuji@0 955 # Once-only environment setup
yuuji@0 956
yuuji@0 957 once: onceenv ckp$(PASSWDTYPE) ssl$(SSLTYPE) osdep.c
yuuji@0 958
yuuji@0 959 onceenv:
yuuji@0 960 @echo Once-only environment setup...
yuuji@0 961 echo $(CC) > CCTYPE
yuuji@0 962 echo $(BASECFLAGS) '$(EXTRACFLAGS)' -DCHUNKSIZE=$(CHUNKSIZE) > CFLAGS
yuuji@0 963 echo -DCREATEPROTO=$(CREATEPROTO) -DEMPTYPROTO=$(EMPTYPROTO) \
yuuji@0 964 -DMD5ENABLE=\"$(MD5PWD)\" -DMAILSPOOL=\"$(MAILSPOOL)\" \
yuuji@0 965 -DANONYMOUSHOME=\"$(MAILSPOOL)/anonymous\" \
yuuji@0 966 -DACTIVEFILE=\"$(ACTIVEFILE)\" -DNEWSSPOOL=\"$(NEWSSPOOL)\" \
yuuji@0 967 -DRSHPATH=\"$(RSHPATH)\" -DLOCKPGM=\"$(LOCKPGM)\" \
yuuji@0 968 -DLOCKPGM1=\"$(LOCKPGM1)\" -DLOCKPGM2=\"$(LOCKPGM2)\" \
yuuji@0 969 -DLOCKPGM3=\"$(LOCKPGM3)\" > OSCFLAGS
yuuji@0 970 echo $(BASELDFLAGS) $(EXTRALDFLAGS) > LDFLAGS
yuuji@0 971 echo "$(ARRC) $(ARCHIVE) $(BINARIES);$(RANLIB) $(ARCHIVE)" > ARCHIVE
yuuji@0 972 echo $(OS) > OSTYPE
yuuji@0 973 ./drivers $(EXTRADRIVERS) $(DEFAULTDRIVERS) dummy
yuuji@0 974 ./mkauths $(EXTRAAUTHENTICATORS) $(DEFAULTAUTHENTICATORS)
yuuji@0 975 echo " mail_versioncheck (CCLIENTVERSION);" >> linkage.c
yuuji@0 976 $(LN) os_$(OS).h osdep.h
yuuji@0 977 $(LN) os_$(OS).c osdepbas.c
yuuji@0 978 $(LN) log_$(LOGINPW).c osdeplog.c
yuuji@0 979 $(LN) sig_$(SIGTYPE).c siglocal.c
yuuji@0 980 $(LN) crx_$(CRXTYPE).c crexcl.c
yuuji@0 981 $(LN) ip$(IP)_unix.c ip_unix.c
yuuji@0 982 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'
yuuji@0 983
yuuji@0 984
yuuji@0 985 # Password checkers
yuuji@0 986
yuuji@0 987 ckpafs: # AFS
yuuji@0 988 @echo AFS password authentication
yuuji@0 989 echo $(AFSCFLAGS) >> OSCFLAGS
yuuji@0 990 # echo $(AFSLDFLAGS) >> LDFLAGS
yuuji@0 991 # Note: Steve Roseman says that AFS libraries have to be lunk before SSL
yuuji@0 992 echo $(AFSLDFLAGS) `$(CAT) LDFLAGS` > LDFLAGS.tmp
yuuji@0 993 mv LDFLAGS.tmp LDFLAGS
yuuji@0 994 $(LN) ckp_afs.c osdepckp.c
yuuji@0 995
yuuji@0 996 ckpdce: # DCE
yuuji@0 997 @echo DCE password authentication
yuuji@0 998 echo $(DCECFLAGS) >> OSCFLAGS
yuuji@0 999 echo $(DCELDFLAGS) >> LDFLAGS
yuuji@0 1000 $(LN) ckp_dce.c osdepckp.c
yuuji@0 1001
yuuji@0 1002 ckpgss: # Kerberos V (must have gss EXTRAAUTHENTICATOR as well)
yuuji@0 1003 @echo Kerberos V password authentication
yuuji@0 1004 $(LN) ckp_gss.c osdepckp.c
yuuji@0 1005
yuuji@0 1006 ckpnul: # NUL authenticator (disables all plaintext authentication)
yuuji@0 1007 @echo Plaintext authentication prohibited
yuuji@0 1008 echo " mail_parameters (NIL,SET_DISABLEPLAINTEXT,(void *) 1);" >> linkage.c
yuuji@0 1009 $(LN) ckp_nul.c osdepckp.c
yuuji@0 1010
yuuji@0 1011 ckppam: # Pluggable Authentication Modules authenticator
yuuji@0 1012 @echo PAM password authentication
yuuji@0 1013 echo $(PAMLDFLAGS) >> LDFLAGS
yuuji@0 1014 $(LN) ckp_pam.c osdepckp.c
yuuji@0 1015
yuuji@0 1016 ckppmb: # Broken (e.g. SUN) Pluggable Authentication Modules authenticator
yuuji@0 1017 @echo Broken PAM password authentication
yuuji@0 1018 echo $(PAMLDFLAGS) >> LDFLAGS
yuuji@0 1019 $(LN) ckp_pmb.c osdepckp.c
yuuji@0 1020
yuuji@0 1021 ckpstd: # Port standard
yuuji@0 1022 @echo Standard password authentication
yuuji@0 1023 $(LN) ckp_$(CHECKPW).c osdepckp.c
yuuji@0 1024
yuuji@0 1025 ckptwo: # Something plus standard
yuuji@0 1026 @echo $(CHECKPWALT) password authentication first, then standard
yuuji@0 1027 $(CAT) ckp_1st.c ckp_$(CHECKPWALT).c ckp_2nd.c ckp_$(CHECKPW).c \
yuuji@0 1028 ckp_3rd.c > osdepckp.c
yuuji@0 1029
yuuji@0 1030
yuuji@0 1031 # SSL support
yuuji@0 1032
yuuji@0 1033 sslnone:# No SSL
yuuji@0 1034 @echo Building without SSL support
yuuji@0 1035 $(LN) ssl_none.c osdepssl.c
yuuji@0 1036
yuuji@0 1037 sslnopwd: sslunix snopwd
yuuji@0 1038
yuuji@0 1039 sslunix.nopwd: sslnopwd
yuuji@0 1040
yuuji@0 1041 sslsco.nopwd: sslsco snopwd
yuuji@0 1042
yuuji@0 1043 sslunix: sbasic sldunix
yuuji@0 1044
yuuji@0 1045 sslsco: sbasic sldsco
yuuji@0 1046
yuuji@0 1047 sbasic: # UNIX OpenSSL
yuuji@0 1048 @echo Building with SSL
yuuji@0 1049 $(LN) ssl_unix.c osdepssl.c
yuuji@0 1050 echo $(SSLCFLAGS) >> OSCFLAGS
yuuji@0 1051 echo " ssl_onceonlyinit ();" >> linkage.c
yuuji@0 1052
yuuji@0 1053 snopwd: # Plaintext disable
yuuji@0 1054 @echo Building with SSL and plaintext passwords disabled unless SSL/TLS
yuuji@0 1055 echo " mail_parameters (NIL,SET_DISABLEPLAINTEXT,(void *) 2);" >> linkage.c
yuuji@0 1056
yuuji@0 1057 sldunix:# Normal UNIX SSL load flags
yuuji@0 1058 echo $(SSLLDFLAGS) >> LDFLAGS
yuuji@0 1059
yuuji@0 1060
yuuji@0 1061 sldsco: # SCO SSL load flags
yuuji@0 1062 # Note: Tim Rice says that SSL has to be lunk before other libraries on SCO.
yuuji@0 1063 echo $(SSLLDFLAGS) `cat LDFLAGS` > LDFLAGS.tmp
yuuji@0 1064 mv LDFLAGS.tmp LDFLAGS
yuuji@0 1065
yuuji@0 1066
yuuji@0 1067 # A monument to a hack of long ago and far away...
yuuji@0 1068
yuuji@0 1069 love:
yuuji@0 1070 @echo not war?

UW-IMAP'd extensions by yuuji