1 # ========================================================================
2 # Copyright 2008-2011 Mark Crispin
3 # ========================================================================
5 # Program: C client makefile
8 # Networks and Distributed Computing
9 # Computing & Communications
10 # University of Washington
11 # Administration Building, AG-44
13 # Internet: MRC@CAC.Washington.EDU
16 # Last Edited: 29 August 2011
18 # Previous versions of this file were
20 # Copyright 1988-2008 University of Washington
22 # Licensed under the Apache License, Version 2.0 (the "License");
23 # you may not use this file except in compliance with the License.
24 # You may obtain a copy of the License at
26 # http://www.apache.org/licenses/LICENSE-2.0
29 # Command line build parameters
38 # The optimization level here for GCC ports is set here for a reason. It's
39 # to get you to read this text.
40 # The general concensus seems to be that -O2 is the one to use.
41 # Over the years, I've been told to use many different settings, including -O6.
42 # In recent versions of GCC [as of 2/2005], -O6 generates bad code that, among
43 # other ill effects, causes infinite loops.
44 # -O3 seems to be safe, but empirical observation from our local expert
45 # indicates that in some (many?) cases -O3 code runs slower than -O2.
50 # Try to have some consistency in GCC builds. We want optimization, but we
51 # also want to be able to debug.
53 GCCCFLAGS
= -g
$(GCCOPTLEVEL
) -pipe
-fno-omit-frame-pointer
54 GCC4CFLAGS
= $(GCCCFLAGS
) -Wno-pointer-sign
57 # Extended flags needed for SSL. You may need to modify.
60 SSLCERTS
=$(SSLDIR
)/certs
62 SSLINCLUDE
=$(SSLDIR
)/include
67 # Older versions of MIT Kerberos also have a libcrypto. If so, you may need
69 #SSLCRYPTO=$(SSLLIB)/libcrypto.a
71 # RSA Security Inc. released the RSA public key encryption algorithm into
72 # the public domain on September 6, 2000. There is no longer any need to
74 SSLRSA
= # -lRSAglue -lrsaref
76 SSLCFLAGS
= -I
$(SSLINCLUDE
) -I
$(SSLINCLUDE
)/openssl\
77 -DSSL_CERT_DIRECTORY
=\"$(SSLCERTS
)\" -DSSL_KEY_DIRECTORY
=\"$(SSLKEYS
)\"
78 SSLLDFLAGS
= -L
$(SSLLIB
) -lssl
$(SSLCRYPTO
) $(SSLRSA
)
81 # Extended flags needed for non-standard passwd types. You may need to modify.
84 AFSCFLAGS
=-I
$(AFSDIR
)/include
86 AFSLDFLAGS
=-L
$(AFSLIB
)/afs
-L
$(AFSLIB
) -L
$(AFSDIR
)/domestic
/lib\
87 -lkauth
-lprot
-lubik
-lauth
-lrxkad
-lrx
-llwp
-ldes
-lcom_err\
88 $(AFSLIB
)/afs
/util.a
-laudit
-lsys
89 # AFSLDFLAGS may also need -L/usr/ucblib -lucb
90 DCECFLAGS
= -DDCE_MINIMAL
-DPASSWD_OVERRIDE
=\"/opt
/pop3
/passwd
/passwd
\"
92 PAMLDFLAGS
= -lpam
-ldl
95 # Build parameters normally set by the individual port
101 ACTIVEFILE
=/usr
/lib
/news
/active
103 MAILSPOOL
=$(SPOOLDIR
)/mail
104 NEWSSPOOL
=$(SPOOLDIR
)/news
106 MD5PWD
=/etc
/cram-md5.pwd
107 # Tries one of the test alternatives below if not specified.
109 # Test alternatives if LOCKPGM not specified
110 LOCKPGM1
=/usr
/libexec
/mlock
111 LOCKPGM2
=/usr
/sbin
/mlock
113 LOCKPGM4
=/usr
/bin
/mlock
116 # Default formats for creating new mailboxes and for empty mailboxes in the
117 # default namespace; must be set to the associated driver's prototype.
119 # The CREATEPROTO is the default format for new mailbox creation.
120 # The EMPTYPROTO is the default format for handling zero-byte files.
122 # Normally, this is set by the individual port.
124 # NOTE: namespace formats (e.g. mh and news) can not be set as a default format
125 # since they do not exist in the default namespace. Also, it is meaningless to
126 # set certain other formats (e.g. mbx, mx, and mix) as the EMPTYPROTO since
127 # these formats can never be empty files.
129 CREATEPROTO
=unixproto
133 # Commands possibly overriden by the individual port
141 # Standard distribution build parameters
143 DEFAULTAUTHENTICATORS
=ext md5 pla log
145 # mh needs to be after any other directory format drivers (such as mx or mix)
146 # since otherwise mh will seize any directory that is under the mh path.
147 # However, mh needs to be before any sysinbox formats (such as mmdf or unix)
148 # since otherwise INBOX won't work correctly when mh_allow_inbox is set.
150 DEFAULTDRIVERS
=imap nntp pop3 mix mx mbx tenex mtx mh mmdf unix news phile
153 # Normally no need to change any of these
156 BINARIES
=osdep.o mail.o misc.o newsrc.o smanager.o utf8.o utf8aux.o siglocal.o \
157 dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
158 rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
159 unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o
169 # Primary build command
171 BUILD
=$(MAKE
) build EXTRACFLAGS
='$(EXTRACFLAGS)'\
172 EXTRALDFLAGS
='$(EXTRALDFLAGS)'\
173 EXTRADRIVERS
='$(EXTRADRIVERS)' EXTRAAUTHENTICATORS
='$(EXTRAAUTHENTICATORS)'\
174 PASSWDTYPE
=$(PASSWDTYPE
) SSLTYPE
=$(SSLTYPE
) IP
=$(IP
)
177 # Here if no make argument established
180 $(MAKE
) all `$(CAT) SPECIALS`
183 @echo You must specify what type of system
189 a32
: # AIX 3.2 for RS/6000
190 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
191 SIGTYPE
=psx CRXTYPE
=nfs \
192 SPOOLDIR
=/var
/spool \
193 RSHPATH
=/usr
/bin
/rsh \
194 BASECFLAGS
="-g -Dunix=1 -D_BSD" \
197 a41
: # AIX 4.1 for RS/6000
198 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
199 SIGTYPE
=psx CHECKPW
=a41 CRXTYPE
=nfs \
200 SPOOLDIR
=/var
/spool \
201 RSHPATH
=/usr
/bin
/rsh \
202 BASECFLAGS
="-g -Dunix=1 -D_BSD -qro -qroconst" \
206 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
207 SIGTYPE
=psx CHECKPW
=a41 CRXTYPE
=nfs \
208 SPOOLDIR
=/var
/spool \
209 RSHPATH
=/usr
/bin
/rsh \
210 BASECFLAGS
="-g -Dunix=1 -D_BSD -qro -qroconst" \
214 @echo You are building for AIX on an S
/370 class machine
215 @echo If you want AIX on an RS
/6000 you need to use a32 or a41 instead
!
216 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
222 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
224 BASECFLAGS
="-g -Dconst="
226 art
: # AIX 2.2.1 for RT
227 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
230 ACTIVEFILE
=/usr
/local
/news
/control
/active \
232 BASECFLAGS
="-g -Dconst= -Dvoid=char" \
236 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
237 SIGTYPE
=sv4 LOGINPW
=old \
238 ACTIVEFILE
=/usr
/spool
/news
/active \
239 RSHPATH
=/usr
/bin
/rcmd \
240 BASECFLAGS
="-Dconst= -DSIGSTOP=SIGKILL" \
241 BASELDFLAGS
="-lsocket -lrpc -lgen -lcrypt -lxenix" \
245 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
247 MAILSPOOL
=/usr
/mail \
248 BASECFLAGS
="-g -B/usr/lib/big/ -Dvoid=char -Dconst=" \
249 RANLIB
=true ARRC
="ar -rc"
251 bs3
: # BSD/i386 3.0 or higher
252 $(BUILD
) `$(CAT) SPECIALS` OS
=bsi \
253 CHECKPW
=bsi LOGINPW
=bsi CRXTYPE
=nfs \
254 SPOOLDIR
=/var NEWSSPOOL
=/var
/news
/spool \
255 ACTIVEFILE
=/var
/news
/etc
/active \
256 RSHPATH
=/usr
/bin
/rsh \
257 BASECFLAGS
="$(GCCCFLAGS)" CC
=shlicc
260 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
262 BASECFLAGS
="-g -Dconst="
265 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
266 SIGTYPE
=psx CRXTYPE
=nfs \
268 ACTIVEFILE
=/usr
/local
/news
/lib
/active \
269 RSHPATH
=/usr
/bin
/rsh \
270 BASECFLAGS
="$(GCCCFLAGS)" \
271 BASELDFLAGS
="-lcrypt"
274 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
276 SPOOLDIR
=/var NEWSSPOOL
=/var
/news
/spool \
277 ACTIVEFILE
=/var
/news
/etc
/active \
278 RSHPATH
=/usr
/bin
/rsh \
279 BASECFLAGS
="$(GCCCFLAGS)"
282 $(BUILD
) `$(CAT) SPECIALS` OS
=bsi \
283 SIGTYPE
=psx CRXTYPE
=nfs \
285 ACTIVEFILE
=/usr
/local
/news
/lib
/active \
286 RSHPATH
=/usr
/bin
/rsh \
287 BASECFLAGS
="$(GCCCFLAGS)"
290 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
292 BASECFLAGS
="-O -ext -Dconst="
294 cyg
: # Cygwin - note that most local file drivers don't work!!
295 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
296 DEFAULTDRIVERS
="imap nntp pop3 mbx unix phile" \
297 SIGTYPE
=psx CHECKPW
=cyg LOGINPW
=cyg CRXTYPE
=std \
299 ACTIVEFILE
=/usr
/local
/news
/lib
/active \
300 RSHPATH
=/usr
/bin
/rsh \
301 BASECFLAGS
="$(GCCCFLAGS)" \
302 BASELDFLAGS
="-lcrypt" \
305 d-g
: # Data General DG/UX
306 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
307 SIGTYPE
=sv4 CRXTYPE
=nfs \
308 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
309 ACTIVEFILE
=/local
/news
/active \
310 RSHPATH
=/usr
/bin
/remsh \
311 BASECFLAGS
="-g -Dconst=" \
312 BASELDFLAGS
="-lnsl -lsocket" \
315 d54
: # Data General DG/UX 5.4
316 $(BUILD
) `$(CAT) SPECIALS` OS
=d-g \
317 SIGTYPE
=sv4 CRXTYPE
=nfs \
318 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
319 ACTIVEFILE
=/local
/news
/active \
320 RSHPATH
=/usr
/bin
/remsh \
321 BASECFLAGS
="-g -Dconst=" \
322 BASELDFLAGS
="-lnsl -lsocket" \
326 $(BUILD
) `$(CAT) SPECIALS` OS
=sv4 \
327 SIGTYPE
=sv4 CHECKPW
=sv4 LOGINPW
=sv4 \
328 RSHPATH
=/usr
/bin
/remsh \
329 BASECFLAGS
="-Dconst= -DSYSTEM5 -DSHORT_IDENT" \
330 BASELDFLAGS
="-linet" \
334 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
335 SIGTYPE
=sv4 CHECKPW
=sv4 LOGINPW
=sv4 CRXTYPE
=nfs \
336 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
337 ACTIVEFILE
=/var
/lib
/news
/active \
338 RSHPATH
=/usr
/bin
/rsh \
340 BASELDFLAGS
="-lsocket -lgen" \
343 do4
: # Apollo Domain/OS sr10.4
344 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
346 BASECFLAGS
="-A systype,bsd4.3 -D_APOLLO_SOURCE" \
350 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
352 BASECFLAGS
="-g -Dconst="
355 $(BUILD
) `$(CAT) SPECIALS` OS
=sv4 \
356 SIGTYPE
=sv4 CHECKPW
=sv4 LOGINPW
=sv4 \
357 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
358 ACTIVEFILE
=/usr
/share
/news
/active \
359 RSHPATH
=/usr
/net
/rsh \
360 BASECFLAGS
="-g -systype svr4" \
361 BASELDFLAGS
="-lsocket -lnsl -lgen" \
364 ga4
: # GCC AIX 4.1 for RS/6000
365 $(BUILD
) `$(CAT) SPECIALS` OS
=a41 \
366 SIGTYPE
=psx CHECKPW
=a41 CRXTYPE
=nfs \
367 SPOOLDIR
=/var
/spool \
368 RSHPATH
=/usr
/bin
/rsh \
369 BASECFLAGS
="-g -Dunix=1 -D_BSD" \
372 gas
: # GCC Altos SVR4
373 $(BUILD
) `$(CAT) SPECIALS` OS
=asv \
374 SIGTYPE
=sv4 LOGINPW
=old \
375 ACTIVEFILE
=/usr
/spool
/news
/active \
376 RSHPATH
=/usr
/bin
/rcmd \
377 BASECFLAGS
="-g -O -DALTOS_SYSTEM_V -DSIGSTOP=SIGKILL" \
378 BASELDFLAGS
="-lsocket -lrpc -lgen -lcrypt -lxenix" \
382 $(BUILD
) `$(CAT) SPECIALS` OS
=hpp \
383 SIGTYPE
=psx CRXTYPE
=nfs \
384 MAILSPOOL
=/usr
/mail \
385 RSHPATH
=/usr
/bin
/remsh \
386 BASECFLAGS
="$(GCCCFLAGS)" \
389 ghp
: # GCC HP-UX 10.x
390 $(BUILD
) `$(CAT) SPECIALS` OS
=hpp \
391 SIGTYPE
=psx CRXTYPE
=nfs \
393 ACTIVEFILE
=/var
/news
/active \
394 RSHPATH
=/usr
/bin
/remsh \
395 BASECFLAGS
="$(GCCCFLAGS)" \
398 ghs
: # GCC HP-UX with Trusted Computer Base
399 $(BUILD
) `$(CAT) SPECIALS` OS
=shp \
400 SIGTYPE
=psx CHECKPW
=sec CRXTYPE
=nfs \
402 ACTIVEFILE
=/var
/news
/active \
403 RSHPATH
=/usr
/bin
/remsh \
404 BASECFLAGS
="$(GCCCFLAGS)" \
405 BASELDFLAGS
="-lnet -lV3 -lsec" \
408 go5
: # GCC 2.7.1 (95q4) SCO Open Server 5.0.x
409 $(BUILD
) `$(CAT) SPECIALS` OS
=sc5 \
410 SIGTYPE
=psx CHECKPW
=sec LOGINPW
=sec \
411 CREATEPROTO
=mmdfproto EMPTYPROTO
=mmdfproto \
412 SPOOLDIR
=/var
/spool \
413 ACTIVEFILE
=/var
/lib
/news
/active \
414 RSHPATH
=/usr
/bin
/rcmd \
415 BASECFLAGS
="$(GCCCFLAGS) -I/usr/include -L/lib" \
416 BASELDFLAGS
="-lsocket -lprot -lx -ltinfo -lm" \
419 gsc
: # Santa Cruz Operation
420 $(BUILD
) `$(CAT) SPECIALS` OS
=sco \
421 SIGTYPE
=sv4 CHECKPW
=sec LOGINPW
=sec \
422 CREATEPROTO
=mmdfproto EMPTYPROTO
=mmdfproto \
423 RSHPATH
=/usr
/bin
/rcmd \
424 BASECFLAGS
="$(GCCCFLAGS)" \
425 BASELDFLAGS
="-lsocket -lprot -lcrypt_i -lx -los" \
426 RANLIB
=true LN
=ln CC
=gcc
428 gsg
: # GCC Silicon Graphics
429 $(BUILD
) `$(CAT) SPECIALS` OS
=sgi \
430 SIGTYPE
=sv4 CRXTYPE
=nfs \
431 MAILSPOOL
=/usr
/mail \
432 RSHPATH
=/usr
/bsd
/rsh \
433 BASECFLAGS
="$(GCCCFLAGS)" \
436 gso
: os_sol.h
# GCC Solaris
437 $(BUILD
) `$(CAT) SPECIALS` OS
=sol \
438 SIGTYPE
=psx CHECKPW
=psx CRXTYPE
=nfs \
439 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
440 ACTIVEFILE
=/usr
/share
/news
/active \
441 RSHPATH
=/usr
/bin
/rsh \
442 BASECFLAGS
="$(GCCCFLAGS)" \
443 BASELDFLAGS
="-lsocket -lnsl -lgen -R/usr/local/ssl/lib" \
447 $(BUILD
) `$(CAT) SPECIALS` OS
=sun \
449 BASECFLAGS
="$(GCCCFLAGS)" \
454 $(BUILD
) `$(CAT) SPECIALS` OS
=ult \
455 SIGTYPE
=psx CHECKPW
=ult CRXTYPE
=nfs \
456 BASECFLAGS
="$(GCCCFLAGS)" \
457 BASELDFLAGS
="-lauth -lc" \
461 $(BUILD
) `$(CAT) SPECIALS` OS
=hpp \
462 SIGTYPE
=psx CRXTYPE
=nfs \
464 ACTIVEFILE
=/var
/news
/active \
465 RSHPATH
=/usr
/bin
/remsh \
466 BASECFLAGS
="-g -Ae" \
470 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
471 SIGTYPE
=psx CRXTYPE
=nfs \
472 MAILSPOOL
=/usr
/mail \
473 RSHPATH
=/usr
/bin
/remsh \
474 BASECFLAGS
="-g -Aa -D_HPUX_SOURCE" \
475 BASELDFLAGS
="-lnet -lV3" \
479 $(BUILD
) `$(CAT) SPECIALS` OS
=hpp \
480 SIGTYPE
=psx CRXTYPE
=nfs \
482 ACTIVEFILE
=/var
/news
/active \
483 RSHPATH
=/usr
/bin
/remsh \
484 BASECFLAGS
="-g -Ae" \
485 BASELDFLAGS
="-lnet -lV3" \
489 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
490 SIGTYPE
=sv4 CHECKPW
=sv4 LOGINPW
=sv4 \
491 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
492 ACTIVEFILE
=/var
/spool
/news
/active \
493 BASECFLAGS
="-Xp -D_SYSV3" \
494 BASELDFLAGS
="-linet -lnsl_s -lgen -lx -lsec -liberty" \
497 lnp
: # Linux Pluggable Authentication modules
498 $(BUILD
) `$(CAT) SPECIALS` OS
=slx \
499 SIGTYPE
=psx CHECKPW
=pam CRXTYPE
=nfs \
500 SPOOLDIR
=/var
/spool \
501 ACTIVEFILE
=/var
/lib
/news
/active \
502 RSHPATH
=/usr
/bin
/rsh \
503 BASECFLAGS
="$(GCCCFLAGS)" \
504 BASELDFLAGS
="$(PAMLDFLAGS)"
506 lnx
: # Linux non-shadow passwords
507 @echo You are building for traditional Linux
*without
* shadow
508 @echo passwords and with the crypt function in the C library.
509 @echo If your system has shadow passwords
, or if crypt is not
510 @echo in the C library
, you must use slx
, sl4
, or sl5 instead
!
511 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
512 SIGTYPE
=psx CRXTYPE
=nfs \
513 SPOOLDIR
=/var
/spool \
514 ACTIVEFILE
=/var
/lib
/news
/active \
515 RSHPATH
=/usr
/bin
/rsh \
516 BASECFLAGS
="$(GCCCFLAGS)"
519 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
522 BASECFLAGS
="$(GCCCFLAGS)" \
526 mct
: # MachTen - CRXTYPE=nfs doesn't work (at least not on 2.2)
527 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
528 SPOOLDIR
=/var
/spool \
529 BASECFLAGS
="$(GCCCFLAGS)"
532 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
533 SIGTYPE
=psx CRXTYPE
=nfs \
534 SPOOLDIR
=/var
/spool \
535 ACTIVEFILE
=/var
/lib
/news
/active \
536 RSHPATH
=/usr
/bin
/rsh \
537 BASECFLAGS
="$(GCCCFLAGS)"
540 $(BUILD
) `$(CAT) SPECIALS` OS
=bsi \
543 ACTIVEFILE
=/var
/db
/news
/active \
544 RSHPATH
=/usr
/bin
/rsh \
545 BASECFLAGS
="$(GCCCFLAGS)" \
546 BASELDFLAGS
="-lcrypt"
549 $(BUILD
) `$(CAT) SPECIALS` OS
=sv4 \
550 SIGTYPE
=sv4 CHECKPW
=sv4 \
551 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
552 ACTIVEFILE
=/var
/news
/lib
/active \
553 RSHPATH
=/usr
/bin
/rsh \
554 BASECFLAGS
="-g -Kopt=2 -KOlimit=2000" \
555 BASELDFLAGS
="-lsocket -lnsl -lgen" \
556 RANLIB
=true CC
=/usr
/abiccs
/bin
/cc
558 nto
: # QNX Neutrino RTP
559 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
561 SPOOLDIR
=/var
/spool \
562 ACTIVEFILE
=/var
/lib
/news
/active \
563 RSHPATH
=/usr
/bin
/rsh \
567 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
569 BASECFLAGS
="$(GCCCFLAGS)"
571 nx3
: # NEXTSTEP 3.0 single threaded
572 $(BUILD
) `$(CAT) SPECIALS` OS
=nxt \
574 BASECFLAGS
="$(GCCCFLAGS)"
575 echo
"void malloc_singlethreaded (void);" >> linkage.h
576 echo
" malloc_singlethreaded ();" >> linkage.c
579 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
580 SIGTYPE
=psx CRXTYPE
=nfs \
581 SPOOLDIR
=/var
/spool \
582 BASECFLAGS
="-g3 -w -O2 -Olimit 1500"
584 # Note: sia_become_user() used by LOGINPW=os4 doesn't seem to work right. The
585 # user doesn't get proper file access, and the process can't be killed.
587 os4
: # OSF/1 (Digital UNIX) 4
588 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
589 SIGTYPE
=psx CHECKPW
=os4 LOGINPW
=os4 CRXTYPE
=nfs \
590 SPOOLDIR
=/var
/spool \
591 BASECFLAGS
="-g3 -w -std0 -O2"
594 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
596 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
597 RSHPATH
=/usr
/bin
/rsh \
598 BASECFLAGS
="$(GCC4CFLAGS)"
601 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
602 SIGTYPE
=psx CHECKPW
=svo LOGINPW
=sv4 CRXTYPE
=nfs \
603 MAILSPOOL
=/usr
/mail \
604 RSHPATH
=/usr
/bin
/resh \
605 BASECFLAGS
="-Wc,-O3 -Wc,-seq -Dprivate=PRIVATE" \
606 BASELDFLAGS
="-lseq -lsec -lsocket -linet -lnsl -lgen" \
610 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
612 BASECFLAGS
="-g -Dconst="
615 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
617 SPOOLDIR
=/var
/spool \
618 ACTIVEFILE
=/var
/lib
/news
/active \
619 RSHPATH
=/usr
/bin
/rsh \
620 BASECFLAGS
="$(GCCFLAGS)"
623 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
624 CHECKPW
=psx LOGINPW
=old \
625 RSHPATH
=/usr
/ucb
/rsh \
626 BASECFLAGS
="-Otax -g -Dunix=1 -D_POSIX_SOURCE" \
627 BASELDFLAGS
="-g -N128k -llogin -lsocket -lunix"
630 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
632 BASECFLAGS
="-g -Dconst="
634 sc5
: # SCO Open Server 5.0
635 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
636 SIGTYPE
=psx CHECKPW
=sec LOGINPW
=sec \
637 CREATEPROTO
=mmdfproto EMPTYPROTO
=mmdfproto \
638 SPOOLDIR
=/var
/spool \
639 ACTIVEFILE
=/var
/lib
/news
/active \
640 RSHPATH
=/usr
/bin
/rcmd \
641 BASECFLAGS
="-O3 -s -belf" \
642 BASELDFLAGS
="-lsocket -lprot -lx -ltinfo -lm" \
645 sco
: # Santa Cruz Operation
646 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
647 SIGTYPE
=sv4 CHECKPW
=sec LOGINPW
=sec \
648 CREATEPROTO
=mmdfproto EMPTYPROTO
=mmdfproto \
649 RSHPATH
=/usr
/bin
/rcmd \
651 BASELDFLAGS
="-lsocket -lprot -lcrypt_i -lx -los" \
654 # Note: setting _POSIX_SOURCE doesn't seem to build it as of SGI IRIX 5.3
656 sgi
: # Silicon Graphics
657 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
658 SIGTYPE
=sv4 CRXTYPE
=nfs \
659 MAILSPOOL
=/usr
/mail \
660 RSHPATH
=/usr
/bsd
/rsh \
661 BASECFLAGS
="-g3 -O2 -Olimit 8192" \
664 sg6
: # Silicon Graphics, IRIX 6.5
665 MAKEFLAGS
= $(BUILD
) `$(CAT) SPECIALS` OS
=sgi \
666 SIGTYPE
=sv4 CRXTYPE
=nfs \
667 MAILSPOOL
=/usr
/mail \
668 RSHPATH
=/usr
/bsd
/rsh \
669 BASECFLAGS
="-g3 -O2 -OPT:Olimit=0 -woff 1110,1116" \
672 # Note: Mark Kaesling says that setluid() isn't in HP-UX with SecureWare.
674 shp
: # HP-UX with Trusted Computer Base
675 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
676 SIGTYPE
=psx CHECKPW
=sec CRXTYPE
=nfs \
678 ACTIVEFILE
=/var
/news
/active \
679 RSHPATH
=/usr
/bin
/remsh \
680 BASECFLAGS
="-g -Ae" \
681 BASELDFLAGS
="-lnet -lV3 -lsec" \
685 @echo You are building for libc6
/glibc versions of Secure Linux
686 @echo If you want libc5 versions you must use sl5 instead
!
687 @echo If you want libc4 versions you must use sl4 instead
!
688 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
689 SIGTYPE
=psx CHECKPW
=psx CRXTYPE
=nfs \
690 SPOOLDIR
=/var
/spool \
691 ACTIVEFILE
=/var
/lib
/news
/active \
692 RSHPATH
=/usr
/bin
/rsh \
693 BASECFLAGS
="$(GCCCFLAGS)" \
694 BASELDFLAGS
="-lcrypt"
696 sl4
: # Secure Linux using libc4
697 @echo You are building for libc4 versions of Secure Linux
698 @echo If you want libc6
/glibc versions you must use slx instead
!
699 @echo If you want libc5 versions you must use sl5 instead
!
700 $(BUILD
) `$(CAT) SPECIALS` OS
=slx \
701 SIGTYPE
=psx CHECKPW
=psx CRXTYPE
=nfs \
702 SPOOLDIR
=/var
/spool \
703 ACTIVEFILE
=/var
/lib
/news
/active \
704 RSHPATH
=/usr
/bin
/rsh \
705 BASECFLAGS
="$(GCCCFLAGS)" \
706 BASELDFLAGS
="-lshadow"
708 sl5
: # Secure Linux using libc5
709 @echo You are building for libc5 versions of Secure Linux
710 @echo If you want libc6
/glibc versions you must use slx instead
!
711 @echo If you want libc4 versions you must use sl4 instead
!
712 $(BUILD
) `$(CAT) SPECIALS` OS
=slx \
713 SIGTYPE
=psx CHECKPW
=psx CRXTYPE
=nfs \
714 SPOOLDIR
=/var
/spool \
715 ACTIVEFILE
=/var
/lib
/news
/active \
716 RSHPATH
=/usr
/bin
/rsh \
717 BASECFLAGS
="$(GCCCFLAGS)"
719 snx
: # Siemens Nixdorf SINIX and Reliant UNIX
720 $(BUILD
) `$(CAT) SPECIALS` OS
=sv4 \
721 SIGTYPE
=psx CHECKPW
=sv4 \
722 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
723 ACTIVEFILE
=/usr
/share
/news
/active \
724 RSHPATH
=/usr
/bin
/rsh \
725 BASECFLAGS
="-g -D_SYS_CLOCK_H -Dconst=" \
726 BASELDFLAGS
="-lsocket -lnsl -lgen" \
729 # Sorry about the -w, but the cretinous SUN Workshop Pro C compiler barfs on
730 # implicit casts between char and unsigned char.
732 soc
: os_sol.h
# Solaris with cc
733 $(BUILD
) `$(CAT) SPECIALS` OS
=sol \
734 SIGTYPE
=psx CHECKPW
=psx CRXTYPE
=nfs \
735 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
736 ACTIVEFILE
=/usr
/share
/news
/active \
737 RSHPATH
=/usr
/bin
/rsh \
738 BASECFLAGS
="-g -O -w" \
739 BASELDFLAGS
="-lsocket -lnsl -lgen -R/usr/local/ssl/lib" \
740 RANLIB
=true CC
=/opt
/SUNWspro
/bin
/cc
743 # Note: It is a long and disgusting story about why cc is set to ucbcc. You
744 # need to invoke the C compiler so that it links with the SVR4 libraries and
745 # not the BSD libraries, otherwise readdir() will return the wrong information.
746 # Of all the names in the most common path, ucbcc is the only name to be found
747 # (on /usr/ccs/bin) that points to a suitable compiler. cc is likely to be
748 # /usr/ucb/cc which is absolutely not the compiler that you want. The real
749 # SVR4 cc is probably something like /opt/SUNWspro/bin/cc which is rarely in
752 # ucbcc is probably a link to acc, e.g. /opt/SUNWspro/SC4.0/bin/acc, and is
753 # the UCB C compiler using the SVR4 libraries.
755 # If ucbcc isn't on your system, then punt on the SUN C compiler and use gcc
756 # instead (the gso port instead of the sol port).
758 # If, in spite of all the above warnings, you choose to use the "soc" port
759 # instead of the "sol" port, be sure to check the behavior of the LIST command
760 # in imapd. Also, note that the "soc" port uses -O. If you want to use the
761 # real SVR4 compiler, you must use -O. If it works to compile with -O2, then
762 # cc is probably using the UCB compiler with BSD libraries, and will not build
766 # 1) The sol port is designed to be built using the UCB compiler using the
767 # SVR4 libraries. This compiler is "ucbcc", which is lunk to acc. You
768 # use -O2 as one of the CFLAGS.
769 # 2) If you build the sol port with the UCB compiler using the BSD libraries,
770 # you will get no error messages but you will get bad binaries (the most
771 # obvious symptom is dropping the first two characters return filenames
772 # from the imapd LIST command. This compiler also uses -O2, and is very
773 # often what the user gets from "cc". BEWARE!!!
774 # 3) If you build the sol port with the real SVR4 compiler, which is often
775 # hidden away or unavailable on many systems, then you will get errors
776 # from -O2 and you need to change that to -O. But you will get a good
777 # binary. However, you should try it with -O2 first, to make sure that
778 # you got this compiler and not the UCB compiler using BSD libraries.
780 sol
: os_sol.h
# Solaris
781 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
782 SIGTYPE
=psx CHECKPW
=psx CRXTYPE
=nfs \
783 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
784 ACTIVEFILE
=/usr
/share
/news
/active \
785 RSHPATH
=/usr
/bin
/rsh \
786 BASECFLAGS
="-g -O2" \
787 BASELDFLAGS
="-lsocket -lnsl -lgen -R/usr/local/ssl/lib" \
791 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
792 SIGTYPE
=psx CHECKPW
=sce LOGINPW
=sec CRXTYPE
=nfs \
793 BASECFLAGS
="-g3 -w -O2 -Olimit 1500" \
794 BASELDFLAGS
="-lsecurity -laud"
797 $(BUILD
) `$(CAT) SPECIALS` OS
=sun \
798 CHECKPW
=ssn CRXTYPE
=nfs \
799 BASECFLAGS
="-g -Dconst=" \
802 sua
: # Windows Vista Subsystem for UNIX Applications
803 $(BUILD
) `$(CAT) SPECIALS` OS
=sua \
804 SIGTYPE
=psx CRXTYPE
=nfs LOGINPW
=old \
805 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
806 ACTIVEFILE
=/var
/lib
/news
/active \
807 RSHPATH
=/usr
/bin
/rsh \
808 BASECFLAGS
="-g -O2" \
809 BASELDFLAGS
="-lcrypt"
812 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
814 BASECFLAGS
="-g -Dconst=" \
818 @echo You are being
*very
* optimistic
!
819 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
820 SIGTYPE
=sv4 LOGINPW
=old \
821 MAILSPOOL
=/usr
/mail \
822 RSHPATH
=/usr
/bin
/remsh \
823 BASECFLAGS
="-Dconst= -DSYSTEM5 -DSHORT_IDENT -I/usr/ethernet/include" \
824 BASELDFLAGS
="-lnet" \
828 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
829 SIGTYPE
=sv4 CHECKPW
=sv4 LOGINPW
=sv4 \
830 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
831 ACTIVEFILE
=/usr
/share
/news
/active \
832 RSHPATH
=/usr
/bin
/resh \
833 BASECFLAGS
="-g -Dconst=" \
834 BASELDFLAGS
="-lsocket -lnsl -lgen" \
838 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
839 SIGTYPE
=psx CHECKPW
=ult CRXTYPE
=nfs \
840 BASECFLAGS
="-g3 -O2 -Olimit 1500 -Dconst=" \
841 BASELDFLAGS
="-lauth -lc"
843 uw2
: # UnixWare SVR4.2
844 $(BUILD
) `$(CAT) SPECIALS` OS
=sv4 \
845 SIGTYPE
=sv4 CHECKPW
=sv4 \
846 SPOOLDIR
=/var
/spool MAILSPOOL
=/var
/mail \
847 ACTIVEFILE
=/var
/news
/lib
/active \
848 RSHPATH
=/usr
/bin
/rsh \
850 BASELDFLAGS
="-lsocket -lnsl -lgen" \
854 $(BUILD
) `$(CAT) SPECIALS` OS
=ult \
855 SIGTYPE
=psx CHECKPW
=ult CRXTYPE
=nfs \
856 BASECFLAGS
="-O2 -Dconst=" \
857 BASELDFLAGS
="-lauth -lc"
859 vu2
: # VAX Ultrix 2.3, etc.
860 $(BUILD
) `$(CAT) SPECIALS` OS
=$@ \
862 BASECFLAGS
="-O2 -Dconst= -Dvoid=char"
867 build
: clean once
$(ARCHIVE
)
871 $(ARCHIVE
): $(BINARIES
)
872 sh
-c
'$(RM) $(ARCHIVE) || true'
877 `$(CAT) CCTYPE` -c
`$(CAT) CFLAGS` $*.c
883 sh
-c
'$(RM) auths.c crexcl.c ip_unix.c linkage.[ch] siglocal.c osdep*.[ch] *.o ARCHIVE *FLAGS *TYPE $(ARCHIVE) || true'
888 dummy.o
: mail.h misc.h osdep.h dummy.h
889 fdstring.o
: mail.h misc.h osdep.h fdstring.h
890 flstring.o
: mail.h misc.h osdep.h flstring.h
891 imap4r1.o
: mail.h misc.h osdep.h imap4r1.h rfc822.h
892 mail.o
: mail.h misc.h osdep.h rfc822.h linkage.h
893 mbx.o
: mail.h misc.h osdep.h dummy.h
894 mh.o
: mail.h misc.h osdep.h dummy.h
895 mix.o
: mail.h misc.h osdep.h dummy.h
896 mx.o
: mail.h misc.h osdep.h dummy.h
897 misc.o
: mail.h misc.h osdep.h
898 mmdf.o
: mail.h misc.h osdep.h pseudo.h dummy.h
899 mtx.o
: mail.h misc.h osdep.h dummy.h
900 netmsg.o
: mail.h misc.h osdep.h netmsg.h
901 news.o
: mail.h misc.h osdep.h
902 newsrc.o
: mail.h misc.h osdep.h newsrc.h
903 nntp.o
: mail.h misc.h osdep.h netmsg.h smtp.h nntp.h rfc822.h
904 phile.o
: mail.h misc.h osdep.h rfc822.h dummy.h
906 pop3.o
: mail.h misc.h osdep.h rfc822.h
907 smanager.o
: mail.h misc.h osdep.h
908 smtp.o
: mail.h misc.h osdep.h smtp.h rfc822.h
909 rfc822.o
: mail.h misc.h osdep.h rfc822.h
910 tenex.o
: mail.h misc.h osdep.h dummy.h
911 unix.o
: mail.h misc.h osdep.h unix.h pseudo.h dummy.h
912 utf8.o
: mail.h misc.h osdep.h utf8.h tmap.c widths.c
913 utf8aux.o
: mail.h misc.h osdep.h utf8.h
918 osdep.o
:mail.h misc.h env.h fs.h ftl.h nl.h tcp.h \
919 osdep.h env_unix.h tcp_unix.h \
920 osdep.c env_unix.c fs_unix.c ftl_unix.c nl_unix.c tcp_unix.c ip_unix.c\
921 auths.c crexcl.c flockcyg.c flocklnx.c flocksim.c fsync.c \
922 gethstid.c getspnam.c \
923 gr_wait.c gr_wait4.c gr_waitp.c \
925 auth_ext.c auth_gss.c auth_log.c auth_md5.c auth_pla.c \
926 pmatch.c scandir.c setpgrp.c strerror.c truncate.c write.c \
927 memmove.c memmove2.c memset.c \
928 tz_bsd.c tz_nul.c tz_sv4.c \
930 strerror.c strpbrk.c strstr.c strtok.c strtoul.c \
932 @echo Building OS-dependent module
933 @echo If you
get No such file error messages for files x509.h
, ssl.h
,
934 @echo pem.h
, buffer.h
, bio.h
, and crypto.h
, that means that OpenSSL
935 @echo is not installed on your system. Either
install OpenSSL first
936 @echo or build with command
: make
`$(CAT) OSTYPE` SSLTYPE
=none
937 `$(CAT) CCTYPE` -c
`$(CAT) CFLAGS` `$(CAT) OSCFLAGS` -c osdep.c
939 osdep.c
: osdepbas.c osdepckp.c osdeplog.c osdepssl.c
940 $(CAT
) osdepbas.c osdepckp.c osdeplog.c osdepssl.c
> osdep.c
943 @echo osdepbas.c not found...try make
clean and new make
947 @echo osdepckp.c not found...try make
clean and new make
951 @echo osdeplog.c not found...try make
clean and new make
955 @echo osdepssl.c not found...try make
clean and new make
959 @echo siglocal.c not found...try make
clean and new make
963 @echo crexcl.c not found...do make
clean and new make
967 @echo ip_unix.c not found...do make
clean and new make
971 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'
974 # Once-only environment setup
976 once
: onceenv ckp
$(PASSWDTYPE
) ssl
$(SSLTYPE
) osdep.c
979 @echo Once-only environment setup...
981 echo
$(BASECFLAGS
) '$(EXTRACFLAGS)' -DCHUNKSIZE
=$(CHUNKSIZE
) > CFLAGS
982 echo
-DCREATEPROTO
=$(CREATEPROTO
) -DEMPTYPROTO
=$(EMPTYPROTO
) \
983 -DMD5ENABLE
=\"$(MD5PWD
)\" -DMAILSPOOL
=\"$(MAILSPOOL
)\" \
984 -DANONYMOUSHOME
=\"$(MAILSPOOL
)/anonymous
\" \
985 -DACTIVEFILE
=\"$(ACTIVEFILE
)\" -DNEWSSPOOL
=\"$(NEWSSPOOL
)\" \
986 -DRSHPATH
=\"$(RSHPATH
)\" -DLOCKPGM
=\"$(LOCKPGM
)\" \
987 -DLOCKPGM1
=\"$(LOCKPGM1
)\" -DLOCKPGM2
=\"$(LOCKPGM2
)\" \
988 -DLOCKPGM3
=\"$(LOCKPGM3
)\" -DLOCKPGM4
=\"$(LOCKPGM4
)\" > OSCFLAGS
989 echo
$(BASELDFLAGS
) $(EXTRALDFLAGS
) > LDFLAGS
990 echo
"$(ARRC) $(ARCHIVE) $(BINARIES);$(RANLIB) $(ARCHIVE)" > ARCHIVE
992 .
/drivers
$(EXTRADRIVERS
) $(DEFAULTDRIVERS
) dummy
993 .
/mkauths
$(EXTRAAUTHENTICATORS
) $(DEFAULTAUTHENTICATORS
)
994 echo
" mail_versioncheck (CCLIENTVERSION);" >> linkage.c
995 $(LN
) os_
$(OS
).h osdep.h
996 $(LN
) os_
$(OS
).c osdepbas.c
997 $(LN
) log_
$(LOGINPW
).c osdeplog.c
998 $(LN
) sig_
$(SIGTYPE
).c siglocal.c
999 $(LN
) crx_
$(CRXTYPE
).c crexcl.c
1000 $(LN
) ip
$(IP
)_unix.c ip_unix.c
1001 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'
1007 @echo AFS password authentication
1008 echo
$(AFSCFLAGS
) >> OSCFLAGS
1009 # echo $(AFSLDFLAGS) >> LDFLAGS
1010 # Note: Steve Roseman says that AFS libraries have to be lunk before SSL
1011 echo
$(AFSLDFLAGS
) `$(CAT) LDFLAGS` > LDFLAGS.tmp
1012 mv LDFLAGS.tmp LDFLAGS
1013 $(LN
) ckp_afs.c osdepckp.c
1016 @echo DCE password authentication
1017 echo
$(DCECFLAGS
) >> OSCFLAGS
1018 echo
$(DCELDFLAGS
) >> LDFLAGS
1019 $(LN
) ckp_dce.c osdepckp.c
1021 ckpgss
: # Kerberos V (must have gss EXTRAAUTHENTICATOR as well)
1022 @echo Kerberos V password authentication
1023 $(LN
) ckp_gss.c osdepckp.c
1025 ckpnul
: # NUL authenticator (disables all plaintext authentication)
1026 @echo Plaintext authentication prohibited
1027 echo
" mail_parameters (NIL,SET_DISABLEPLAINTEXT,(void *) 1);" >> linkage.c
1028 $(LN
) ckp_nul.c osdepckp.c
1030 ckppam
: # Pluggable Authentication Modules authenticator
1031 @echo PAM password authentication
1032 echo
$(PAMLDFLAGS
) >> LDFLAGS
1033 $(LN
) ckp_pam.c osdepckp.c
1035 ckppmb
: # Broken (e.g. SUN) Pluggable Authentication Modules authenticator
1036 @echo Broken PAM password authentication
1037 echo
$(PAMLDFLAGS
) >> LDFLAGS
1038 $(LN
) ckp_pmb.c osdepckp.c
1040 ckpstd
: # Port standard
1041 @echo Standard password authentication
1042 $(LN
) ckp_
$(CHECKPW
).c osdepckp.c
1044 ckptwo
: # Something plus standard
1045 @echo
$(CHECKPWALT
) password authentication first
, then standard
1046 $(CAT
) ckp_1st.c ckp_
$(CHECKPWALT
).c ckp_2nd.c ckp_
$(CHECKPW
).c \
1047 ckp_3rd.c
> osdepckp.c
1053 @echo Building without SSL support
1054 $(LN
) ssl_none.c osdepssl.c
1056 sslnopwd
: sslunix snopwd
1058 sslunix.nopwd
: sslnopwd
1060 sslsco.nopwd
: sslsco snopwd
1062 sslunix
: sbasic sldunix
1064 sslsco
: sbasic sldsco
1066 sbasic
: # UNIX OpenSSL
1067 @echo Building with SSL
1068 $(LN
) ssl_unix.c osdepssl.c
1069 echo
$(SSLCFLAGS
) >> OSCFLAGS
1070 echo
" ssl_onceonlyinit ();" >> linkage.c
1072 snopwd
: # Plaintext disable
1073 @echo Building with SSL and plaintext passwords disabled unless SSL
/TLS
1074 echo
" mail_parameters (NIL,SET_DISABLEPLAINTEXT,(void *) 2);" >> linkage.c
1076 sldunix
:# Normal UNIX SSL load flags
1077 echo
$(SSLLDFLAGS
) >> LDFLAGS
1080 sldsco
: # SCO SSL load flags
1081 # Note: Tim Rice says that SSL has to be lunk before other libraries on SCO.
1082 echo
$(SSLLDFLAGS
) `cat LDFLAGS` > LDFLAGS.tmp
1083 mv LDFLAGS.tmp LDFLAGS
1086 # A monument to a hack of long ago and far away...