README.md
1PDCurses for Win32a
2==================
3
4This directory contains PDCurses source code files specific to Win32
5graphics mode (Win95 and all subsequent forks of Windows).
6
7Building
8--------
9
10 (Note that the following is almost identical to the instructions
11 for the Win32 console flavor of PDCurses.)
12
13- Choose the appropriate makefile for your compiler:
14
15 bccwin32.mak - Borland C++ 4.0.2+
16 dmcwin32.mak - Digital Mars
17 lccwin32.mak - LCC-Win32
18 mingwin32.mak - MinGW, Cygnus GNU Compiler
19 vcwin32.mak - Microsoft Visual C++ 2.0+ or later & Intel(R) compiler
20 wccwin32.mak - Watcom 10.6+ or OpenWATCOM
21
22- Optionally, you can build in a different directory than the platform
23 directory by setting PDCURSES_SRCDIR to point to the directory where
24 you unpacked PDCurses, and changing to your target directory:
25
26 set PDCURSES_SRCDIR=c:\pdcurses
27
28 This won't work with the LCC or Digital Mars makefiles, nor will the
29 options described below.
30
31- Build it:
32
33 make -f makefilename
34
35 (For Watcom, use "wmake" instead of "make"; for MSVC, "nmake".) You'll
36 get the libraries (pdcurses.lib or .a, depending on your compiler; and
37 panel.lib or .a), the demos (*.exe), and a lot of object files. Note
38 that the panel library is just a copy of the main library, provided
39 for convenience; both panel and curses functions are in the main
40 library.
41
42 You can also give the optional parameter "WIDE=Y", to build the
43 library with wide-character (Unicode) support:
44
45 make -f mingwin32.mak WIDE=Y
46
47 When built this way, the library is not compatible with Windows 9x,
48 unless you also link with the Microsoft Layer for Unicode (not
49 tested).
50
51 For the Intel(R) compiler, use vcwin32.mak and add ICC=Y.
52
53 By default, vcwin32.mak results in 64-bit code for both VC and Intel(R).
54 Add IX86=Y to generate 32-bit code. (Other builds are 32-bit only.)
55
56 Another option, "UTF8=Y", makes PDCurses ignore the system locale, and
57 treat all narrow-character strings as UTF-8. This option has no effect
58 unless WIDE=Y is also set. This was originally provided to get around
59 poor support for UTF-8 in the Win32 console:
60
61 make -f mingwin32.mak WIDE=Y UTF8=Y
62
63 Win32a doesn't have the same limitations as the Win32 console flavor,
64 but UTF-8 and non-UTF-8 versions are still available. If nothing else,
65 this means that if you've built a Win32 console PDCurses DLL with any
66 configuration, you can build a matching Win32a DLL and swap between
67 console or GUI PDCurses just by swapping DLLs.
68
69 You can also use the optional parameter "DLL=Y" with Visual C++,
70 MinGW or Cygwin, to build the library as a DLL:
71
72 nmake -f vcwin32.mak WIDE=Y DLL=Y
73
74 When you build the library as a Windows DLL, you must always define
75 PDC_DLL_BUILD when linking against it. (Or, if you only want to use
76 the DLL, you could add this definition to your curses.h.)
77
78 If cross-compiling from Linux, add the parameter `_w64=1` to get
79 64-bit code (default will be 32-bit).
80
81 make -f mingwin32.mak _w64=1 [WIDE=Y UTF8=Y DLL=Y]
82
83Distribution Status
84-------------------
85
86The files in this directory are released to the Public Domain.
87
88Acknowledgements
89----------------
90
91Based heavily on the Win32 console flavor of PDCurses by Chris Szurgot
92<szurgot[at]itribe.net>, ported to Win32 GUI by Bill Gray
93<pluto[at]projectpluto.com>.
94