How to build PDCurses
=====================
Unpack the source archive, then go to the appropriate section below, for
native console, X11 or SDL.
DOS, OS/2, or Windows console
-----------------------------
. In the subdirectory for each OS, you'll find a number of ".mak"
files, one for each supported compiler:
DOS:
bccdos.mak - Borland C++ 3.0+
gccdos.mak - DJGPP V2
mscdos.mak - Microsoft C
wccdos16.mak - Watcom 10.6+ (16-bit)
wccdos4g.mak - Watcom 10.6+ (32-bit)
OS/2:
bccos2.mak - Borland C++ 2.0
gccos2.mak - EMX 0.9b+
iccos2.mak - C Set/2
wccos2.mak - Watcom 10.6+ (32-bit)
Windows:
bccwin32.mak - Borland C++ 4.0.2+
dmcwin32.mak - Digital Mars
gccwin32.mak - Cygnus GNU Compiler
lccwin32.mak - LCC-Win32
mingwin32.mak - MinGW
vcwin32.mak - Microsoft Visual C++ 2.0+
wccwin32.mak - Watcom 10.6+
. For 16-bit compilers, you can change the memory MODEL in the makefile.
(Large model is the default, and recommended.)
. Optionally, you can build in a different directory than the platform
directory by setting PDCURSES_SRCDIR to point to the directory where
you unpacked PDCurses, and changing to your target directory:
set PDCURSES_SRCDIR=c:\pdcurses
This step is no longer required when building in the platform
directory, and won't work with the LCC or Digital Mars makefiles.
. Build it:
make -f makefilename
(For Watcom, use "wmake" instead of "make"; for MSVC or C Set/2,
"nmake".) You'll get the libraries (pdcurses.lib or .a, depending on
your compiler; and panel.lib or .a), the demos (*.exe), and a lot of
object files. Note that the panel library is now (as of 3.2) just a
copy of the main library, provided for convenience; both panel and
curses functions are in the main library.
For Windows (except with LCC or Digital Mars), you can also give the
optional parameter "WIDE=Y", to build the library with wide-character
(Unicode) support:
make -f mingwin32.mak WIDE=Y
When built this way, the library is not compatible with Windows 9x,
unless you also link with the Microsoft Layer for Unicode (not
tested).
Another option for Windows, "UTF8=Y", makes PDCurses ignore the
system locale, and treat all narrow-character strings as UTF-8. This
option has no effect unless WIDE=Y is also set. Use it to get around
the poor support for UTF-8 in the Win32 console:
make -f mingwin32.mak WIDE=Y UTF8=Y
You can also use the optional parameter "DLL=Y" with Visual C++,
MinGW, Cygwin or EMX, to build the library as a DLL:
nmake -f vcwin32.mak WIDE=Y DLL=Y
When you build the library as a Windows DLL, you must always define
PDCURSES_DLL_BUILD when linking against it. (Or, if you only want to
use the DLL, you could add this definition to your curses.h.) This is
not true for OS/2.
X11
---
. Run "./configure" in the PDCurses-x.x directory.
To build the wide-character version of the library, specify
"--enable-widec" as a parameter. To use X Input Methods, add
"--enable-xim". I recommend these options, but I haven't yet made
them the defaults, for the sake of backwards compatibility and due to
their new and relatively untested status.
If your system is lacking in UTF-8 support, you can force the use of
UTF-8 instead of the system locale via "--enable-force-utf8". This is
generally more useful in Windows.
If configure can't find your X include files or X libraries, you can
specify the paths with the arguments "--x-includes=inc_path" and/or
"--x-libraries=lib_path".
By default, the library and demo programs are built with the optimizer
switch -O2. You can turn this off, and turn on debugging (-g), by
adding "--with-debug" to the configure command.
. Run "make". This should build libXCurses and all the demo programs.
. Optionally, run "make install". curses.h and panel.h will be renamed
when installed (to xcurses.h and xpanel.h), to avoid conflicts with
any existing curses installations. Unrenamed copies of curses.h and
panel.h are installed in (by default) /usr/local/include/xcurses.
As of 3.2, libXpanel is just a symlink to libXCurses. Both curses and
panel functions are in the main library.
SDL
---
. On *nix (including Linux and Mac OS X), run "make" in the sdl1
directory. There is no configure script (yet?) for this port. This
assumes a working sdl-config, and GNU make. It builds the library
libpdcurses.a (dynamic lib not implemented).
With MinGW, run "make -f Makefile.mng". This assumes SDL is installed
in the standard directories. The MinGW makefile accepts the optional
parameters "DLL=Y" and "DEBUG=Y", as with the console version. (Wide-
character support is not yet implemented for SDL.) Both makefiles
recognize the optional PDCURSES_SRCDIR environment variable, as with
the console ports. Makefile.mng builds libpdcurses.a, along with
pdcurses.dll, if specified.
|