Updated version of README.win32 by Ian (STR #1683)

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5840 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Matthias Melcher 2007-05-17 16:02:09 +00:00
parent dba81e6fca
commit 65e4576d40

View File

@ -1,5 +1,6 @@
README.win32 - 10/03/2002 - Building FLTK under Windows README.win32 - Building FLTK under Windows
------------------------------------------------------- ------------------------------------------
Last Update: May 2007 for release 1.1.8
INTRODUCTION INTRODUCTION
@ -12,18 +13,26 @@ INTRODUCTION
FLTK currently supports the following development FLTK currently supports the following development
environments on the Windows platform: environments on the Windows platform:
- Microsoft Visual C++ 6.0 using the supplied workspace - Microsoft Visual C++ 6.0, VC2005 and VC.NET using the
and project files. Be sure to get your service packs! supplied workspace and project files. Be sure to get
your service packs!
- Borland C++ Builder 5 using the supplied IDE file. - Borland C++ Builder 5 and 6 using the supplied IDE
files. These files are not as actively maintained as
the VC and GNU versions, so may not work for you.
- Watcom. There is a partial solution for the Watcom
toolchain. It is no longer actively maintained.
- GNU toolsets (Cygwin or MinGW) hosted on Windows - GNU toolsets (Cygwin or MinGW) hosted on Windows
9x/2000/NT/XP. 9x/2000/NT/XP.
This document gives a brief overview of compiling and using This remainder of this document gives a brief overview of
FLTK with the Cygwin and MinGW compiler toolkits. Both compiling and using FLTK with the Cygwin and MinGW compiler
toolkits provide a build environment based around the GNU toolkits. Both toolkits provide a build environment based
C/C++ compiler. around the GNU C/C++ compiler. Further information is
available from the FLTK website at http://www.fltk.org, such
as this Howto note: http://www.fltk.org/articles.php?L598
The Cygwin build environment supplies a library (the Cygwin The Cygwin build environment supplies a library (the Cygwin
DLL) that is primarily intended to provide a number of DLL) that is primarily intended to provide a number of
@ -33,7 +42,7 @@ INTRODUCTION
the "BASH" Bourne-compatible shell and all of the standard the "BASH" Bourne-compatible shell and all of the standard
Unix file utilities (ls, cat, grep, etc.). Unix file utilities (ls, cat, grep, etc.).
Cygwin is developed by Cygnus (now part of RedHat, Inc). Cygwin is developed by Cygnus (now part of RedHat, Inc).
Although provided for free download under the GPL, Although provided for free download under the GPL,
distributing programs that require the Cygwin DLL under a distributing programs that require the Cygwin DLL under a
license other than the GPL requires a commercial license for license other than the GPL requires a commercial license for
@ -43,21 +52,23 @@ INTRODUCTION
The MinGW distribution (Minimalist GNU for Windows) provides The MinGW distribution (Minimalist GNU for Windows) provides
a similar toolset but geared solely towards native Windows a similar toolset but geared solely towards native Windows
development without the Unix-like POSIX library. The lack development without the Unix-like POSIX library. The lack of
of any libraries under the GPL or any other restrictive any libraries under the GPL or any other restrictive license
license means that programs built with the MinGW environment means that programs built with the MinGW environment may
may always be released under any license freely. always be released under any license freely. MinGW also
supplies a Unix-like build environment for Windows,
including MSYS (a Bourne-compatible shell) and the standard
Unix file utilities (ls, cat, grep, etc.)
If you are not familiar with these GNU-like toolkits please If you are not familiar with these GNU-like toolkits please
refer to the links section later in this section. In refer to the links section later in this note. In particular,
particular, check out their license conditions carefully check out their license conditions carefully before use.
before use.
THE TOOLS THE TOOLS
There are currently three main configurations supported by There are currently three main configurations supported by
FLTK: FLTK with the GNU tools:
1. Cygwin: Built using the Cygwin toolset and using the 1. Cygwin: Built using the Cygwin toolset and using the
Unix-like POSIX compatibility layer provided by the Unix-like POSIX compatibility layer provided by the
@ -66,46 +77,35 @@ THE TOOLS
2. Cygwin using the "-mno-cygwin" option: Built using 2. Cygwin using the "-mno-cygwin" option: Built using
the Cygwin toolset but not using the Cygwin DLL. the Cygwin toolset but not using the Cygwin DLL.
3. MinGW: Mainly based upon the MinGW utilities, 3. MinGW: Built using the MinGW utilities, compiler and
compiler and tools but currently needs additional tools. This is, in many aspects, analogous to the
tools from the Cygwin distribution (make.exe and Cygwin "-mno-cygwin" option.
sh.exe).
RECOMMENDED BUILD ENVIRONMENTS RECOMMENDED BUILD ENVIRONMENTS
Our recommendation is to: Our recommendation is to:
1. Get the current Cygwin toolset (June 20, 2000 or 1. Get the current Cygwin toolset.
later).
Can produce executables that do or do not rely on the This can either produce executables that do or do not
Cygwin DLL (check licensing)-- your choice. No rely on the Cygwin DLL (check licensing) at your
supplementary MinGW files are required. choice.
2. Get the latest full MinGW toolset and add Cygwin 2. Get the latest MinGW toolset. It is recommended that
"make.exe" and "sh.exe" to it. you also get the MSYS shell and the msysDTK developer
toolset.
Will only normal Windows native executables without This will only produce normal Windows native
any Unix or POSIX compatibility. executables without any Unix or POSIX compatibility
layer.
3. Get a pre-built combined toolset that has been tested
with FLTK.
Carl Thompson has provided a set based upon the B20.1
Cygwin release and ~Feb 2000 version of Mingw which
has been successfully used for FLTK.
This will provide several Cygwin utilities and the
MinGW compiler. Compilation will produce executables
not reliant on the Cygwin DLL and so are freely
redistributable under any license you choose.
See the links section below for more information. See the links section below for more information.
All three options can provide windows-native executables and Either option can generate windows-native executables and
1 can provide a Unix-like POSIX portability layer that is option 1 can provide a Unix-like POSIX portability layer that
reliant on a GPLed library. is reliant on a GPLed library.
See the later sections for detailed information about using See the later sections for detailed information about using
one of these configurations. one of these configurations.
@ -116,7 +116,7 @@ LINKS
1. Main Cygwin homepage: 1. Main Cygwin homepage:
http://sourceware.cygnus.com/cygwin/ http://www.cygwin.com/
2. Main Mingw homepage: 2. Main Mingw homepage:
@ -126,23 +126,8 @@ LINKS
a lot of useful Mingw-native development a lot of useful Mingw-native development
documentation. documentation.
3. Mumit Khan's homepage (chief maintainer and driving
force behing MinGW):
http://www.xraylith.wisc.edu/~khan/software/gnu-win32/index.html 3. Check out the FLTK newsgroups at the FLTK homepage:
This page provides descriptions of Cygwin, Mingw and
several other similar packages. This information can
sometimes lag the current release however.
In particular the insights and recommendations for
using Cygwin for MinGW compilation are very useful:
http://www.xraylith.wisc.edu/~khan/software/gnu-win32/mno-cygwin-howto.txt
(Some of this information may be outdated and inaccurate!)
4. Check out the FLTK newsgroups at the FLTK homepage:
http://www.fltk.org/ http://www.fltk.org/
@ -150,24 +135,28 @@ LINKS
to check back through previous problems with this to check back through previous problems with this
sort of configuration before posting new questions. sort of configuration before posting new questions.
5. Carl Thompson (member of the core team responsible 4. Carl Thompson (member of the core team responsible
for FLTK): for FLTK):
http://www.carlthompson.net/ http://www.carlthompson.net/
Currently a pre-bundled development toolset may be A pre-bundled development toolset tailored for use
found at: with an earlier version of FLTK may be found at:
http://www.carlthompson.net/cygwin/ http://www.carlthompson.net/cygwin/
6. GNU Compiler Collection (GCC) compiler homepage: However, this has not been actively maintained since
the Cygwin and MinGW offerings are now more complete
these days.
5. GNU Compiler Collection (GCC) compiler homepage:
http://gcc.gnu.org/ http://gcc.gnu.org/
7. OpenGL page - for OpenGL and GLUT libs 6. OpenGL page - for OpenGL and GLUT libs
http://www.opengl.org/ http://www.opengl.org/
BUILDING FLTK WITH CYGWIN OR MINGW BUILDING FLTK WITH CYGWIN OR MINGW
@ -186,51 +175,32 @@ WHY DOES A CONSOLE WINDOW APPEAR WHEN I RUN MY PROGRAM
Keep in mind that a windows application cannot send output Keep in mind that a windows application cannot send output
to stdout, even if you run it from an existing console to stdout, even if you run it from an existing console
application. application.
(Note: A special case of this exists if running a MinGW
application from the command line of an MSYS shell, when an
application is able to write to stdout, even if compiled with
"-mwindows".)
HOW DO I GET OPENGL TO WORK? HOW DO I GET OPENGL TO WORK?
The CygWin build automatically supports OpenGL. Both builds should automatically support OpenGL.
The MingW build disables OpenGL by default, since the
standard MingW distribution lacks the OpenGL header files.
The configuration file config.h has a number of settings The configuration file config.h has a number of settings
which control compile-time compilation. One such setting is which control compile-time compilation. One such setting is
"HAVE_GL" . By default this is set to 0 to disable Open GL "HAVE_GL". This may be set to 0 to disable Open GL operation.
operation. Changing the line in config.h to Changing the line in config.h to
#define HAVE_GL 1 #define HAVE_GL 1
will change this to compile and link in OpenGL. will change this to compile and link in OpenGL.
In order for it to work you will need a few OpenGL headers
for both Cygwin and MinGW. These are not part of the
official distributions of Cygwin or MinGW, so they need to
be added. The following page provides a ZIP file containing
the OpenGL headers:
http://www.carlthompson.net/fltk/
These should be put in a "GL" subdirectory somewhere in your
compiler's search path.
You will also need an OpenGL library and an additional set
of GLUT libraries.
The OpenGL files are most likely already part of your
operating system, and the GLUT libraries are in current
versions of MinGW and Cygwin or may be found at:
http://www.opengl.org/
Do a search for 'GLUT windows' and the first couple of
results will take you to the latest GLUT and OpenGL libs for
Windows.
The binaries (DLLs normally) need to be put somewhere on the
system PATH. Consult the install documentation on the site
for info.
Many programs use OpenGL and GLUT so you may already have
them on your system.