Makefile
上传用户:ycwykj01
上传日期:2007-01-04
资源大小:1819k
文件大小:24k
源码类别:

网络编程

开发平台:

Unix_Linux

  1. # Program: C client makefile
  2. #
  3. # Author: Mark Crispin
  4. # Networks and Distributed Computing
  5. # Computing & Communications
  6. # University of Washington
  7. # Administration Building, AG-44
  8. # Seattle, WA  98195
  9. # Internet: MRC@CAC.Washington.EDU
  10. #
  11. # Date: 11 May 1989
  12. # Last Edited: 16 November 1999
  13. #
  14. # Copyright 1999 by the University of Washington
  15. #
  16. #  Permission to use, copy, modify, and distribute this software and its
  17. # documentation for any purpose and without fee is hereby granted, provided
  18. # that the above copyright notice appears in all copies and that both the
  19. # above copyright notice and this permission notice appear in supporting
  20. # documentation, and that the name of the University of Washington not be
  21. # used in advertising or publicity pertaining to distribution of the software
  22. # without specific, written prior permission.  This software is made
  23. # available "as is", and
  24. # THE UNIVERSITY OF WASHINGTON DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
  25. # WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT LIMITATION ALL IMPLIED
  26. # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND IN
  27. # NO EVENT SHALL THE UNIVERSITY OF WASHINGTON BE LIABLE FOR ANY SPECIAL,
  28. # INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  29. # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, TORT
  30. # (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, ARISING OUT OF OR IN CONNECTION
  31. # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  32. # Command line build parameters
  33. EXTRAAUTHENTICATORS=
  34. SPECIALAUTHENTICATORS=
  35. EXTRADRIVERS=mbox
  36. PASSWDTYPE=std
  37. # Extended flags needed for non-standard passwd types.  You may need to modify.
  38. AFSDIR=/usr/afsws
  39. AFSCFLAGS=-Dexit=afs_exit -D_exit=_afs_exit -I$(AFSDIR)/include
  40. AFSLIB=$(AFSDIR)/lib
  41. AFSLDFLAGS=-L$(AFSLIB)/afs -L$(AFSLIB) -L$(AFSDIR)/domestic/lib
  42.  -lkauth -lprot -lubik -lauth -lrxkad -lrx -llwp -ldes -lcom_err
  43.  $(AFSLIB)/afs/util.a -laudit -lsys
  44. # AFSLDFLAGS may also need -L/usr/ucblib -lucb
  45. DCECFLAGS= -DDCE_MINIMAL -DPASSWD_OVERRIDE="/opt/pop3/passwd/passwd"
  46. DCELDFLAGS= -ldce
  47. PAMLDFLAGS= -lpam -ldl
  48. # Build parameters normally set by the individual port
  49. CHECKPW=std
  50. LOGINPW=std
  51. SIGTYPE=bsd
  52. ACTIVEFILE=/usr/lib/news/active
  53. SPOOLDIR=/usr/spool
  54. MAILSPOOL=$(SPOOLDIR)/mail
  55. NEWSSPOOL=$(SPOOLDIR)/news
  56. RSHPATH=/usr/ucb/rsh
  57. LOCKPGM=/etc/mlock
  58. # Default formats for creating new mailboxes and for empty mailboxes in the
  59. # default namespace; must be set to the associated driver's prototype.
  60. #
  61. # The CREATEPROTO is the default format for new mailbox creation.
  62. # The EMPTYPROTO is the default format for handling zero-byte files.
  63. #
  64. # Normally, this is set by the individual port.
  65. #
  66. # NOTE: namespace formats (e.g. mh and news) can not be set as a default format
  67. # since they do not exist in the default namespace.  Also, it is meaningless to
  68. # set certain other formats (e.g. mbx and mx) as the EMPTYPROTO since these
  69. # formats can never be empty files.
  70. CREATEPROTO=unixproto
  71. EMPTYPROTO=unixproto
  72. # Commands possibly overriden by the individual port
  73. ARRC=ar rc
  74. CC=cc
  75. LN=ln -s
  76. RANLIB=ranlib
  77. # Standard distribution build parameters
  78. DEFAULTAUTHENTICATORS=md5 $(SPECIALAUTHENTICATORS) log
  79. DEFAULTDRIVERS=imap nntp pop3 mh mx mbx tenex mtx mmdf unix news phile
  80. # Normally no need to change any of these
  81. ARCHIVE=c-client.a
  82. BINARIES=mail.o misc.o newsrc.o smanager.o osdep.o utf8.o siglocal.o 
  83.  dummy.o pseudo.o netmsg.o flstring.o fdstring.o 
  84.  rfc822.o nntp.o smtp.o imap4r1.o pop3.o 
  85.  unix.o mbox.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o
  86. CFLAGS=$(BASECFLAGS) $(EXTRACFLAGS)
  87. MAKE=make
  88. MV=mv
  89. RM=rm -rf
  90. SH=sh
  91. # Primary build command
  92. BUILDOPTIONS= EXTRACFLAGS="$(EXTRACFLAGS)"
  93.  EXTRALDFLAGS="$(EXTRALDFLAGS)"
  94.  EXTRADRIVERS="$(EXTRADRIVERS)" EXTRAAUTHENTICATORS="$(EXTRAAUTHENTICATORS)"
  95.  PASSWDTYPE=$(PASSWDTYPE) SPECIALAUTHENTICATORS="$(SPECIALAUTHENTICATORS)"
  96. BUILD=$(MAKE) build $(BUILDOPTIONS)
  97. # Here if no make argument established
  98. missing: osdep.h
  99. $(MAKE) all CC=`cat CCTYPE` CFLAGS="`cat CFLAGS`" `cat EXTRASPECIALS`
  100. osdep.h:
  101. @echo You must specify what type of system
  102. @false
  103. # Current ports
  104. a32: # AIX 3.2 for RS/6000
  105. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx 
  106.  SPOOLDIR=/var/spool 
  107.  RSHPATH=/usr/bin/rsh 
  108.  BASECFLAGS="-g -Dunix=1 -D_BSD -DNFSKLUDGE" 
  109.  BASELDFLAGS="-lbsd"
  110. a41: # AIX 4.1 for RS/6000
  111. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx CHECKPW=a41 
  112.  SPOOLDIR=/var/spool 
  113.  RSHPATH=/usr/bin/rsh 
  114.  BASECFLAGS="-g -Dunix=1 -D_BSD -DNFSKLUDGE" 
  115.  BASELDFLAGS="-lbsd -ls"
  116. aix: # AIX/370
  117. @echo You are building for AIX on an S/370 class machine
  118. @echo If you want AIX on an RS/6000 you need to use a32 or a41 instead!
  119. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  120.  BASECFLAGS="-g -DNFSKLUDGE" 
  121.  BASELDFLAGS="-lbsd"
  122. aos: # AOS for RT
  123. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  124.  BASECFLAGS="-g -Dconst= -DNFSKLUDGE"
  125. art: # AIX 2.2.1 for RT
  126. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=sv4 
  127.  SPOOLDIR=/var 
  128.  ACTIVEFILE=/usr/local/news/control/active 
  129.  RSHPATH=/bin/rsh 
  130.  BASECFLAGS="-g -Dconst= -Dvoid=char" 
  131.  RANLIB=true 
  132. asv: # Altos SVR4
  133. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=sv4 LOGINPW=old 
  134.  ACTIVEFILE=/usr/spool/news/active 
  135.  RSHPATH=/usr/bin/rcmd 
  136.  BASECFLAGS="-Dconst= -DSIGSTOP=SIGKILL" 
  137.  BASELDFLAGS="-lsocket -lrpc -lgen -lcrypt -lxenix" 
  138.  RANLIB=true
  139. aux: # A/UX
  140. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  141.  MAILSPOOL=/usr/mail 
  142.  BASECFLAGS="-g -B/usr/lib/big/ -Dvoid=char -Dconst= -DNFSKLUDGE" 
  143.  RANLIB=true ARRC="ar -rc"
  144. bs3: # BSD/i386 3.0 or higher
  145. $(BUILD) `cat EXTRASPECIALS` OS=bsi CHECKPW=bsi LOGINPW=bsi 
  146.  SPOOLDIR=/var NEWSSPOOL=/var/news/spool 
  147.  ACTIVEFILE=/var/news/etc/active 
  148.  RSHPATH=/usr/bin/rsh 
  149.  BASECFLAGS="-g -O2 -pipe -DNFSKLUDGE" CC=shlicc
  150. bsd: # BSD UNIX
  151. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  152.  BASECFLAGS="-g -Dconst= -DNFSKLUDGE"
  153. bsf: # FreeBSD
  154. $(BUILD) `cat EXTRASPECIALS` OS=bsi SIGTYPE=psx 
  155.  SPOOLDIR=/var 
  156.  ACTIVEFILE=/usr/local/news/lib/active 
  157.  RSHPATH=/usr/bin/rsh 
  158.  BASECFLAGS="-g -O -pipe -DNFSKLUDGE" 
  159.  BASELDFLAGS="-lcrypt"
  160. bsi: # BSD/i386
  161. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  162.  SPOOLDIR=/var NEWSSPOOL=/var/news/spool 
  163.  ACTIVEFILE=/var/news/etc/active 
  164.  RSHPATH=/usr/bin/rsh 
  165.  BASECFLAGS="-g -O2 -pipe -DNFSKLUDGE"
  166. bso: # OpenBSD
  167. $(BUILD) `cat EXTRASPECIALS` OS=bsi SIGTYPE=psx 
  168.  SPOOLDIR=/var 
  169.  ACTIVEFILE=/usr/local/news/lib/active 
  170.  RSHPATH=/usr/bin/rsh 
  171.  BASECFLAGS="-O2 -pipe -DNFSKLUDGE"
  172. cvx: # Convex
  173. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  174.  BASECFLAGS="-O -ext -Dconst= -DNFDKLUDGE"
  175. d-g: # Data General DG/UX
  176. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=sv4 
  177.  SPOOLDIR=/var/spool MAILSPOOL=/var/mail 
  178.  ACTIVEFILE=/local/news/active 
  179.  RSHPATH=/usr/bin/remsh 
  180.  BASECFLAGS="-g -Dconst= -DNFSKLUDGE" 
  181.  BASELDFLAGS="-lnsl -lsocket" 
  182.  RANLIB=true
  183. d54: # Data General DG/UX 5.4
  184. $(BUILD) `cat EXTRASPECIALS` OS=d-g SIGTYPE=sv4 
  185.  SPOOLDIR=/var/spool MAILSPOOL=/var/mail 
  186.  ACTIVEFILE=/local/news/active 
  187.  RSHPATH=/usr/bin/remsh 
  188.  BASECFLAGS="-g -Dconst= -DNFSKLUDGE" 
  189.  BASELDFLAGS="-lnsl -lsocket" 
  190.  RANLIB=true
  191. dpx: # Bull DPX/2
  192. $(BUILD) `cat EXTRASPECIALS` OS=sv4 SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 
  193.  RSHPATH=/usr/bin/remsh 
  194.  BASECFLAGS="-Dconst= -DSYSTEM5 -DSHORT_IDENT" 
  195.  BASELDFLAGS="-linet" 
  196.  RANLIB=true LN=ln
  197. drs: # ICL DRS/NX
  198. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 
  199.  SPOOLDIR=/var/spool MAILSPOOL=/var/mail 
  200.  ACTIVEFILE=/var/lib/news/active 
  201.  RSHPATH=/usr/bin/rsh 
  202.  BASECFLAGS="-O -DNFSKLUDGE" 
  203.  BASELDFLAGS="-lsocket -lgen" 
  204.  RANLIB=true
  205. do4: # Apollo Domain/OS sr10.4
  206. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  207.  BASECFLAGS="-DNFSKLUDGE -A systype,bsd4.3 -D_APOLLO_SOURCE" 
  208.  RANLIB=true
  209. dyn: # Dynix
  210. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  211.  BASECFLAGS="-g -Dconst= -DNFSKLUDGE"
  212. epx: # EP/IX
  213. $(BUILD) `cat EXTRASPECIALS` OS=sv4 SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 
  214.  SPOOLDIR=/var/spool MAILSPOOL=/var/mail 
  215.  ACTIVEFILE=/usr/share/news/active 
  216.  RSHPATH=/usr/net/rsh 
  217.  BASECFLAGS="-g -systype svr4" 
  218.  BASELDFLAGS="-lsocket -lnsl -lgen" 
  219.  RANLIB=true
  220. gas: # GCC Altos SVR4
  221. $(BUILD) `cat EXTRASPECIALS` OS=asv SIGTYPE=sv4 LOGINPW=old 
  222.  ACTIVEFILE=/usr/spool/news/active 
  223.  RSHPATH=/usr/bin/rcmd 
  224.  BASECFLAGS="-g -O -DALTOS_SYSTEM_V -DSIGSTOP=SIGKILL" 
  225.  BASELDFLAGS="-lsocket -lrpc -lgen -lcrypt -lxenix" 
  226.  RANLIB=true CC=gcc
  227. gh9: # GCC HP-UX9.x
  228. $(BUILD) `cat EXTRASPECIALS` OS=hpp SIGTYPE=psx 
  229.  MAILSPOOL=/usr/mail 
  230.  RSHPATH=/usr/bin/remsh 
  231.  BASECFLAGS="-O2 -DNFSKLUDGE" 
  232.  RANLIB=true CC=gcc
  233. ghp: # GCC HP-UX
  234. $(BUILD) `cat EXTRASPECIALS` OS=hpp SIGTYPE=psx 
  235.  SPOOLDIR=/var 
  236.  ACTIVEFILE=/var/news/active 
  237.  RSHPATH=/usr/bin/remsh 
  238.  BASECFLAGS="-O2 -DNFSKLUDGE" 
  239.  RANLIB=true CC=gcc
  240. gs5: # GCC 2.7.1 (95q4) SCO Open Server 5.0.x
  241. $(BUILD) `cat EXTRASPECIALS` OS=sc5 SIGTYPE=psx CHECKPW=sec LOGINPW=sec 
  242.  CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto 
  243.  SPOOLDIR=/var/spool 
  244.  ACTIVEFILE=/var/lib/news/active 
  245.  RSHPATH=/usr/bin/rcmd 
  246.  BASECFLAGS="-O3 -belf -I/usr/include -L/lib" 
  247.  BASELDFLAGS="-lsocket -lcrypt -lprot -lx -ltinfo -lm" 
  248.  RANLIB=true
  249. gso: # GCC Solaris
  250. $(BUILD) `cat EXTRASPECIALS` OS=sol SIGTYPE=psx CHECKPW=psx 
  251.  SPOOLDIR=/var/spool MAILSPOOL=/var/mail 
  252.  ACTIVEFILE=/usr/share/news/active 
  253.  RSHPATH=/usr/bin/rsh 
  254.  BASECFLAGS="-g -O2 -DNFSKLUDGE" 
  255.  BASELDFLAGS="-lsocket -lnsl -lgen" 
  256.  RANLIB=true CC=gcc
  257. gsu: # GCC SUN-OS
  258. $(BUILD) `cat EXTRASPECIALS` OS=sun 
  259.  BASECFLAGS="-O2 -DNFSKLUDGE" 
  260.  BASELDFLAGS="-ldl" 
  261.  CC=gcc
  262. gul: # GCC Ultrix
  263. $(BUILD) `cat EXTRASPECIALS` OS=ult SIGTYPE=psx CHECKPW=ult 
  264.  BASECFLAGS="-g -O -DNFSKLUDGE" 
  265.  BASELDFLAGS="-lauth -lc" 
  266.  CC=gcc
  267. hpp: # HP-UX 9.x
  268. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx 
  269.  MAILSPOOL=/usr/mail 
  270.  RSHPATH=/usr/bin/remsh 
  271.  BASECFLAGS="-g -Aa -D_HPUX_SOURCE -DNFSKLUDGE" 
  272.  BASELDFLAGS="-lnet -lV3" 
  273.  RANLIB=true
  274. hpx: # HP-UX 10.x
  275. $(BUILD) `cat EXTRASPECIALS` OS=hpp SIGTYPE=psx 
  276.  SPOOLDIR=/var 
  277.  ACTIVEFILE=/var/news/active 
  278.  RSHPATH=/usr/bin/remsh 
  279.  BASECFLAGS="-g -Ae -DNFSKLUDGE" 
  280.  BASELDFLAGS="-lnet -lV3" 
  281.  RANLIB=true
  282. isc: # Interactive
  283. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 
  284.  SPOOLDIR=/var/spool MAILSPOOL=/var/mail 
  285.  ACTIVEFILE=/var/spool/news/active 
  286.  BASECFLAGS="-Xp -D_SYSV3" 
  287.  BASELDFLAGS="-linet -lnsl_s -lgen -lx -lsec -liberty" 
  288.  RANLIB=true
  289. lnp: # Linux Pluggable Authentication modules
  290. $(BUILD) `cat EXTRASPECIALS` OS=lnx SIGTYPE=psx CHECKPW=pam 
  291.  SPOOLDIR=/var/spool 
  292.  ACTIVEFILE=/var/lib/news/active 
  293.  RSHPATH=/usr/bin/rsh 
  294.  BASECFLAGS="-g -fno-omit-frame-pointer -O6 -DNFSKLUDGE" 
  295.  BASELDFLAGS="-lpam -ldl"
  296. lnx: # Linux non-shadow passwords
  297. @echo You are building for traditional Linux *without* shadow
  298. @echo passwords and with the crypt function in the C library.
  299. @echo If your system has shadow passwords, or if crypt is not
  300. @echo in the C library, you must use slx, sl4, or sl5 instead!
  301. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx 
  302.  SPOOLDIR=/var/spool 
  303.  ACTIVEFILE=/var/lib/news/active 
  304.  RSHPATH=/usr/bin/rsh 
  305.  BASECFLAGS="-g -O -DNFSKLUDGE"
  306. lyn: # LynxOS
  307. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  308.  RSHPATH=/bin/rsh 
  309.  BASECFLAGS="-g -O -pipe -DNFSKLUDGE" 
  310.  BASELDFLAGS=-lbsd 
  311.  CC=gcc
  312. mct: # MachTen - NFSKLUDGE doesn't work (at least not on 2.2)
  313. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  314.  SPOOLDIR=/var/spool 
  315.  BASECFLAGS="-g -O -pipe"
  316. mnt: # Mint
  317. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx 
  318.  SPOOLDIR=/var/spool 
  319.  ACTIVEFILE=/var/lib/news/active 
  320.  RSHPATH=/usr/bin/rsh 
  321.  BASECFLAGS="-g -O -DNFSKLUDGE"
  322. neb: # NetBSD
  323. $(BUILD) `cat EXTRASPECIALS` OS=bsi 
  324.  SPOOLDIR=/var 
  325.  ACTIVEFILE=/var/db/news/active 
  326.  RSHPATH=/usr/bin/rsh 
  327.  BASECFLAGS="-g -O -pipe -DNFSKLUDGE" 
  328.  BASELDFLAGS="-lcrypt"
  329. nxt: # NEXTSTEP
  330. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  331.  BASECFLAGS="-g -O -pipe -DNFSKLUDGE"
  332. nx3: # NEXTSTEP 3.0 single threaded
  333. $(BUILD) `cat EXTRASPECIALS` OS=nxt 
  334.  BASECFLAGS="-g -O -pipe -DNFSKLUDGE -Wall"
  335. echo "void malloc_singlethreaded (void);" >> linkage.h
  336. echo "  malloc_singlethreaded ();" >> linkage.c
  337. osf: # OSF/1
  338. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx 
  339.  BASECFLAGS="-g3 -O2 -Olimit 1500 -DNFSKLUDGE"
  340. # Note: sia_become_user() used by LOGINPW=os4 doesn't seem to work right.  The
  341. # user doesn't get proper file access, and the process can't be killed.
  342. os4: # OSF/1 (Digital UNIX) 4
  343. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx CHECKPW=os4 LOGINPW=os4 
  344.  BASECFLAGS="-g3 -O2 -Olimit 1500 -DNFSKLUDGE"
  345. ptx: # PTX
  346. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx CHECKPW=svo LOGINPW=sv4 
  347.  MAILSPOOL=/usr/mail 
  348.  RSHPATH=/usr/bin/resh 
  349.  BASECFLAGS="-Wc,-O3 -Wc,-seq -Dprivate=PRIVATE -DNFSKLUDGE" 
  350.  BASELDFLAGS="-lseq -lsec -lsocket -linet -lnsl -lgen" 
  351.  RANLIB=true
  352. pyr: # Pyramid
  353. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  354.  BASECFLAGS="-g -Dconst= -DNFSKLUDGE"
  355. qnx: # QNX
  356. $(BUILD) `cat EXTRASPECIALS` OS=$@ CHECKPW=psx LOGINPW=old 
  357.  RSHPATH=/usr/ucb/rsh 
  358.  BASECFLAGS="-Otax -g -Dunix=1 -D_POSIX_SOURCE" 
  359.  BASELDFLAGS="-g -N128k -llogin -lsocket -lunix"
  360. s40: # SUN-OS 4.0
  361. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  362.  BASECFLAGS="-g -Dconst= -DNFSKLUDGE"
  363. sc5: # SCO Open Server 5.0
  364. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx CHECKPW=sec LOGINPW=sec 
  365.  CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto 
  366.  SPOOLDIR=/var/spool 
  367.  ACTIVEFILE=/var/lib/news/active 
  368.  RSHPATH=/usr/bin/rcmd 
  369.  BASECFLAGS="-O3 -s" 
  370.  BASELDFLAGS="-lsocket -lcrypt -lprot -lx -ltinfo -lm" 
  371.  RANLIB=true
  372. sco: # Santa Cruz Operation
  373. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=sv4 CHECKPW=sec LOGINPW=sec 
  374.  CREATEPROTO=mmdfproto EMPTYPROTO=mmdfproto 
  375.  RSHPATH=/usr/bin/rcmd 
  376.  BASECFLAGS="-O3" 
  377.  BASELDFLAGS="-lsocket -lprot -lcrypt_i -lx -los" 
  378.  RANLIB=true LN=ln
  379. # Notes:
  380. # 1) setting _POSIX_SOURCE doesn't seem to build it as of SGI IRIX 5.3
  381. # 2) SGI make wouldn't build for Steve unless that bizarre "MAKEFLAGS="
  382. #    was inserted in the beginning.
  383. sgi: # Silicon Graphics
  384. MAKEFLAGS= $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=sv4 
  385.  MAILSPOOL=/usr/mail 
  386.  RSHPATH=/usr/bsd/rsh 
  387.  BASECFLAGS="-g3 -O2 -Olimit 8192 -DNFSKLUDGE" 
  388.  RANLIB=true
  389. sg6: # Silicon Graphics, IRIX 6.5
  390. MAKEFLAGS= $(BUILD) `cat EXTRASPECIALS` OS=sgi SIGTYPE=sv4 
  391.  MAILSPOOL=/usr/mail 
  392.  RSHPATH=/usr/bsd/rsh 
  393.  BASECFLAGS="-g3 -O2 -DNFSKLUDGE -woff 1048,1110,1116" 
  394.  RANLIB=true
  395. # Note: Mark Kaesling says that setluid() isn't in HP-UX with SecureWare.
  396. shp: # HP-UX with Trusted Computer Base
  397. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx CHECKPW=sec LOGINPW=std 
  398.  SPOOLDIR=/var 
  399.  ACTIVEFILE=/var/news/active 
  400.  RSHPATH=/usr/bin/remsh 
  401.  BASECFLAGS="-g -Ae -DNFSKLUDGE" 
  402.  BASELDFLAGS="-lnet -lV3 -lsec" 
  403.  RANLIB=true
  404. slx: # Secure Linux
  405. @echo You are building for libc6/glibc versions of Secure Linux
  406. @echo If you want libc5 versions you must use sl5 instead!
  407. @echo If you want libc4 versions you must use sl4 instead!
  408. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx CHECKPW=psx 
  409.  SPOOLDIR=/var/spool 
  410.  ACTIVEFILE=/var/lib/news/active 
  411.  RSHPATH=/usr/bin/rsh 
  412.  BASECFLAGS="-g -fno-omit-frame-pointer -O6 -DNFSKLUDGE" 
  413.  BASELDFLAGS="-lcrypt"
  414. sl4: # Secure Linux using libc4
  415. @echo You are building for libc4 versions of Secure Linux
  416. @echo If you want libc6/glibc versions you must use slx instead!
  417. @echo If you want libc5 versions you must use sl5 instead!
  418. $(BUILD) `cat EXTRASPECIALS` OS=slx SIGTYPE=psx CHECKPW=psx 
  419.  SPOOLDIR=/var/spool 
  420.  ACTIVEFILE=/var/lib/news/active 
  421.  RSHPATH=/usr/bin/rsh 
  422.  BASECFLAGS="-g -fno-omit-frame-pointer -O6 -DNFSKLUDGE" 
  423.  BASELDFLAGS="-lshadow"
  424. sl5: # Secure Linux using libc5
  425. @echo You are building for libc5 versions of Secure Linux
  426. @echo If you want libc6/glibc versions you must use slx instead!
  427. @echo If you want libc4 versions you must use sl4 instead!
  428. $(BUILD) `cat EXTRASPECIALS` OS=slx SIGTYPE=psx CHECKPW=psx 
  429.  SPOOLDIR=/var/spool 
  430.  ACTIVEFILE=/var/lib/news/active 
  431.  RSHPATH=/usr/bin/rsh 
  432.  BASECFLAGS="-g -fno-omit-frame-pointer -O6 -DNFSKLUDGE"
  433. snx: # Siemens Nixdorf SINIX and Reliant UNIX
  434. $(BUILD) `cat EXTRASPECIALS` OS=sv4 SIGTYPE=psx CHECKPW=sv4 
  435.  SPOOLDIR=/var/spool MAILSPOOL=/var/mail 
  436.  ACTIVEFILE=/usr/share/news/active 
  437.  RSHPATH=/usr/bin/rsh 
  438.  BASECFLAGS="-g -D_SYS_CLOCK_H -Dconst=" 
  439.  BASELDFLAGS="-lsocket -lnsl -lgen" 
  440.  RANLIB=true
  441. # Note: It is a long and disgusting story about why cc is set to ucbcc.  You
  442. # need to invoke the C compiler so that it links with the SVR4 libraries and
  443. # not the BSD libraries, otherwise readdir() will return the wrong information.
  444. # Of all the names in the most common path, ucbcc is the only name to be found
  445. # (on /usr/ccs/bin) that points to a suitable compiler.  cc is likely to be
  446. # /usr/ucb/cc which is absolutely not the compiler that you want.  The real
  447. # SVR4 cc is probably something like /opt/SUNWspro/bin/cc which is rarely in
  448. # anyone's path.
  449. #
  450. # ucbcc is probably a link to acc, e.g. /opt/SUNWspro/SC4.0/bin/acc, and is
  451. # the UCB C compiler using the SVR4 libraries.
  452. #
  453. # If ucbcc isn't on your system, then punt on the SUN C compiler and use gcc
  454. # instead (the gso port instead of the sol port).
  455. # If, in spite of all the above warnings, you choose to change "ucbcc" to "cc",
  456. # you will probably find that the -O2 needs to be changed to -O.  If you don't
  457. # get any error messages with -O2, that's a pretty good indicator that you
  458. # goofed and are running the compiler that will link with the BSD libraries.
  459. #
  460. # To recap:
  461. # 1) The sol port is designed to be built using the UCB compiler using the
  462. #    SVR4 libraries.  This compiler is "ucbcc", which is lunk to acc.  You
  463. #    use -O2 as one of the CFLAGS.
  464. # 2) If you build the sol port with the UCB compiler using the BSD libraries,
  465. #    you will get no error messages but you will get bad binaries (the most
  466. #    obvious symptom is dropping the first two characters return filenames
  467. #    from the imapd LIST command.  This compiler also uses -O2, and is very
  468. #    often what the user gets from "cc".  BEWARE!!!
  469. # 3) If you build the sol port with the real SVR4 compiler, which is often
  470. #    hidden away or unavailable on many systems, then you will get errors
  471. #    from -O2 and you need to change that to -O.  But you will get a good
  472. #    binary.  However, you should try it with -O2 first, to make sure that
  473. #    you got this compiler and not the UCB compiler using BSD libraries.
  474. sol: # Solaris
  475. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx CHECKPW=psx 
  476.  SPOOLDIR=/var/spool MAILSPOOL=/var/mail 
  477.  ACTIVEFILE=/usr/share/news/active 
  478.  RSHPATH=/usr/bin/rsh 
  479.  BASECFLAGS="-g -O2 -DNFSKLUDGE" 
  480.  BASELDFLAGS="-lsocket -lnsl -lgen" 
  481.  RANLIB=true CC=ucbcc
  482. sos: # Secure OSF/1
  483. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx CHECKPW=sec LOGINPW=sec 
  484.  BASECFLAGS="-g3 -O2 -Olimit 1500 -DNFSKLUDGE" 
  485.  BASELDFLAGS="-lsecurity -laud"
  486. ssn: # Secure SUN-OS
  487. $(BUILD) `cat EXTRASPECIALS` OS=sun CHECKPW=ssn 
  488.  BASECFLAGS="-g -Dconst= -DNFSKLUDGE" 
  489.  BASELDFLAGS="-ldl"
  490. sun: # SUN-OS
  491. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  492.  BASECFLAGS="-g -Dconst= -DNFSKLUDGE" 
  493.  BASELDFLAGS="-ldl"
  494. sv2: # SVR2
  495. @echo You are being *very* optimistic!
  496. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=sv4 LOGINPW=old 
  497.  MAILSPOOL=/usr/mail 
  498.  RSHPATH=/usr/bin/remsh 
  499.  BASECFLAGS="-Dconst= -DSYSTEM5 -DSHORT_IDENT -I/usr/ethernet/include" 
  500.  BASELDFLAGS="-lnet" 
  501.  RANLIB=true LN=ln
  502. sv4: # SVR4
  503. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=sv4 CHECKPW=sv4 LOGINPW=sv4 
  504.  SPOOLDIR=/var/spool MAILSPOOL=/var/mail 
  505.  ACTIVEFILE=/usr/share/news/active 
  506.  RSHPATH=/usr/bin/resh 
  507.  BASECFLAGS="-g -Dconst=" 
  508.  BASELDFLAGS="-lsocket -lnsl -lgen" 
  509.  RANLIB=true
  510. ult: # Ultrix
  511. $(BUILD) `cat EXTRASPECIALS` OS=$@ SIGTYPE=psx CHECKPW=ult 
  512.  BASECFLAGS="-g3 -O2 -Olimit 1500 -Dconst= -DNFSKLUDGE" 
  513.  BASELDFLAGS="-lauth -lc"
  514. uw2: # UnixWare SVR4.2
  515. $(BUILD) `cat EXTRASPECIALS` OS=sv4 SIGTYPE=sv4 CHECKPW=sv4 
  516.  SPOOLDIR=/var/spool MAILSPOOL=/var/mail 
  517.  ACTIVEFILE=/var/news/lib/active 
  518.  RSHPATH=/usr/bin/rsh 
  519.  BASECFLAGS="-g" 
  520.  BASELDFLAGS="-lsocket -lnsl -lgen" 
  521.  RANLIB=true
  522. vul: # VAX Ultrix
  523. $(BUILD) `cat EXTRASPECIALS` OS=ult SIGTYPE=psx CHECKPW=ult 
  524.  BASECFLAGS="-O2 -Dconst= -DNFSKLUDGE" 
  525.  BASELDFLAGS="-lauth -lc"
  526. vu2: # VAX Ultrix 2.3, etc.
  527. $(BUILD) `cat EXTRASPECIALS` OS=$@ 
  528.  BASECFLAGS="-O2 -Dconst= -Dvoid=char -DNFSKLUDGE"
  529. # Build it!
  530. build: clean once $(ARCHIVE)
  531. all: $(ARCHIVE)
  532. $(ARCHIVE): $(BINARIES)
  533. sh -c '$(RM) $(ARCHIVE) || true'
  534. @cat ARCHIVE
  535. @$(SH) ARCHIVE
  536. # Cleanup
  537. clean:
  538. sh -c '$(RM) auths.c flockbsd.c linkage.[ch] siglocal.c osdep*.[ch] *.o ARCHIVE *FLAGS *TYPE $(ARCHIVE) || true'
  539. # Dependencies
  540. dummy.o: mail.h misc.h osdep.h dummy.h
  541. fdstring.o: mail.h misc.h osdep.h fdstring.h
  542. flstring.o: mail.h misc.h osdep.h flstring.h
  543. imap4r1.o: mail.h misc.h osdep.h imap4r1.h rfc822.h
  544. mail.o: mail.h misc.h osdep.h rfc822.h linkage.h
  545. mbox.o: mail.h misc.h osdep.h mbox.h unix.h
  546. mbx.o: mail.h misc.h osdep.h mbx.h dummy.h
  547. mh.o: mail.h misc.h osdep.h mh.h dummy.h
  548. mx.o: mail.h misc.h osdep.h mx.h dummy.h
  549. misc.o: mail.h misc.h osdep.h
  550. mmdf.o: mail.h misc.h osdep.h mmdf.h pseudo.h dummy.h
  551. mtx.o: mail.h misc.h osdep.h mtx.h dummy.h
  552. netmsg.o: mail.h misc.h osdep.h netmsg.h
  553. news.o: mail.h misc.h osdep.h news.h
  554. newsrc.o: mail.h misc.h osdep.h newsrc.h
  555. nntp.o: mail.h misc.h osdep.h netmsg.h smtp.h nntp.h rfc822.h
  556. phile.o: mail.h misc.h osdep.h phile.h rfc822.h dummy.h
  557. pseudo.o: pseudo.h
  558. pop3.o: mail.h misc.h osdep.h pop3.h rfc822.h
  559. smanager.o: mail.h misc.h osdep.h
  560. smtp.o: mail.h misc.h osdep.h smtp.h rfc822.h
  561. rfc822.o: mail.h misc.h osdep.h rfc822.h
  562. tenex.o: mail.h misc.h osdep.h tenex.h dummy.h
  563. unix.o: mail.h misc.h osdep.h unix.h pseudo.h dummy.h
  564. utf8.o: mail.h misc.h osdep.h utf8.h
  565. # OS-dependent
  566. osdep.o:mail.h misc.h env.h fs.h ftl.h nl.h tcp.h 
  567. osdep.h env_unix.h tcp_unix.h 
  568. osdep.c env_unix.c fs_unix.c ftl_unix.c nl_unix.c tcp_unix.c 
  569. auths.c flock.c flockbsd.c flcksafe.c fsync.c gethstid.c 
  570. gr_wait.c gr_wait4.c gr_waitp.c 
  571. auth_log.c auth_md5.c 
  572. scandir.c setpgrp.c strerror.c truncate.c write.c 
  573. memmove.c memmove2.c memset.c 
  574. tz_bsd.c tz_nul.c tz_sv4.c 
  575. write.c 
  576. strerror.c strpbrk.c strstr.c strtok.c strtoul.c 
  577. OSCFLAGS
  578. $(CC) $(CFLAGS) `cat OSCFLAGS` -c osdep.c
  579. osdep.c: osdepbas.c osdepckp.c osdeplog.c
  580. cat osdepbas.c osdepckp.c osdeplog.c > osdep.c
  581. flockbsd.c: # cretin Linux
  582. siglocal.c: # cretin Linux
  583. # Once-only environment setup
  584. once: onceenv ckp$(PASSWDTYPE) osdep.c 
  585. onceenv:
  586. @echo Once-only environment setup...
  587. echo $(CC) > CCTYPE
  588. echo $(CFLAGS) > CFLAGS
  589. echo -DCREATEPROTO=$(CREATEPROTO) -DEMPTYPROTO=$(EMPTYPROTO) 
  590.  -DMAILSPOOL="$(MAILSPOOL)" 
  591.  -DANONYMOUSHOME="$(MAILSPOOL)/anonymous" 
  592.  -DACTIVEFILE="$(ACTIVEFILE)" -DNEWSSPOOL="$(NEWSSPOOL)" 
  593.  -DRSHPATH="$(RSHPATH)" -DLOCKPGM="$(LOCKPGM)" > OSCFLAGS
  594. echo $(BASELDFLAGS) $(EXTRALDFLAGS) > LDFLAGS
  595. echo "$(ARRC) $(ARCHIVE) $(BINARIES);$(RANLIB) $(ARCHIVE)" > ARCHIVE
  596. ./drivers $(EXTRADRIVERS) $(DEFAULTDRIVERS) dummy
  597. ./mkauths $(EXTRAAUTHENTICATORS) $(DEFAULTAUTHENTICATORS)
  598. $(LN) os_$(OS).h osdep.h
  599. $(LN) os_$(OS).c osdepbas.c
  600. $(LN) log_$(LOGINPW).c osdeplog.c
  601. $(LN) sig_$(SIGTYPE).c siglocal.c
  602. sh -c '(test -f /usr/include/sys/statvfs.h -a $(OS) != sc5 -a $(OS) != sco) && $(LN) flocksun.c flockbsd.c || $(LN) flocksv4.c flockbsd.c'
  603. # Password checkers
  604. ckpafs: # AFS
  605. echo $(AFSCFLAGS) >> OSCFLAGS
  606. echo $(AFSLDFLAGS) >> LDFLAGS
  607. $(LN) ckp_afs.c osdepckp.c
  608. ckpdce: # DCE
  609. echo $(DCECFLAGS) >> OSCFLAGS
  610. echo $(DCELDFLAGS) >> LDFLAGS
  611. $(LN) ckp_dce.c osdepckp.c
  612. ckpkrb: # Kerberos IV (must have krb EXTRAAUTHENTICATOR as well)
  613. $(LN) ckp_krb.c osdepckp.c
  614. ckpmd5: # MD5 database (must have md5 AUTHENTICATOR as well)
  615. $(LN) ckp_md5.c osdepckp.c
  616. ckpnul: # NUL authenticator (disables all plaintext authentication)
  617. echo -DPLAINTEXT_DISABLED >> OSCFLAGS
  618. $(LN) ckp_nul.c osdepckp.c
  619. ckppam: # Pluggable Authentication Modules authenticator
  620. echo $(PAMLDFLAGS) >> LDFLAGS
  621. $(LN) ckp_pam.c osdepckp.c
  622. ckppmb: # Broken (e.g. SUN) Pluggable Authentication Modules authenticator
  623. echo $(PAMLDFLAGS) >> LDFLAGS
  624. $(LN) ckp_pmb.c osdepckp.c
  625. ckpstd: # Port standard
  626. $(LN) ckp_$(CHECKPW).c osdepckp.c
  627. # A monument to a hack of long ago and far away...
  628. love:
  629. @echo not war?