imapext-2007

view Makefile @ 15:d012b9a282d9

READMEs changed
author HIROSE Yuuji <yuuji@gentei.org>
date Sun, 07 May 2023 13:13:36 +0900
parents 28a55bc1110c
children
line source
1 # ========================================================================
2 # Copyright 1988-2008 University of Washington
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 #
11 # ========================================================================
13 # Program: IMAP Toolkit Makefile
14 #
15 # Author: Mark Crispin
16 # UW Technology
17 # Seattle, WA 98195
18 # Internet: MRC@Washington.EDU
19 #
20 # Date: 7 December 1989
21 # Last Edited: 12 May 2008
24 # Normal command to build IMAP toolkit:
25 # make <port> [EXTRAAUTHENTICATORS=xxx] [EXTRADRIVERS=xxx] [EXTRACFLAGS=xxx]
26 # [PASSWDTYPE=xxx] [SSLTYPE=xxx] [IP=n]
29 # Port name. These refer to the *standard* compiler on the given system.
30 # This means, for example, that the hpx port is for HP's compiler and not for
31 # a non-standard compiler such as gcc.
32 #
33 # If you are using gcc and it is not the standard compiler on your system, try
34 # using an ANSI port that is close to what you have. For example, if your
35 # system is SVR4ish, try a32 or lnx; if it's more BSDish, try nxt, mct, or bsi.
36 #
37 # The following ports are bundled:
38 # a32 AIX 3.2 for RS/6000
39 # a41 AIX 4.1 for RS/6000
40 # a52 Attempt at AIX 5.2
41 # aix AIX/370 (not RS/6000!!)
42 # ami AmigaDOS
43 # am2 AmigaDOS with a 68020+
44 # ama AmigaDOS using AS225R2
45 # amn AmigaDOS with a 680x0 using "new" socket library
46 # aos AOS for RT
47 # art AIX 2.2.1 for RT
48 # asv Altos SVR4
49 # aux A/UX
50 # bs3 BSD/i386 3.0 and higher
51 # bsd generic BSD 4.3 (as in ancient 1980s version)
52 # bsf FreeBSD
53 # bsi BSD/i386
54 # bso OpenBSD (yes, yet another one...)
55 # cvx Convex
56 # cyg Cygwin
57 # d-g Data General DG/UX prior to 5.4 (d41 port no longer exists)
58 # d54 Data General DG/UX 5.4
59 # do4 Apollo Domain/OS sr10.4
60 # dpx Bull DPX/2 B.O.S.
61 # drs ICL DRS/NX
62 # dyn Dynix
63 # epx EP/IX
64 # ga4 GCC AIX 4.x for RS/6000
65 # gas GCC Altos SVR4
66 # gcs GCC Solaris with Blastwave Community Open Source Software
67 # gh9 GCC HP-UX 9.x
68 # ghp GCC HP-UX 10.x
69 # ghs GCC HP-UX 10.x with Trusted Computer Base
70 # go5 GCC 2.7.1 (95q4 from Skunkware _not_ 98q2!) SCO Open Server 5.0.x
71 # gsc GCC Santa Cruz Operation
72 # gsg GCC SGI
73 # gso GCC Solaris
74 # gsu GCC SUN-OS
75 # gul GCC RISC Ultrix (DEC-5000)
76 # h11 HP-UX 11i
77 # hpp HP-UX 9.x (see gh9)
78 # hpx HP-UX 10.x (see ghp, ghs, hxd, and shp)
79 # hxd HP-UX 10.x with DCE security (see shp)
80 # isc Interactive Systems
81 # ldb Debian Linux
82 # lfd Fedora Core 4
83 # ln8 Linux for Nokia N800
84 # lnx Linux with traditional passwords and crypt() in the C library
85 # (see lnp, sl4, sl5, and slx)
86 # lnp Linux with Pluggable Authentication Modules (PAM)
87 # lmd Mandrake Linux
88 # lr5 RedHat Enterprise 5 and later (same as lfd)
89 # lrh RedHat Linux 7.2 and later
90 # lsu SuSE Linux (same as lrh)
91 # lyn LynxOS
92 # mct MachTen
93 # mnt Atari ST Mint (not MacMint)
94 # neb NetBSD
95 # nec NEC UX
96 # nto QNX Neutrine RTP
97 # nxt NEXTSTEP
98 # nx3 NEXTSTEP 3.x
99 # osf OSF/1 (see sos, os4)
100 # os4 OSF/1 (Digital UNIX) 4
101 # osi Apple iPhone and iPod Touch
102 # osx Mac OS X
103 # oxp Mac OS X with Pluggable Authentication Modules (PAM)
104 # ptx PTX
105 # pyr Pyramid
106 # qnx QNX 4
107 # s40 SUN-OS 4.0 (*not* Solaris)
108 # sc5 SCO Open Server 5.0.x (see go5)
109 # sco Santa Cruz Operation (see sc5, go5)
110 # shp HP-UX with Trusted Computer Base
111 # sgi Silicon Graphics IRIX
112 # sg6 Silicon Graphics IRIX 6.5
113 # sl4 Linux using -lshadow to get the crypt() function
114 # sl5 Linux with shadow passwords, no extra libraries
115 # slx Linux using -lcrypt to get the crypt() function
116 # snx Siemens Nixdorf SININX or Reliant UNIX
117 # soc Solaris with /opt/SUNWspro/bin/cc
118 # sol Solaris (won't work unless "ucbcc" works -- use gso instead)
119 # sos OSF/1 with SecureWare
120 # ssn SUN-OS with shadow password security
121 # sua Windows Vista (Enterprise or Ultima) Subsystem for Unix Applications
122 # sun SUN-OS 4.1 or better (*not* Solaris) (see ssn)
123 # sv2 SVR2 on AT&T PC-7300 (incomplete port)
124 # sv4 generic SVR4
125 # ult RISC Ultrix (DEC-5000)
126 # uw2 UnixWare SVR4.2
127 # vul VAX Ultrix
128 # vu2 VAX Ultrix 2.3 (e.g. for VAXstation-2000 or similar old version)
131 # Extra authenticators (e.g. OTP, Kerberos, etc.). Adds linkage for
132 # auth_xxx.c and executes Makefile.xxx, where xxx is the name of the
133 # authenticator. Some authenticators are only available from third parties.
134 #
135 # The following extra authenticators are bundled:
136 # gss Kerberos V
138 EXTRAAUTHENTICATORS=
141 # Additional mailbox drivers. Add linkage for xxxdriver. Some drivers are
142 # only available from third parties.
143 #
144 # The following extra drivers are bundled:
145 # mbox if file "mbox" exists on the home directory, automatically moves mail
146 # from the spool directory to "mbox" and uses "mbox" as INBOX.
148 EXTRADRIVERS=mbox
151 # Plaintext password type. Defines how plaintext password authentication is
152 # done on this system.
153 #
154 # The following plaintext login types are bundled:
155 # afs AFS authentication database
156 # dce DCE authentication database
157 # gss Kerberos V
158 # nul plaintext authentication never permitted
159 # pam PAM authentication (note: for Linux, you should use the "lnp" port
160 # instead of setting this...also, you may have to modify PAMLDFLAGS
161 # in the imap-[]/src/osdep/unix/Makefile
162 # pmb PAM authentication for broken implementations such as Solaris.
163 # you may have to modify PAMLDFLAGS
164 # std system standard (typically passwd file), determined by port
165 # two try alternative (defined by CHECKPWALT), then std
167 PASSWDTYPE=std
170 # SSL type. Defines whether or not SSL support is on this system
171 #
172 # The following SSL types are bundled:
173 # none no SSL support
174 # unix SSL support using OpenSSL
175 # nopwd SSL support using OpenSSL, and plaintext authentication permitted only
176 # in SSL/TLS sessions
177 # sco link SSL before other libraries (for SCO systems)
178 # unix.nopwd same as nopwd
179 # sco.nopwd same as nopwd, plaintext authentication in SSL/TLS only
180 #
181 # SSLTYPE=nopwd is now the default as required by RFC 3501
183 SSLTYPE=nopwd
186 # IP protocol version
187 #
188 # The following IP protocol versions are defined:
189 # o IPv4 support, no DNS (truly ancient systems)
190 # 4 (default) IPv4 support only
191 # 6 IPv6 and IPv4 support
193 IP=4
194 IP6=6
197 # The following extra compilation flags are defined. None of these flags are
198 # recommended. If you use these, include them in the EXTRACFLAGS.
199 #
200 # -DDISABLE_POP_PROXY
201 # By default, the ipop[23]d servers offer POP->IMAP proxy access,
202 # which allow a POP client to access mail on an IMAP server by using the
203 # POP server as a go-between. Setting this option disables this
204 # facility.
205 #
206 # -DOLDFILESUFFIX=\"xxx\"
207 # Change the default suffix appended to the backup .newsrc file from
208 # "old".
209 #
210 # -DSTRICT_RFC822_TIMEZONES
211 # Disable recognition of the non-standard UTC (0000), MET (+0100),
212 # EET (+0200), JST (+0900), ADT (-0300), AST (-0400), YDT (-0800),
213 # YST (-0900), and HST (-1000) symbolic timezones.
214 #
215 # -DBRITISH_SUMMER_TIME
216 # Enables recognition of non-standard symbolic timezone BST as +0100.
217 #
218 # -DBERING_STANDARD_TIME
219 # Enables recognition of non-standard symbolic timezone BST as -1100.
220 #
221 # -DNEWFOUNDLAND_STANDARD_TIME
222 # Enables recognition of non-standard symbolic timezone NST as -0330.
223 #
224 # -DNOME_STANDARD_TIME
225 # Enables recognition of non-standard symbolic timezone NST as -1100.
226 #
227 # -DSAMOA_STANDARD_TIME
228 # Enables recognition of non-standard symbolic timezone SST as -1100.
229 #
230 # -DY4KBUGFIX
231 # Turn on the Y4K bugfix (yes, that's year 4000). It isn't well-known,
232 # but century years evenly divisible by 4000 are *not* leap years in the
233 # Gregorian calendar. A lot of "Y2K compilant" software does not know
234 # about this rule. Remember to turn this on sometime in the next 2000
235 # years.
236 #
237 # -DUSEORTHODOXCALENDAR
238 # Use the more accurate Eastern Orthodox calendar instead of the
239 # Gregorian calendar. The century years which are leap years happen
240 # at alternating 400 and 500 year intervals without shifts every 4000
241 # years. The Orthodox and Gregorian calendars diverge by 1 day for
242 # gradually-increasing intervals, starting at 2800-2900, and becoming
243 # permanent at 48,300.
244 #
245 # -DUSEJULIANCALENDAR
246 # Use the less accurate Julian calendar instead of the Gregorian
247 # calendar. Leap years are every 4 years, including century years.
248 # My apologies to those in the English-speaking world who object to
249 # the reform of September 2, 1752 -> September 14, 1752, since this
250 # code still uses January 1 (which Julius Ceasar decreed as the start
251 # of the year, which since 153 BCE was the day that Roman consuls
252 # took office), rather than the traditional March 25 used by the
253 # British. As of 2005, the Julian calendar and the Gregorian calendar
254 # diverge by 15 days.
256 # EXTRACFLAGS=-DQMAIL -DRESTRICT_POP -DXADDR_DELIM="+" -DDOTQMAIL=".forward"
257 ## EXTRACFLAGS=-DQMAIL -DRESTRICT_POP
258 EXTRACFLAGS=-DQMAIL -DRESTRICT_POP -DINET6
261 # Extra linker flags (additional/alternative libraries, etc.)
263 EXTRALDFLAGS=
266 # Special make flags (e.g. to override make environment variables)
268 EXTRASPECIALS=
269 SPECIALS=
272 # Normal commands
274 CAT=cat
275 CD=cd
276 LN=ln -s
277 MAKE=make
278 MKDIR=mkdir
279 BUILDTYPE=rebuild
280 RM=rm -rf
281 SH=sh
282 SYSTEM=unix
283 TOOLS=tools
284 TOUCH=touch
287 # Primary build command
289 BUILD=$(MAKE) build EXTRACFLAGS='$(EXTRACFLAGS)'\
290 EXTRALDFLAGS='$(EXTRALDFLAGS)'\
291 EXTRADRIVERS='$(EXTRADRIVERS)'\
292 EXTRAAUTHENTICATORS='$(EXTRAAUTHENTICATORS)'\
293 PASSWDTYPE=$(PASSWDTYPE) SSLTYPE=$(SSLTYPE) IP=$(IP)\
294 EXTRASPECIALS='$(EXTRASPECIALS)'
297 # Make the IMAP Toolkit
299 all: c-client SPECIALS rebuild bundled
301 c-client:
302 @echo Not processed yet. In a first-time build, you must specify
303 @echo the system type so that the sources are properly processed.
304 @false
307 SPECIALS:
308 echo $(SPECIALS) > SPECIALS
310 # Note on SCO you may have to set LN to "ln".
312 a32 a41 a52 aix bs3 bsi d-g d54 do4 drs epx ga4 gas gh9 ghp ghs go5 gsc gsg gso gul h11 hpp hpx lnp lyn mct mnt nec nto nxt nx3 osf os4 ptx qnx sc5 sco sgi sg6 shp sl4 sl5 slx snx soc sol sos uw2: an
313 $(BUILD) BUILDTYPE=$@
315 # If you use sv4, you may find that it works to move it to use the an process.
316 # If so, you probably will want to delete the "-Dconst=" from the sv4 CFLAGS in
317 # the c-client Makefile.
319 aos art asv aux bsd cvx dpx dyn isc pyr sv4 ult vul vu2: ua
320 $(BUILD) BUILDTYPE=$@
323 # Knotheads moved Kerberos and SSL locations on these platforms
325 # Paul Vixie claims that all FreeBSD versions have working IPv6
327 bsf: an
328 $(TOUCH) ip6
329 $(BUILD) BUILDTYPE=$@ IP=$(IP6) \
330 PASSWDTYPE=pam \
331 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/etc/ssl/certs SSLKEYS=/etc/ssl/private GSSINCLUDE=/usr/include GSSLIB=/usr/lib PAMLDFLAGS=-lpam"
333 # I assume that Theo did the right thing for IPv6. OpenBSD does not have PAM.
335 bso: an
336 $(TOUCH) ip6
337 $(BUILD) BUILDTYPE=$@ IP=$(IP6) \
338 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/etc/ssl SSLKEYS=/etc/ssl/private GSSINCLUDE=/usr/include GSSLIB=/usr/lib"
340 # Info from Joel Reicher about NetBSD SSL paths. I assume it has PAM because pam is in NetBSD sources...
342 neb: an
343 $(TOUCH) ip6
344 $(BUILD) BUILDTYPE=$@ IP=$(IP6) \
345 PASSWDTYPE=pam \
346 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/etc/openssl/certs SSLKEYS=/etc/openssl/private GSSINCLUDE=/usr/include GSSLIB=/usr/lib PAMLDFLAGS=-lpam"
348 cyg: an
349 $(BUILD) BUILDTYPE=cyg \
350 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/usr/ssl/certs SSLKEYS=/usr/ssl/certs"
352 gcs: an
353 $(BUILD) BUILDTYPE=gso \
354 SPECIALS="SSLINCLUDE=/opt/csw/include/openssl SSLLIB=/opt/csw/lib SSLCERTS=/opt/csw/ssl/certs SSLKEYS=/opt/csw/ssl/certs"
356 ldb: an
357 $(BUILD) BUILDTYPE=lnp IP=$(IP6) \
358 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/etc/ssl/certs SSLKEYS=/etc/ssl/private GSSINCLUDE=/usr/include GSSLIB=/usr/lib MAILSPOOL=/var/mail"
360 lfd: an
361 $(BUILD) BUILDTYPE=lnp IP=$(IP6) \
362 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/etc/pki/tls/certs SSLKEYS=/etc/pki/tls/private GSSDIR=/usr/kerberos"
364 ln8: an
365 $(TOUCH) ip6
366 $(BUILD) BUILDTYPE=slx IP=$(IP6) \
367 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/usr/lib/ssl/certs MAILSPOOL=/var/mail"
370 # RHE5 does not have the IPv6 bug
372 lr5: an
373 $(TOUCH) ip6
374 $(BUILD) BUILDTYPE=lnp IP=$(IP6) \
375 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/etc/pki/tls/certs SSLKEYS=/etc/pki/tls/private GSSDIR=/usr/kerberos"
377 lmd: an
378 $(BUILD) BUILDTYPE=lnp IP=$(IP6) \
379 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/usr/lib/ssl/certs SSLKEYS=/usr/lib/ssl/private GSSINCLUDE=/usr/include GSSLIB=/usr/lib"
381 # RHE3 definitely has the IPv6 bug
383 lrh: lrhok an
384 $(BUILD) BUILDTYPE=lnp IP=$(IP6) \
385 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/usr/share/ssl/certs SSLKEYS=/usr/share/ssl/private GSSDIR=/usr/kerberos"
387 lrhok:
388 @$(SH) -c '(test ! -d /etc/pki/tls ) || make lrhwarn'
389 @$(TOUCH) lrhok
391 lrhwarn:
392 @echo You are building for OLD versions of RedHat Linux. This build
393 @echo is NOT suitable for RedHat Enterprise 5, which stores SSL/TLS
394 @echo certificates and keys in /etc/pki/tls rather than /usr/share/ssl.
395 @echo If you want to build for modern RedHat Linux, you should use
396 @echo make lr5 instead.
397 @echo Do you want to continue this build? Type y or n please:
398 @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) exit 1;; esac'
399 @echo OK, I will remember that you really want to build for old
400 @echo RedHat Linux. You will not see this message again.
401 @echo If you realize that you really wanted to build for modern
402 @echo RedHat Linux, then do the following commands:
403 @echo % rm lrhok
404 @echo % make clean
405 @echo % make lr5
407 lsu: an
408 $(BUILD) BUILDTYPE=lnp IP=$(IP6) \
409 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/usr/share/ssl/certs SSLKEYS=/usr/share/ssl/private GSSDIR=/usr/kerberos"
411 # iToy does not have Kerberos or PAM. It doesn't have a
412 # /System/Library/OpenSSL directory either, but the libcrypto shared library
413 # has these locations so this is what we will use.
415 osi: an
416 $(TOUCH) ip6
417 $(BUILD) BUILDTYPE=osx IP=$(IP6) CC=arm-apple-darwin-gcc \
418 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/System/Library/OpenSSL/certs SSLKEYS=/System/Library/OpenSSL/private"
420 oxp: an
421 $(TOUCH) ip6
422 $(BUILD) BUILDTYPE=osx IP=$(IP6) EXTRAAUTHENTICATORS="$(EXTRAAUTHENTICATORS) gss" \
423 PASSWDTYPE=pam \
424 EXTRACFLAGS="$(EXTRACFLAGS) -DMAC_OSX_KLUDGE=1" \
425 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/System/Library/OpenSSL/certs SSLKEYS=/System/Library/OpenSSL/private GSSINCLUDE=/usr/include GSSLIB=/usr/lib PAMDLFLAGS=-lpam"
427 osx: osxok an
428 $(TOUCH) ip6
429 $(BUILD) BUILDTYPE=$@ IP=$(IP6) EXTRAAUTHENTICATORS="$(EXTRAAUTHENTICATORS) gss" \
430 SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/System/Library/OpenSSL/certs SSLKEYS=/System/Library/OpenSSL/private GSSINCLUDE=/usr/include GSSLIB=/usr/lib"
432 osxok:
433 @$(SH) -c '(test ! -f /usr/include/pam/pam_appl.h ) || make osxwarn'
434 @$(TOUCH) osxok
436 osxwarn:
437 @echo You are building for OLD versions of Mac OS X. This build is
438 @echo NOT suitable for modern versions of Mac OS X, such as Tiger,
439 @echo which use PAM-based authentication. If you want to build for
440 @echo modern Mac OS X, you should use make oxp instead.
441 @echo Do you want to continue this build? Type y or n please:
442 @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) exit 1;; esac'
443 @echo OK, I will remember that you really want to build for old
444 @echo Mac OS X. You will not see this message again.
445 @echo If you realize that you really wanted to build for modern
446 @echo Mac OS X, then do the following commands:
447 @echo % rm osxok
448 @echo % make clean
449 @echo % make oxp
452 # Linux shadow password support doesn't build on traditional systems, but most
453 # Linux systems are shadow these days.
455 lnx: lnxnul an
456 $(BUILD) BUILDTYPE=$@
458 lnxnul:
459 @$(SH) -c '(test $(PASSWDTYPE) = nul) || make lnxok'
461 lnxok:
462 @echo You are building for traditional Linux. Most modern Linux
463 @echo systems require that you build using make slx.
464 @echo Do you want to continue this build? Type y or n please:
465 @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) exit 1;; esac'
466 @echo OK, I will remember that you really want to build for
467 @echo traditional Linux. You will not see this message again.
468 @echo If you discover that you can not log in to the POP and IMAP
469 @echo servers, then do the following commands:
470 @echo % rm lnxok
471 @echo % make clean
472 @echo % make slx
473 @echo If slx does not work, try sl4 or sl5. Be sure to do a
474 @echo make clean between each try!
475 @$(TOUCH) lnxok
478 # SUN-OS C compiler makes you load libdl by hand...
480 ssn sun: sunok suntools ua
481 $(BUILD) BUILDTYPE=$@
483 suntools:
484 $(CD) tools;$(MAKE) LDFLAGS=-ldl
486 gsu: sunok an
487 $(BUILD) BUILDTYPE=$@
489 s40: sunok ua
490 $(BUILD) BUILDTYPE=$@
492 sunok:
493 @echo You are building for the old BSD-based SUN-OS. This is NOT
494 @echo the modern SVR4-based Solaris. If you want to build for
495 @echo Solaris, you should use make gso or make sol or make soc. Do
496 @echo you want to continue this build? Type y or n please:
497 @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) exit 1;; esac'
498 @echo OK, I will remember that you really want to build for the old
499 @echo BSD-based SUN-OS. You will not see this message again.
500 @echo If the build fails and you realize that you really wanted to
501 @echo build for Solaris, then do the following commands:
502 @echo % rm sunok
503 @echo % make clean
504 @echo % make gso
505 @echo If gso does not work, try sol. Be sure to do a make clean
506 @echo between each try!
507 @$(TOUCH) sunok
510 # SVR2 doesn't have symbolic links (at least my SVR2 system doesn't)
512 sv2:
513 $(MAKE) ua LN=ln
514 $(BUILD) BUILDTYPE=$@ LN=ln
516 # Hard links don't quite work right in SUA, and there don't seem to be any
517 # SSL includes. However, IPv6 works.
519 sua:
520 $(TOUCH) ip6 sslnone
521 $(MAKE) an LN=cp SSLTYPE=none
522 $(BUILD) BUILDTYPE=$@ LN=cp IP=$(IP6) SSLTYPE=none
525 # Pine port names, not distinguished in c-client
527 bs2: an
528 $(BUILD) BUILDTYPE=bsi
530 pt1: an
531 $(BUILD) BUILDTYPE=ptx
534 # Compatibility
536 hxd:
537 $(BUILD) BUILDTYPE=hpx PASSWDTYPE=dce
539 # Amiga
541 ami am2 ama amn:
542 $(MAKE) an LN=cp SYSTEM=amiga
543 $(BUILD) BUILDTYPE=$@ LN=cp
546 # Courtesy entries for Microsoft systems
548 nt:
549 nmake /nologo /f makefile.nt
551 ntk:
552 nmake /nologo /f makefile.ntk
554 w2k:
555 nmake /nologo /f makefile.w2k
557 wce:
558 nmake /nologo /f makefile.wce
561 # SSL build choices
563 sslnopwd sslunix.nopwd sslsco.nopwd:
564 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
565 @echo + Building in full compliance with RFC 3501 security
566 @echo + requirements:
567 @echo ++ TLS/SSL encryption is supported
568 @echo ++ Unencrypted plaintext passwords are prohibited
569 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
571 sslunix sslsco:
572 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
573 @echo + Building in PARTIAL compliance with RFC 3501 security
574 @echo + requirements:
575 @echo + Compliant:
576 @echo ++ TLS/SSL encryption is supported
577 @echo + Non-compliant:
578 @echo ++ Unencrypted plaintext passwords are permitted
579 @echo +
580 @echo + In order to rectify this problem, you MUST build with:
581 @echo ++ SSLTYPE=$(SSLTYPE).nopwd
582 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
583 @echo
584 @echo Do you want to continue this build anyway? Type y or n please:
585 @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) (make nounenc;exit 1);; esac'
587 nounenc:
588 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
589 @echo + At your request, this build with unencrypted authentication has
590 @echo + been CANCELLED.
591 @echo + You must start over with a new make command.
592 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
595 sslnone:
596 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
597 @echo + Building in NON-COMPLIANCE with RFC 3501 security requirements:
598 @echo + Non-compliant:
599 @echo ++ TLS/SSL encryption is NOT supported
600 @echo ++ Unencrypted plaintext passwords are permitted
601 @echo +
602 @echo + In order to rectify this problem, you MUST build with:
603 @echo ++ SSLTYPE=nopwd
604 @echo + You must also have OpenSSL or equivalent installed.
605 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
606 @echo
607 @echo Do you want to continue this build anyway? Type y or n please:
608 @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) (make nonossl;exit 1);; esac'
610 nonossl:
611 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
612 @echo + At your request, this build with no TLS/SSL support has been
613 @echo + CANCELLED.
614 @echo + You must start over with a new make command.
615 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
618 # IP build choices
620 ip4:
621 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
622 @echo + Building with IPv4 support
623 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
625 ip6:
626 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
627 @echo + Building with IPv6 support
628 @echo +
629 @echo + NOTE: Some versions of glibc have a bug in the getaddrinfo
630 @echo + call which does DNS name resolution. This bug causes host
631 @echo + names to be canonicalized incorrectly, as well as doing an
632 @echo + unnecessary and performance-sapping reverse DNS call. This
633 @echo + problem does not affect the IPv4 gethostbyname call.
634 @echo +
635 @echo + getaddrinfo works properly on Mac OS X and Windows. However,
636 @echo + the problem has been observed on some Linux systems.
637 @echo +
638 @echo + If you answer n to the following question the build will be
639 @echo + cancelled and you must rebuild. If you did not specify IPv6
640 @echo + yourself, try adding IP6=4 to the make command line.
641 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
642 @echo
643 @echo Do you want to build with IPv6 anyway? Type y or n please:
644 @$(SH) -c 'read x; case "$$x" in y) exit 0;; *) (make noip6;exit 1);; esac'
645 @echo OK, I will remember that you really want to build with IPv6.
646 @echo You will not see this message again.
647 @$(TOUCH) ip6
649 noip6:
650 $(MAKE) clean
651 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
652 @echo + At your request, this build with IPv6 has been CANCELLED.
653 @echo + You must start over with a new make command.
654 @echo +
655 @echo + If you wish to rebuild without IPv6 support, do one of the
656 @echo + following:
657 @echo +
658 @echo + 1. If you specified IP=6 on the make command line, omit it.
659 @echo +
660 @echo + 2. Some of the Linux builds automatically select IPv6. If
661 @echo + you choose one of those builds, add IP6=4 to the make command
662 @echo + line. Note that this is IP6=4, not IP=4.
663 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
665 # C compiler types
667 an ua:
668 @$(MAKE) ssl$(SSLTYPE)
669 @echo Applying $@ process to sources...
670 $(TOOLS)/$@ "$(LN)" src/c-client c-client
671 $(TOOLS)/$@ "$(LN)" src/ansilib c-client
672 $(TOOLS)/$@ "$(LN)" src/charset c-client
673 $(TOOLS)/$@ "$(LN)" src/osdep/$(SYSTEM) c-client
674 $(TOOLS)/$@ "$(LN)" src/mtest mtest
675 $(TOOLS)/$@ "$(LN)" src/ipopd ipopd
676 $(TOOLS)/$@ "$(LN)" src/imapd imapd
677 $(TOOLS)/$@ "$(LN)" src/mailutil mailutil
678 $(TOOLS)/$@ "$(LN)" src/mlock mlock
679 $(TOOLS)/$@ "$(LN)" src/dmail dmail
680 $(TOOLS)/$@ "$(LN)" src/tmail tmail
681 $(LN) $(TOOLS)/$@ .
683 build: OSTYPE rebuild rebuildclean bundled
685 OSTYPE:
686 @$(MAKE) ip$(IP)
687 @echo Building c-client for $(BUILDTYPE)...
688 @$(TOUCH) SPECIALS
689 echo `$(CAT) SPECIALS` $(EXTRASPECIALS) > c-client/SPECIALS
690 $(CD) c-client;$(MAKE) $(BUILDTYPE) EXTRACFLAGS='$(EXTRACFLAGS)'\
691 EXTRALDFLAGS='$(EXTRALDFLAGS)'\
692 EXTRADRIVERS='$(EXTRADRIVERS)'\
693 EXTRAAUTHENTICATORS='$(EXTRAAUTHENTICATORS)'\
694 PASSWDTYPE=$(PASSWDTYPE) SSLTYPE=$(SSLTYPE) IP=$(IP)\
695 $(SPECIALS) $(EXTRASPECIALS)
696 echo $(BUILDTYPE) > OSTYPE
697 $(TOUCH) rebuild
699 rebuild:
700 @$(SH) -c '(test $(BUILDTYPE) = rebuild -o $(BUILDTYPE) = `$(CAT) OSTYPE`) || (echo Already built for `$(CAT) OSTYPE` -- you must do \"make clean\" first && exit 1)'
701 @echo Rebuilding c-client for `$(CAT) OSTYPE`...
702 @$(TOUCH) SPECIALS
703 $(CD) c-client;$(MAKE) all CC=`$(CAT) CCTYPE` \
704 CFLAGS="`$(CAT) CFLAGS`" `$(CAT) SPECIALS`
706 rebuildclean:
707 $(SH) -c '$(RM) rebuild || true'
709 bundled:
710 @echo Building bundled tools...
711 $(CD) mtest;$(MAKE)
712 $(CD) ipopd;$(MAKE)
713 $(CD) imapd;$(MAKE)
714 $(CD) mailutil;$(MAKE)
715 @$(SH) -c '(test -f /usr/include/sysexits.h ) || make sysexitwarn'
716 $(CD) mlock;$(MAKE) || true
717 $(CD) dmail;$(MAKE) || true
718 $(CD) tmail;$(MAKE) || true
721 sysexitwarn:
722 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
723 @echo + Hmm...it does not look like /usr/include/sysexits.h exists.
724 @echo + Either your system is too ancient to have the sysexits.h
725 @echo + include, or your C compiler gets it from some other location
726 @echo + than /usr/include. If your system is too old to have the
727 @echo + sysexits.h include, you will not be able to build the
728 @echo + following programs.
729 @echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
731 clean:
732 @echo Removing old processed sources and binaries...
733 $(SH) -c '$(RM) an ua OSTYPE SPECIALS c-client mtest imapd ipopd mailutil mlock dmail tmail || true'
734 $(SH) -c '$(RM) ip6 || true'
735 $(CD) tools;$(MAKE) clean
738 # A monument to a hack of long ago and far away...
739 love:
740 @echo not war?

UW-IMAP'd extensions by yuuji