MACOS (not MACOS X)===================This is the first attempt at porting curl to MacOS.http, ftp, dict and telnet seems to work fine, other protocols and advanced features have not been all tested.This port is heavily based on the GUSI library from Matthias Neeracher.GUSI (Grand Unified Socket Interface) is a POSIX/Pthreads/Sockets library bringing some of the comforts of UNIX 98 to traditional MacOS.The latest GUSI release can be downloaded from sourceforge at <http://sourceforge.net/projects/gusi/>I have also written a few functions to help port Unix applications to MacOS.These functions are part of the GUSI Extra library that can be downloaded at<http://perso.wanadoo.fr/ela/resources.html#gusiextra>OpenSSL support is still experimental but I hope to deliver a version including SSL soon.curl for MacOS requires using the CodeWarrior compiler from Metrowerks.First download GUSI, GUSI Extra and curl. Access paths have been setup so thatGUSI, GUSI Extra and curl directories should have the same parent directory.Follow the instructions in GUSI Extra "readme.txt" mainly the ones related toSIOUX and GUSI patches. If you do not apply these patches curl will not behave correctly.In the 'curl/src/macos' directory, decode "curl.mcp.xml.sit.hqx" (This is a stuffit binhexed file)From the CodeWarrior IDE, import 'curl/src/macos/curl.xml', adjust the access paths if required. Then you should be able to build:- the libcurl libraries for PPC and 68K.- the curl application (also available for PPC and 68K) which is the command  line version of curl.If the file "tool_hugehelp.c" is missing rename "curl/src/tool_hugehelp.c.cvs"to "tool_hugehelp.c" and make sure its file type is 'TEXT'
