about summary refs log tree commit diff
path: root/doc/README.CYGWIN
diff options
context:
space:
mode:
Diffstat (limited to 'doc/README.CYGWIN')
-rw-r--r--doc/README.CYGWIN79
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.
+
+
+
+