imapext-2007
diff docs/BUILD @ 0:ada5e610ab86
imap-2007e
author | yuuji@gentei.org |
---|---|
date | Mon, 14 Sep 2009 15:17:45 +0900 |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/docs/BUILD Mon Sep 14 15:17:45 2009 +0900 1.3 @@ -0,0 +1,491 @@ 1.4 +/* ======================================================================== 1.5 + * Copyright 1988-2007 University of Washington 1.6 + * 1.7 + * Licensed under the Apache License, Version 2.0 (the "License"); 1.8 + * you may not use this file except in compliance with the License. 1.9 + * You may obtain a copy of the License at 1.10 + * 1.11 + * http://www.apache.org/licenses/LICENSE-2.0 1.12 + * 1.13 + * 1.14 + * ======================================================================== 1.15 + */ 1.16 + 1.17 + BUILD AND INSTALLATION NOTES 1.18 + Last Updated: 15 November 2007 1.19 + 1.20 +Table of Contents: 1.21 +1. UNIX Build Notes 1.22 +2. UNIX Installation Notes 1.23 +3. Win32 Build Notes 1.24 +4. Win32 Installation Notes 1.25 +5. Inactive Ports (TOPS-20, VMS) 1.26 +6. Other ports (Macintosh, DOS/Win16, Windows CE, Amiga, OS/2) 1.27 + 1.28 + 1.29 + UNIX BUILD NOTES 1.30 + 1.31 + The default build on many systems with IPv4 only. To build with IPv6, 1.32 +add "IP=6" to the make command line, e.g. 1.33 + make lnp IP=6 1.34 + 1.35 + The default build is to build with SSL and disabling plaintext passwords 1.36 +unless SSL/TLS encryption is in effect (SSLTYPE=nopwd). This means that 1.37 +OpenSSL MUST be installed before building the IMAP toolkit. Please refer to 1.38 +the SSLBUILD file for more information. 1.39 + 1.40 + To build without SSL, add "SSLTYPE=none" to the make command line. 1.41 +Note that doing so will produce an IMAP server which is NON-COMPLIANT with 1.42 +RFC 3501. 1.43 + 1.44 + You must build through the top-level imap-2007/Makefile, which will run 1.45 +a "process" step the first time and create the imap-2007/c-client, 1.46 +imap-2007/ipopd, and imap-2007/imapd directories in which building actually 1.47 +takes place. 1.48 + 1.49 + Before doing a make on UNIX, you should read imap-2007/Makefile and see 1.50 +if your system type is known. The various system types are three-letter codes. 1.51 +If your system type is known, then use this as the make option. After the 1.52 +first time you do a make, this option is remembered in a file called OSTYPE, 1.53 +so just typing "make" suffices. 1.54 + 1.55 + For example, if you are using a more or less modern Linux system, your 1.56 +system type is probably one of the specific distribution types (such as lrh for 1.57 +RedHat). For more generic builds, try slx (shadow passwords only) or lnp (PAM). 1.58 +To build for RedHat, do: 1.59 + make lrh 1.60 + 1.61 + There are other make options, described in imap-2007/src/osdep/Makefile. 1.62 + 1.63 + It's probably best to see if an existing port will work on your system 1.64 +before inventing a new port. Try: 1.65 + sv4 generic SVR4, non-ANSI compiler 1.66 + a32 modern SVR4 1.67 + bsd basic 4.3 BSD, non-ANSI compiler 1.68 + bsf modern BSD 1.69 + 1.70 + If you must invent a new port, you need to create an entry in 1.71 +imap-2007/Makefile and imap-2007/src/osdep/Makefile for your new port, as 1.72 +well as osdep/os_???.h and osdep/os_???.c files with the appropriate 1.73 +OS-dependent support for that system. You also need to determine which setup 1.74 +process to use. You should use the ua process unless you are sure that your 1.75 +compiler supports *ALL* aspects of ANSI C prototyping. Note that some 1.76 +compilers, such as Ultrix, support some aspects of ANSI C but not others; 1.77 +c-client really beats on the full prototyping capability of ANSI C so you 1.78 +have to use the non-ANSI source tree for such systems. 1.79 + 1.80 + If you send a new port back to us, we will make it available for others 1.81 +who use your particular system type. 1.82 + 1.83 + The mbox driver is now enabled by default. If the file "mbox" exists on 1.84 +the user's home directory and is in UNIX mailbox format, then when INBOX is 1.85 +opened this file will be selected as INBOX instead of the mail spool file. 1.86 +Messages will be automatically transferred from the mail spool file into the 1.87 +mbox file. To disable this behavior, delete "mbox" from the EXTRADRIVERS list 1.88 +in the top-level Makefile and rebuild. 1.89 + 1.90 + WARNING: The SVR2 (sv2) port is *incomplete*. SVR2 does not appear to 1.91 +have any way to do ftruncate(), which is needed by the mbox, mbx, mmdf, mtx, 1.92 +tenex, and unix drivers. 1.93 + 1.94 + UNIX INSTALLATION NOTES 1.95 + 1.96 + Binaries from the build are: 1.97 + imap-2007/mtest/mtest c-client testbed program 1.98 + imap-2007/ipopd/ipop2d POP2 daemon 1.99 + imap-2007/ipopd/ipop3d POP3 daemon 1.100 + imap-2007/imapd/imapd IMAP4rev1 daemon 1.101 + 1.102 + mtest is normally not used except by c-client developers. 1.103 + 1.104 +STEP 1: [x]inetd setup 1.105 + 1.106 + The ipop2d, ipop3d, and imapd daemons should be installed in a system 1.107 +daemon directory and invoked by a listener such as xinetd or inetd. In the 1.108 +following examples, /usr/local/etc is used). 1.109 + 1.110 +STEP 1(A): xinetd-specific setup 1.111 + 1.112 + If your system uses xinetd, the daemons are invoked by files in your 1.113 +/etc/xinetd.d directory with names corresponding to the service names (that 1.114 +is: imap, pop2, pop3). You will need to consult your local xinetd 1.115 +documentation to see what should go into these files. Here is a a sample 1.116 +/etc/xinetd.d/imap file: 1.117 + 1.118 +service imap 1.119 +{ 1.120 + disable = no 1.121 + socket_type = stream 1.122 + wait = no 1.123 + user = root 1.124 + server = /usr/local/etc/imapd 1.125 + groups = yes 1.126 + flags = REUSE IPv6 1.127 +} 1.128 + 1.129 +STEP 1(B): inetd-specific setup 1.130 + 1.131 + If your system still uses inetd, the daemons are invoked by your 1.132 +/etc/inetd.conf file with lines such as: 1.133 + 1.134 +pop stream tcp nowait root /usr/local/etc/ipop2d ipop2d 1.135 +pop3 stream tcp nowait root /usr/local/etc/ipop3d ipop3d 1.136 +imap stream tcp nowait root /usr/local/etc/imapd imapd 1.137 + 1.138 + Note that different variants of UNIX have different versions of inetd, 1.139 +so you should verify the precise form of these commands (for example, some 1.140 +versions of inetd do not require the "nowait"). 1.141 + 1.142 + IMPORTANT NOTE: inetd has a limit of how many new connections it will 1.143 +allow in a certain interval, and when this limit is exceeded, it shuts down 1.144 +the server. If you have anything beyond a small-scale server, you are 1.145 +probably going to run up against this limit. You'll know when it happens; 1.146 +your syslog will give the misleading message "imap/tcp server failing 1.147 +(looping), service terminated" and users will complain that IMAP service is 1.148 +unavailable for the next 10 minutes. Similarly with "pop3/tcp server 1.149 +failing"... 1.150 + 1.151 + It must be emphasized that this is *NOT* a bug in the IMAP or POP 1.152 +servers, nor is it anything that I can "fix". It is an inetd problem, and 1.153 +the only way to fix it is to change inetd's behavior. 1.154 + 1.155 + By default, the parameters of this limit are (from inetd.c source code): 1.156 + 1.157 +#define TOOMANY 40 /* don't start more than TOOMANY */ 1.158 +#define CNT_INTVL 60 /* servers in CNT_INTVL sec. */ 1.159 +#define RETRYTIME (60*10) /* retry after bind or server fail */ 1.160 + 1.161 +That is, no more than 40 connections (TOOMANY) in 60 seconds (CNT_INTL), and 1.162 +if exceeded, shut down the server for 10 minutes (RETRYTIME). This was a 1.163 +good setting in the 1980s ARPAnet, but is much too small today. 1.164 + 1.165 + Some versions of inetd allow you to see a higher maximum in the 1.166 +/etc/inetd.conf file. Read "man inetd" and see if you see something like 1.167 +this in the text: 1.168 + 1.169 + The wait/nowait entry is applicable to datagram sockets only [...] 1.170 + [...] The optional ``max'' suffix (separated from 1.171 + ``wait'' or ``nowait'' by a dot) specifies the maximum number of server 1.172 + instances that may be spawned from inetd within an interval of 60 sec- 1.173 + onds. When omitted, ``max'' defaults to 40. 1.174 + 1.175 +If you see this, then edit the /etc/inetd.conf entry for imapd to be 1.176 +something like: 1.177 + 1.178 +imap stream tcp nowait.100 root /usr/local/etc/imapd imapd 1.179 + (or, if you use TCP wrappers) 1.180 +imap stream tcp nowait.100 root /usr/local/etc/tcpd imapd 1.181 + 1.182 + Otherwise, you'll need to edit the inetd source code to set TOOMANY to a 1.183 +higher value, then rebuild inetd. 1.184 + 1.185 + 1.186 +STEP 2: services setup 1.187 + 1.188 + You may also have to edit your /etc/services (or Yellow Pages, 1.189 +NetInfo, etc. equivalent) to register these services, such as: 1.190 + 1.191 +pop 109/tcp 1.192 +pop3 110/tcp 1.193 +imap 143/tcp 1.194 + 1.195 + 1.196 +STEP 3: PAM setup 1.197 + 1.198 + If your system has PAM (Pluggable Authentication Modules -- most 1.199 +modern systems do) then you need to set up PAM authenticators for imap and 1.200 +pop. The correct file names are 1.201 + /etc/pam.d/imap 1.202 +and 1.203 + /etc/pam.d/pop 1.204 + 1.205 + It probably works to copy your /etc/pam.d/ftpd file to the above two 1.206 +names. 1.207 + 1.208 + Many people get these file names wrong, and then spend a lot of time 1.209 +trying to figure out why it doesn't work. Common mistakes are: 1.210 + /etc/pam.d/imapd 1.211 + /etc/pam.d/imap4 1.212 + /etc/pam.d/imap4rev1 1.213 + /etc/pam.d/ipop3d 1.214 + /etc/pam.d/pop3d 1.215 + /etc/pam.d/popd 1.216 + /etc/pam.d/pop3 1.217 + 1.218 + 1.219 +STEP 4: optional rimap setup 1.220 + 1.221 + If you want to enable the rimap capability, which allows users with a 1.222 +suitable client and .rhosts file on the server to access IMAP services 1.223 +without transmitting her password in the clear over the network, you need 1.224 +to have /etc/rimapd as a link to the real copy of imapd. Assuming you have 1.225 +imapd installed on /usr/local/etc as above: 1.226 + % ln -s /usr/local/etc/imapd /etc/rimapd 1.227 + 1.228 + Technical note: rimap works by having the client routine tcp_aopen() 1.229 +invoke `rsh _host_ exec /etc/rimapd' in an child process, and then returning 1.230 +pipes to that process' standard I/O instead of a TCP socket. You can set up 1.231 +`e-mail only accounts' by making the shell be something which accepts only 1.232 +that string and not ordinary UNIX shell commands. 1.233 + 1.234 + 1.235 +STEP 4: notes on privileges 1.236 + 1.237 + Neither user "root", not any other UID 0 account, can log in via IMAP or 1.238 +POP. "That's not a bug, it's a feature!" 1.239 + 1.240 + This software is designed to run without privileges. The mail spool 1.241 +directory must be protected 1777; that is, with world write and the sticky 1.242 +bit. Of course, mail *files* should be protected 600! 1.243 + 1.244 + An alternative to having the mail spool directory protected 1777, at the 1.245 +cost of some performance, is to use the external "mlock" program, available 1.246 +as part of the imap-utils package. With mlock installed as /etc/mlock and 1.247 +setgid mail, the spool directory can be protected 775 with group mail. 1.248 +Please disregard this paragraph if you don't understand it COMPLETELY, and 1.249 +know EXACTLY what to do without question. 1.250 + 1.251 + 1.252 +STEP 5: SVR4 specific setup 1.253 + 1.254 + There is one "gotcha" on System V Release 4 based systems such as 1.255 +Solaris. These systems do not use the standard UNIX mail format, but rather a 1.256 +variant of that format that depends upon a bogus "Content-Length:" message 1.257 +header. This is widely recognized to have been a terrible mistake. One 1.258 +symptom of the problem is that under certain circumstances, a message may get 1.259 +broken up into several messages. I'm also aware of security bugs caused by 1.260 +programs that foolishly trust "Content-Length:" headers with evil values. 1.261 + 1.262 + To fix your system, edit your sendmail.cf to change the Mlocal line to 1.263 +have the -E flag. A typical entry will lool like: 1.264 + 1.265 +Mlocal, P=/usr/lib/mail.local, F=flsSDFMmnPE, S=10, R=20, A=mail.local -d $u 1.266 + 1.267 + WIN32 BUILD NOTES 1.268 + 1.269 + Visual C++ 6.0 along with the current Microsoft Platform SDK 1.270 +(specifically the CORE SDK and the Internet Development SDK) is required 1.271 +to build on Windows 9x/Me/NT/2K/XP. If you do not have the Platform SDK 1.272 +installed or in your path properly, you'll get errors when building os_nt.c, 1.273 +typically in env_nt.c, ssl_nt.c, ssl_w2k.c, or gss_shim.c. You can download 1.274 +the Microsoft Platform SDK from Microsoft's web site. 1.275 + 1.276 + There is also considerable debate about how new mail is to be snarfed. 1.277 +I am currently using something that seems to work with WinSMTP. Look at 1.278 +the definition of MAILFILE in imap-2007/src/osdep/nt/mailfile.h and at the 1.279 +sysinbox() function in imap-2007/src/osdep/nt/env_nt.c to see what's there 1.280 +now, so you have a clue about how to hack it. 1.281 + 1.282 + To build under Windows 95/98/NT, connect to the imap-2007 directory 1.283 +and do: 1.284 + nmake -f makefile.nt 1.285 +The resulting binaries will support SSL if either schannel.dll or 1.286 +security.dll is installed in Windows, using the old, undocumented, SSL 1.287 +interfaces. You can also use this to build under Me/2000/XP, but it is 1.288 +not the preferred build on this platform. 1.289 + 1.290 + To build with MIT Kerberos support, connect to the imap-2007 directory 1.291 +and do: 1.292 + nmake -f makefile.ntk 1.293 +The resulting binaries will support SSL if either schannel.dll or 1.294 +security.dll is installed in Windows, using the old, undocumented SSL 1.295 +interfaces. They will also support MIT Kerberos. Note, however, that 1.296 +these binaries will only run on systems which have the MIT Kerberos DLLs 1.297 +installed, and will not run otherwise. 1.298 + 1.299 + To build under Windows Me/2000/XP, connect to the imap-2007 directory 1.300 +and do: 1.301 + nmake -f makefile.w2k 1.302 +The resulting binaries will support SSL and Microsoft Kerberos, using the 1.303 +official, documented, Microsoft interfaces. Note, however, that these 1.304 +binaries will not run under Windows 95, Windows 98, or Windows NT4. 1.305 + 1.306 + WIN32 INSTALLATION NOTES 1.307 + 1.308 + The resulting binaries will be: 1.309 + imap-2007\mtest\mtest.exe (testbed client) 1.310 + imap-2007\ipopd\ipop2d.exe POP2 server 1.311 + imap-2007\ipopd\ipop3d.exe POP3 server 1.312 + imap-2007\imapd\imapd.exe IMAP4rev1 server 1.313 + 1.314 + These servers are stdio servers. I wrote a simple network listener 1.315 +for NT called inetlisn; currently it is available as: 1.316 + ftp://ftp.cac.washington.edu/mail/nt/inetlisn.tar 1.317 +To build this, use "nmake" after connecting to the inetlisn directory. 1.318 +inetlisn takes two arguments, the first being the port number and the second 1.319 +being the binary to run to serve a connection on that port, e.g. 1.320 + c:\bin\inetlisn 143 c:\mail_daemons\imapd 1.321 + 1.322 + Note that NT imapd must be started as SYSTEM in order to be recognized as 1.323 +being "not logged in"; otherwise it will preauth as whatever user it is 1.324 +running as which is probably not what you want. One way to have it run as 1.325 +system is to have inetlisn run by an AT command, e.g. if the time now is 1.326 +2:05PM, try something like: 1.327 + AT 14:06 "c:\bin\inetlisn 143 c:\mail_daemons\imapd" 1.328 + 1.329 + A more advanced network listener called wsinetd is available on: 1.330 + http://wsinetd.sourceforge.net 1.331 +It is based on inetlisn, and essentially is a "completed" version of inetlisn. 1.332 + 1.333 + Bottom line: this is not plug-and-play. If you're not a hacker and/or 1.334 +are unwilling to invest the time to do some programming, you probably want to 1.335 +buy a commercial server product. 1.336 + 1.337 + INACTIVE PORTS 1.338 + 1.339 + The TOPS-20 and VMS ports were developed at one time or another, but are 1.340 +no longer actively developed. However, from time to time I test build both 1.341 +of these to make sure that they compile without errors and that mtest runs, 1.342 +and will continue doing so as long as I have access to systems running these 1.343 +operating systems. 1.344 + 1.345 + 1.346 + TOPS-20 BUILD NOTES 1.347 + 1.348 + I have provided a c-client port for TOPS-20 systems, but you're on your 1.349 +own in terms of a nice TOPS-20 like main program. Maybe someday some nice 1.350 +person will try porting Pine to TOPS-20. This assumes the use of KCC 6, and 1.351 +probably will not build with other compilers or older versions of KCC. 1.352 + 1.353 + You do not use imap-2007/Makefile under TOPS-20, nor do you build any 1.354 +components other than c-client and mtest. Merge the contents of 1.355 +imap-2007/src/c-client, imap-2007/src/charset, imap-2007/src/mtest, and 1.356 +imap-2007/src/osdep/tops-20 onto a single directory on TOPS-20 and build from 1.357 +that. The command: 1.358 + DO BUILD.CTL 1.359 +will build the sources. If you don't have MIC, then SUBMIT BUILD.CTL and let 1.360 +BATCON execute it. 1.361 + 1.362 + 1.363 + VMS BUILD NOTES 1.364 + 1.365 + The VMS port has been tested with imap-2007, but as I am soon going 1.366 +to lose access to a VMS system I will no longer be able able to test and 1.367 +this port will be moved to the "other ports" category". 1.368 + 1.369 + You do not use imap-2007/Makefile under VMS, nor do you build any 1.370 +components other than c-client and mtest. Merge the contents of 1.371 +imap-2007/src/c-client, imap-2007/src/charset, imap-2007/src/mtest, and 1.372 +imap-2007/src/osdep/vms onto a single directory on VMS and build from that. 1.373 +The command to build it is: 1.374 + @BUILD MULTINET 1.375 +or @BUILD NETLIB 1.376 +If you just do @BUILD it will build with dummy TCP code, and since only TCP 1.377 +based drivers are provided here this isn't too useful. 1.378 + 1.379 + If you aren't on the Pacific coast of the US or Canada, you probably will 1.380 +need to change the wired-in timezone in the BUILD.COM file. Apparently, the 1.381 +wonderful VMS system that DEC loves so much doesn't maintain any concept of 1.382 +time zone; the VMS C compiler returns a null pointer from gmtime()! 1.383 + 1.384 + Otherwise you're pretty much on your own here. 1.385 + 1.386 + OTHER PORTS 1.387 + 1.388 + The following ports were developed at one time or another, but are no 1.389 +longer actively developed or tested. It is not known if they still work or 1.390 +not. 1.391 + 1.392 + Port Status 1.393 + ---- ------ 1.394 +Macintosh Obsolete; Mac OS X uses UNIX port 1.395 +DOS/Win16 Obsolete; modern PCs use Win32 port 1.396 +Windows CE Never completed 1.397 +Amiga Unknown 1.398 +OS/2 Unknown 1.399 + 1.400 + MACINTOSH BUILD NOTES 1.401 + 1.402 + This port is for the old Mac OS system, not Mac OS X. 1.403 + 1.404 + If you are building a Macintosh client, you will need MacTCP installed on 1.405 +your system as well as the MacTCP C includes and libraries. 1.406 + 1.407 + You do not use imap-2007/Makefile on the Mac, nor do you build any 1.408 +components other than c-client and mtest. Merge the contents of 1.409 +imap-2007/src/c-client, imap-2007/src/charset, imap-2007/src/mtest, and 1.410 +imap-2007/src/osdep/mac onto a single directory on the Mac and build from 1.411 +that. mtext.sit.hqx is a THINK C project file and cute icon for building 1.412 +mtest, encoded with Binhex and StuffIt. 1.413 + 1.414 + THINK C is a truly wretched product which help make me understand why 1.415 +Macintosh has lost most of its market share. Not only does it do cretinous 1.416 +things such as barf about a cast in front of an lvalue, it also limits the size 1.417 +of code *or* data in a single file to 32K! So much for having large character 1.418 +set tables. Symantec says that "MacOS requires it, break up your files into 1.419 +smaller pieces" yet somehow gcc under MachTen contrives to compile C programs 1.420 +without subjecting the programmer to this idiocy. 1.421 + 1.422 + As a result of this, I found myself obliged to comment out the #includes 1.423 +of the East Asian character sets in utf8.c in order to get it to build. It's 1.424 +also necessary to break up some of the files, at least mail.c and imap4r1.c. 1.425 +Maybe you don't have to do this in CodeWarrior or whatever the new compiler is 1.426 +called, but I've pretty much given up on Macintosh. 1.427 + 1.428 + If you use precompiled headers, you may get some compilation errors since 1.429 +some Apple symbols need to be redefined in order to get it to build under all 1.430 +versions of MacOS. Try turning off the precompiled headers (so it will 1.431 +re-read the .h files) and see if it builds any better. 1.432 + 1.433 + If you use a Mac C compiler with 2-byte ints (such as THINK C's normal 1.434 +mode) you will need to fix some bugs in the MacTCP C includes and libraries to 1.435 +prevent it from generating bad code, since those MacTCP files violate Apple's 1.436 +standards of always using explicit shorts or longs, never ints. You could 1.437 +avoid this if you set 4-byte ints in THINK C; however, the ANSI and UNIX 1.438 +libraries in THINK C use 2-byte ints so you will also need to build 4-byte int 1.439 +versions of these. c-client itself is 2-byte int or 4-byte int clean; it can 1.440 +be used in either mode. 1.441 + 1.442 + The most important bug in the MacTCP files that you need to fix is in the 1.443 +file AddressXlation.h, you need to change the definition of the rtnCode member 1.444 +of the hostInfo structure to be long instead of int. There are several other 1.445 +changes you need to make if you decide to compile dnr.c under THINK C instead 1.446 +of using the Apple-supplied object file; see me for details if you decide to 1.447 +undertake such an effort. This is fixed in newer versions from Apple. 1.448 + 1.449 + 1.450 + DOS/WIN16 BUILD NOTES 1.451 + 1.452 + If you are building a DOS client, you will need a TCP/IP stack installed 1.453 +on your DOS system along with its development environment. The currently 1.454 +supported stacks are Beame & Whiteside, PC-NFS, Novell, PC/IP, Waterloo, and 1.455 +Winsock. mtest and a version of Pine called PC Pine run under DOS. 1.456 + 1.457 + You do not use imap-2007/Makefile under DOS, nor do you build any 1.458 +components other than c-client and mtest. Merge the contents of 1.459 +imap-2007/src/c-client, imap-2007/src/charset, imap-2007/src/mtest, and 1.460 +imap-2007/src/osdep/dos onto a single directory on DOS and build from that. 1.461 +The MAKE command on DOS takes an argument identifying the TCP/IP stack in use. 1.462 +For example, do: 1.463 + MAKE MAKEFILE OS=WSK (or MAKE -F MAKEFILE OS=WSK) 1.464 +to build for Winsock. 1.465 + 1.466 + If you write a program for DOS/Win16, you will probably have to write a 1.467 +replacement cache manager (look at mm_cache()) and otherwise disable most of 1.468 +c-client's caching. Even so, memory limitations will be an ongoing problem, 1.469 +particularly with DOS, and you will have some severe performance problems. 1.470 +It's a bit better on Win16, but in my opinion you are better off writing a 1.471 +32-bit program and telling your Win16 customers to upgrade to Windows 95 or at 1.472 +least install Win32s. 1.473 + 1.474 + 1.475 + WINDOWS CE BUILD NOTES 1.476 + 1.477 + I build using Visual C++ 6.0 with the WCE extensions. The current code 1.478 +has SH3 wired in for the compiler building. 1.479 + 1.480 + To build under NT, connect to the imap-2007 directory and do: 1.481 + nmake -f makefile.wce 1.482 + 1.483 + The only binary produced is a cclient.lib file. I haven't gotten as far 1.484 +as building mtest on WCE, mainly because I don't have a stdlib library. 1.485 + 1.486 + 1.487 + AMIGA BUILD AND INSTALLATION NOTES 1.488 + 1.489 + The Amiga port was contributed. Maybe the UNIX notes will help. 1.490 + 1.491 + 1.492 + OS2 BUILD NOTES 1.493 + 1.494 + The OS2 port was contributed. Maybe the Win32 Build Notes will help.