-------------------------------------------------------------------------------
-- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.               --
--                                                                           --
-- Permission is hereby granted, free of charge, to any person obtaining a   --
-- copy of this software and associated documentation files (the             --
-- "Software"), to deal in the Software without restriction, including       --
-- without limitation the rights to use, copy, modify, merge, publish,       --
-- distribute, distribute with modifications, sublicense, and/or sell copies --
-- of the Software, and to permit persons to whom the Software is furnished  --
-- to do so, subject to the following conditions:                            --
--                                                                           --
-- The above copyright notice and this permission notice shall be included   --
-- in all copies or substantial portions of the Software.                    --
--                                                                           --
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS   --
-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF                --
-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
-- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,       --
-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR     --
-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
-- USE OR OTHER DEALINGS IN THE SOFTWARE.                                    --
--                                                                           --
-- Except as contained in this notice, the name(s) of the above copyright    --
-- holders shall not be used in advertising or otherwise to promote the      --
-- sale, use or other dealings in this Software without prior written        --
-- authorization.                                                            --
-------------------------------------------------------------------------------
-- $Id: README.emx,v 1.8 2006/04/22 22:19:37 tom Exp $
-- Author: Thomas Dickey
-------------------------------------------------------------------------------

You can build ncurses on OS/2 in the EMX environment.  But you must build and
acquire tools.  Not all of the tools distributed with EMX work properly, and
some additional ones are required.

First, the configure script distributed with ncurses will not run as-is in EMX. 
You can generate a new one if you have autoconf built for EMX.  You will need
the EMX development tools, of course.  Get these programs to start:

	GNU m4 program (version 1.4)
	GNU autoconf (version 2.13).
	GNU patch (version 2.5)

Apply the autoconf patches from

	http://invisible-island.net/autoconf
	ftp://invisible-island.net/autoconf

These are ordered by date:

	autoconf-2.13-20030927.patch.gz
	autoconf-2.13-20030927-emx.patch.gz

I built my development environment for ncurses using EMX 0.9c at the end of
1997.  Much of the EMX patch for autoconf was done originally by J.J.G.Ripoll,
using a similar environment (he prefers using the 'ash' shell).  Newer versions
may fix these problems:

	+ The pdksh program distributed at Hobbes and Leo (with a 1996 date) is
	  defective.  It does not process "here documents" correctly (which
	  renders it useless for running the autoconf script).  I built my own
	  copy of pdksh 5.2.13, which does have the bug corrected (documented
	  in the change log for pdksh).

	+ I also built from sources (because the distributed binaries did not
	  work) the cmp, diff programs.
	  
	  Other required utilities such as ar, cat, chmod, cp, gawk, grep, mv,
	  ls, rm, mkdir, sed, sort and tr worked.

Once you have autoconf patched and installed, run 'autoconf' from the top-level
directory of ncurses to generate the EMX-specific configure script.
