diff options
Diffstat (limited to 'doc/README.CYGWIN')
-rw-r--r-- | doc/README.CYGWIN | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/doc/README.CYGWIN b/doc/README.CYGWIN new file mode 100644 index 00000000..6c11ff35 --- /dev/null +++ b/doc/README.CYGWIN @@ -0,0 +1,79 @@ +Cygwin is a software package that sets up a Unix-like platform on a +Windows (win32) system. Here are some specific things you need in +that environment to build and use Netpbm. All these programs and +libraries are optional parts of the cygwin package. + + Programs: + 1) gcc suite + 2) binutils + 3) bash + 4) dlltool + 5) flex & byacc + 6) patch + 7) install + 8) rm, ln, cp and other file utilities + Libraries: + 1) libtiff (cygtiff3.dll) + 2) libpng (cygpng2.dll) + 3) libjpeg6b (cygjpeg6b.dll) + 4) libz (cygz.dll) + +Find Cygwin at http://sources.redhat.com/cygwin/ . + +One problem special to Windows is the common existence of directories +with space in their names (e.g. Windows 2000's "Documents and +Settings" directory. (Such filenames are possible on non-Windows +systems, but are highly unconventional). Don't try to build Netpbm in +such a directory or with files in such a directory. It ought to work, +but it just doesn't. And the error messages are far from helpful, +since those spaces completely change the nature of the commands that +include them. + +One way to deal with this is to use the Cygwin "mount" facility to map +the Windows path "c:/Documents and Settings/aaa/bbb/cccc/Distributions" to +something short and friendly, such as /Distributions. + + +MINGW +------ + +You can use Cygwin on Windows to build Netpbm to run on Windows, but +have the Netpbm programs use Mingw code instead of Cygwin code. + +Two reasons to do this: + + - We don't appear to have a way to statically link Cygwin library + routines into Netpbm, so you have to have a Cygwin library (DLL) + installed on a system as well as Netpbm to run Netpbm. + + - If you link Netpbm with a Cygwin library (some believe even if the + program links itself to a Cygwin library at run time), you cannot + distribute the resulting Netpbm, or any extension of your own, + unless you distribute it under GPL. That's because Cygwin is + publicly distributed under GPL, so you probably got your + permission to distribute Cygwin as part of Netpbm from GPL. A + condition of that permission was that you distribute everything you + wrap around Cygwin under GPL as well. + +Mingw is a small POSIX emulation library for Windows. See +<http://mingw.org>. + +Mingw comes with tools you can use to build Netpbm with the Mingw +library, but you can just use the Cygwin tools if you prefer. +<http://www.delorie.com/howto/cygwin/mno-cygwin-howto.html> tells how. +There isn't much to it -- it's just a matter of telling the compiler to +search for include files and link libraries in a different place, +which is basically just a -mno-cygwin option and -I and -L options. + +You can easily add the compiler options you need at the bottom of +Makefile.config after you create it with the automatic configurator +('configure'). + +Mingw does not have the Unix process management facilities (fork/wait, +etc.), so Netpbm will build without some of its function if you use +Mingw. Areas of Netpbm that require those facilities are so arcane you +probably will not miss them. + + + + |