123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- -------------------------------------------------------------------------------
- -- Copyright (c) 2008-2010,2011 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.MinGW,v 1.5 2011/02/26 16:57:17 tom Exp $
- -- Author: Juergen Pfeifer
- -------------------------------------------------------------------------------
- This is work in progress, but it's in an state where one can see it
- works at least on the Windows Console.
- You should install the MSYS package, so that you've a shell environment that
- allows you to run the scripts, especially configure etc. You can get that
- from http://www.mingw.org
- To build ncurses for native Windows, you need the MinGW toolchain. The
- original MinGW toolchain from the above site is only for 32-Bit Windows. As
- Windows Server - and also regular workstations - are moving to 64-Bit, it
- seems to be reasonable to have a toolchain that supports both architectures.
- I recommend to use the TDM gcc toolchain which you can find at
- http://tdm-gcc.tdragon.net/download. Go to the download section and select
- the bundle installer for tdm64 (MinGW-w64). This installs a multilib version
- of the gcc toolchain that can compile for native 32- and 64-Bit Windows
- versions. It also comes with a working pthread implementation.
- The latest config and build scripts we use for MinGW have only been tested
- for the gcc-4.4 compiler toolchain (or better).
- Using MinGW is a pragmatic decision, it's the easiest way to port this
- heavily UNIX based sourcebase to native Windows. The goal is of course
- to provide the includes, libraries and DLLs to be used with the more
- common traditional development environments on Windows, mainly with
- Microsoft Visual Studio.
- If you start a bash from the MSYS environment, please make sure that the
- Microsoft Development tools are in your PATH right after the MinGW
- tools. The LIB.EXE tool is the only one needed. You need this only if
- you want to build DLLs that work with native Windows programs. If you
- don't have any Microsoft Development tools on your machine, consider
- at least to get the free "Visual C++ 2010 Express Edition".
- It contains the LIB.EXE tool. You may also use this compiler to test
- writing native Windows programs using the ncurses DLLs without using
- MinGW then for writing apps.
- It is necessary to unset the TERM environment variable, to activate the
- Windows console-driver.
- Please also make sure that MSYS links to the correct directory containing
- your MinGW toolchain. For TDM this is usually C:\MinGW64. In your Windows
- CMD.EXE command shell go to the MSYS root directory (most probably
- C:\MSYS or C:\MSYS\1.0) and verify, that there is a junction point mingw
- that points to the MinGW toolchain directory. If not, delete the mingw
- directory and use the mklink command (or the linkd.exe utility on older
- Windows) to create the junction point.
- This code requires WindowsNT 5.1 or better, which means on the client
- Windows XP or better, on the server Windows Server 2003 or better.
- In order to build ncurses for the planned interop layer with .NET, we
- recommend to use these options with configure
- --disable-home-terminfo
- --enable-reentrant
- --enable-sp-funcs
- --enable-term-driver
- --enable-interop
- --with-pthread (if using TDM toolchain as recommended)
- This is the configuration commandline as I'm using it at the moment:
- ./configure \
- --prefix=/mingw \
- --without-cxx-binding \
- --without-ada \
- --enable-warnings \
- --enable-assertions \
- --enable-reentrant \
- --with-debug \
- --with-normal \
- --disable-home-terminfo \
- --enable-sp-funcs \
- --enable-term-driver \
- --enable-interop \
- --with-pthread
- If you are on a 64-Bit Windows system and want to build a 32-Bit version
- of ncurses, you may use this commandline for configuration (when using
- the TDM toolchain):
- CC="gcc -m32" LD="ld -m32" ./configure \
- --prefix=/mingw \
- --without-cxx-binding \
- --without-ada \
- --enable-warnings \
- --enable-assertions \
- --enable-reentrant \
- --with-debug \
- --with-normal \
- --disable-home-terminfo \
- --enable-sp-funcs \
- --enable-term-driver \
- --enable-interop \
- --with-pthread
- All the options above are - like the whole Windows support -
- experimental.
- In order to build the DLLs, after your regular make you must call
- make dlls
- A lot is still TODO, e.g.:
- - Wide Character support
- The Win32Con driver should actually only use Unicode in the
- future.
- - Thread support (locking). If using TDM toolchain this is done by
- configuring pthreads.
- - A GUI console driver
- - Support for Terminals attached via a serial port (via terminfo)
- - Support for networked Terminal connections (via terminfo)
- - Workarounds for MinGW's filesystem access are necessary to make infocmp
- work (though tic works).
- To support terminfo, we need to have an ioctl() simulation for the
- serial and networked Terminals.
|