added newer Cygwin (cross/mingw-w64) options.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8099 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Albrecht Schlosser 2010-12-22 12:28:10 +00:00
parent 75533d2482
commit f1c4092b98

View File

@ -4,7 +4,7 @@ README.MSWindows.txt - 2010-10-25 - Building FLTK under Microsoft Windows
CONTENTS CONTENTS
========== ==========
1 INTRODUCTION 1 INTRODUCTION
2 HOW TO BUILD FLTK USING MinGW/Cygwin 2 HOW TO BUILD FLTK USING MinGW/Cygwin
@ -41,9 +41,9 @@ README.MSWindows.txt - 2010-10-25 - Building FLTK under Microsoft Windows
INTRODUCTION INTRODUCTION
============== ==============
FLTK 1.3 and later is officially supported on Windows (2000,) 2003, FLTK 1.3 and later is officially supported on Windows (2000,) 2003,
XP, and later. Older Windows versions are not officially supported, XP, and later. Older Windows versions are not officially supported,
but may still work. The main reason is that the OS version needs but may still work. The main reason is that the OS version needs
to support UTF-8. FLTK 1.3 is known to work on Windows 7 and Vista. to support UTF-8. FLTK 1.3 is known to work on Windows 7 and Vista.
FLTK currently supports the following development FLTK currently supports the following development
@ -60,7 +60,7 @@ environments on the Windows platform:
- GNU toolsets (Cygwin or MinGW) hosted on Windows. - GNU toolsets (Cygwin or MinGW) hosted on Windows.
CAUTION: Libraries built by any one of these environments can not be mixed CAUTION: Libraries built by any one of these environments can not be mixed
with object files from any other environment! with object files from any other environment!
@ -94,6 +94,17 @@ Note: Since December 2009, there is a new gcc 4.x compiler
that doesn't support the -mno-cygwin option anymore. You that doesn't support the -mno-cygwin option anymore. You
must use the older gcc-3 compiler instead. must use the older gcc-3 compiler instead.
An alternative is to install the new (since about Oct. 2010)
mingw cross tools that support newer gcc compilers for building
native Windows applications (like -mno-cygwin above).
Currently you would have to install mingw64-i686-gcc-g++ for
32-bit Windows applications (despite its name!), and/or
mingw64-x86_64-gcc-g++ for 64-bit applications. You may also
need to install the corresponding '-headers' packages as well.
Currently these tools support gcc 4.5.x or newer, but the
setup for FLTK is somewhat more complicated and not yet
completely supported automatically (you may need to edit
some lines in the generated makeinclude file).
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
@ -125,7 +136,8 @@ FLTK with the GNU tools:
3. MinGW: Built using the MinGW utilities, compiler and 3. MinGW: Built using the MinGW utilities, compiler and
tools. This is, in many aspects, analogous to the tools. This is, in many aspects, analogous to the
Cygwin "-mno-cygwin" option. Cygwin "-mno-cygwin" option. This is the recommended
one if you want to build native Windows programs only.
Recommended Command Line Build Environment Recommended Command Line Build Environment
@ -186,7 +198,7 @@ into your home folder. The default location as seen from MSWindows is similar
to to
C:\MinGW\msys\1.0\home\matt\ C:\MinGW\msys\1.0\home\matt\
If you are familiar with "subversion" and like to stay current with your If you are familiar with "subversion" and like to stay current with your
version, you will find the subversion access parameters at the bottom of version, you will find the subversion access parameters at the bottom of
that page. Unpack FLTK into a convenient location. I like to have everything that page. Unpack FLTK into a convenient location. I like to have everything
@ -197,31 +209,31 @@ in my dev directory:
cd dev cd dev
tar xvfz fltk-1.3.xxxx.tar.gz tar xvfz fltk-1.3.xxxx.tar.gz
cd fltk-1.3.xxxx cd fltk-1.3.xxxx
Configuring FLTK Configuring FLTK
------------------ ------------------
Stay in your FLTK source-code directory. Type: Stay in your FLTK source-code directory. Type:
autoconf autoconf
Now configure your FLTK installation: Now configure your FLTK installation:
./configure ./configure
ADVANCED: type "./configure --help" to get a complete list of optional ADVANCED: type "./configure --help" to get a complete list of optional
configuration parameters. These should be pretty self-explanatory. Some configuration parameters. These should be pretty self-explanatory. Some
more details can be found in README. more details can be found in README.
:END_ADVANCED :END_ADVANCED
The configuration script will check your machine for the required resources The configuration script will check your machine for the required resources
which should all have been part of your MinGW installation. Review the which should all have been part of your MinGW installation. Review the
Configuration Summary, maybe take some notes. Configuration Summary, maybe take some notes.
ADVANCED: some versions of MinGW/Msys are broken and complain about a missing ADVANCED: some versions of MinGW/Msys are broken and complain about a missing
--enable-auto-import. The solution is to upgrade to the current release. If --enable-auto-import. The solution is to upgrade to the current release. If
that is not possible, you can include the --enable-auto-import flag when that is not possible, you can include the --enable-auto-import flag when
linking: linking:
./configure <config flags> LDFLAGS=-Wl,--enable-auto-import ./configure <config flags> LDFLAGS=-Wl,--enable-auto-import
:END_ADVANCED :END_ADVANCED
@ -230,7 +242,7 @@ linking:
Building FLTK Building FLTK
--------------- ---------------
Now this is easy. Stay in your FLTK source-code directory and type: Now this is easy. Stay in your FLTK source-code directory and type:
make make
@ -259,8 +271,8 @@ If you did not change any of the configuration settings, FLTK will be
installed in "/usr/local/include" and "/usr/local/lib" by typing installed in "/usr/local/include" and "/usr/local/lib" by typing
make install make install
It is possible to install FLTK in user space by changing the installation path It is possible to install FLTK in user space by changing the installation path
to a location within the user account by adding the "--prefix=PREFIX" parameter to a location within the user account by adding the "--prefix=PREFIX" parameter
to the "./configure" command. to the "./configure" command.
@ -268,11 +280,11 @@ to the "./configure" command.
Creating new Projects Creating new Projects
----------------------- -----------------------
FLTK provides a neat script named "fltk-config" that can provide all the flags FLTK provides a neat script named "fltk-config" that can provide all the flags
needed to build FLTK applications using the same flags that were used to build needed to build FLTK applications using the same flags that were used to build
the library itself. Running "fltk-config" without arguments will print a list the library itself. Running "fltk-config" without arguments will print a list
of options. The easiest call to compile an FLTK application from a single of options. The easiest call to compile an FLTK application from a single
source file is: source file is:
fltk-config --compile myProgram.cxx fltk-config --compile myProgram.cxx
@ -288,15 +300,15 @@ I recommend that you add it to the command search path.
Prerequisites Prerequisites
--------------- ---------------
In order to build FLTK from within VisualStudio 2008, you need to install the In order to build FLTK from within VisualStudio 2008, you need to install the
VisualC developer environment from the Microsoft web site. The Express edition VisualC developer environment from the Microsoft web site. The Express edition
is free of charge and sufficient to develop FLTK applications: is free of charge and sufficient to develop FLTK applications:
http://www.microsoft.com/express/Downloads/ http://www.microsoft.com/express/Downloads/
You must make sure that at least VisualStudio 2008 Service Pack 1 is installed You must make sure that at least VisualStudio 2008 Service Pack 1 is installed
or building FLTK on a multicore CPU will be very painful! or building FLTK on a multicore CPU will be very painful!
Downloading and Unpacking Downloading and Unpacking
--------------------------- ---------------------------
@ -317,25 +329,25 @@ my projects.
Configuring FLTK Configuring FLTK
------------------ ------------------
Launch VisualStudio. Open the project file in Launch VisualStudio. Open the project file in
...\fltk-1.3.xxxx\ide\VisualC2008\fltk.sln ...\fltk-1.3.xxxx\ide\VisualC2008\fltk.sln
Choose "Debug" or "Release" mode from the "Solution Configurations" menu. Choose "Debug" or "Release" mode from the "Solution Configurations" menu.
Building FLTK Building FLTK
--------------- ---------------
Use the context menu of the "demo" project to "Set as StartUp Project". Then Use the context menu of the "demo" project to "Set as StartUp Project". Then
select "Build Solution" from the "Build" menu or press F7 to build all select "Build Solution" from the "Build" menu or press F7 to build all
libraries. libraries.
VisualC 2008 has a bug that messes up building a Solution on multicore CPUs. VisualC 2008 has a bug that messes up building a Solution on multicore CPUs.
Make sure that Visual Studio 2008 Service Pack 1 is installed or, as a Make sure that Visual Studio 2008 Service Pack 1 is installed or, as a
workaround, set the "maximum number of parallel project builds" to 1 (Tools > workaround, set the "maximum number of parallel project builds" to 1 (Tools >
Options > Projects and Solutions > Build and Run > maximum number of parallel Options > Projects and Solutions > Build and Run > maximum number of parallel
project builds). Also, repeating the build command two or three times may project builds). Also, repeating the build command two or three times may
clear unresolved reference errors. clear unresolved reference errors.
@ -353,7 +365,7 @@ The default location for VisualC 2008 libraries and headers is here:
C:\Program Files\Microsoft Visual Studio 9.0\VC\ C:\Program Files\Microsoft Visual Studio 9.0\VC\
It is possible to move the FLTK libraries, headers, and Fluid into the It is possible to move the FLTK libraries, headers, and Fluid into the
respective subdirectories, so that they are available for future development respective subdirectories, so that they are available for future development
without adding link and include paths to the solution. without adding link and include paths to the solution.
@ -364,29 +376,29 @@ without adding link and include paths to the solution.
copy fluid.exe in the fluid directory to the bin directory copy fluid.exe in the fluid directory to the bin directory
I highly discourage using dll's (dynamically linking libraries) on MSWindows I highly discourage using dll's (dynamically linking libraries) on MSWindows
because they will require an installation process and likely cause version because they will require an installation process and likely cause version
conflicts. Use the static .lib libraries instead. conflicts. Use the static .lib libraries instead.
Creating new Projects Creating new Projects
----------------------- -----------------------
This chapter assumes that libraries and headers are copied into This chapter assumes that libraries and headers are copied into
C:\Program Files\Microsoft Visual Studio 9.0\VC\ C:\Program Files\Microsoft Visual Studio 9.0\VC\
Create a new project of type "General", "Empty Project" and add a simple "C++" Create a new project of type "General", "Empty Project" and add a simple "C++"
file to it. The FLTK "hello" source code is a good base. file to it. The FLTK "hello" source code is a good base.
Now open the Project Properties dialog and add "Comctl32.lib" and all the FLTK Now open the Project Properties dialog and add "Comctl32.lib" and all the FLTK
libraries that you want to use (at least "fltk.lib") to Additional Dependencies libraries that you want to use (at least "fltk.lib") to Additional Dependencies
(Configuration Properties > Linker > Additional Dependencies). In the same (Configuration Properties > Linker > Additional Dependencies). In the same
dialog, add "WIN32" to the C++ Preprocessor Definitions (Configuration dialog, add "WIN32" to the C++ Preprocessor Definitions (Configuration
Properties > C/C++ > Preprocessor > Preprocessor Definitions). Properties > C/C++ > Preprocessor > Preprocessor Definitions).
Compile and run your test program with F5. Compile and run your test program with F5.
You can also include .fl resources: add a new Header file to your project, but You can also include .fl resources: add a new Header file to your project, but
let the name end in .fl. Right-click and select "Open with...". Add "fluid.exe" let the name end in .fl. Right-click and select "Open with...". Add "fluid.exe"
from the "bin" directory and set it as the default editor. from the "bin" directory and set it as the default editor.
@ -397,7 +409,7 @@ Custom Build Steps to:
Description: Compiling Fluid .fl file Description: Compiling Fluid .fl file
Outputs: $(InputDir)$(InputName).cxx; $(InputDir)$(InputName).h Outputs: $(InputDir)$(InputName).cxx; $(InputDir)$(InputName).h
Now add the generated .cxx file to your project as well. Whenever the .fl file Now add the generated .cxx file to your project as well. Whenever the .fl file
is changed, the corresponding .cxx file will be recompiled. is changed, the corresponding .cxx file will be recompiled.
@ -409,12 +421,12 @@ is changed, the corresponding .cxx file will be recompiled.
Prerequisites Prerequisites
--------------- ---------------
In order to build FLTK from within VisualStudio 2010, you need to install the In order to build FLTK from within VisualStudio 2010, you need to install the
VisualC developer environment from the Microsoft web site. The Express edition VisualC developer environment from the Microsoft web site. The Express edition
is free of charge and sufficient to develop FLTK applications: is free of charge and sufficient to develop FLTK applications:
http://www.microsoft.com/express/Downloads/ http://www.microsoft.com/express/Downloads/
Downloading and Unpacking Downloading and Unpacking
--------------------------- ---------------------------
@ -435,18 +447,18 @@ my projects.
Configuring FLTK Configuring FLTK
------------------ ------------------
Launch VisualStudio. Open the project file in Launch VisualStudio. Open the project file in
.../fltk-1.3.xxxx/ide/VisualC2010/fltk.sln .../fltk-1.3.xxxx/ide/VisualC2010/fltk.sln
Choose "Debug" or "Release" mode from the "Solution Configurations" menu. Choose "Debug" or "Release" mode from the "Solution Configurations" menu.
Building FLTK Building FLTK
--------------- ---------------
Use the context menu of the "demo" project to "Set as StartUp Project". Then Use the context menu of the "demo" project to "Set as StartUp Project". Then
select "Build Solution" from the "Build" menu or press F7 to build all select "Build Solution" from the "Build" menu or press F7 to build all
libraries. libraries.
@ -464,7 +476,7 @@ The default location for VisualC 2010 libraries and headers is here:
C:\Program Files\Microsoft Visual Studio 10.0\VC\ C:\Program Files\Microsoft Visual Studio 10.0\VC\
It is possible to move the FLTK libraries, headers, and Fluid into the It is possible to move the FLTK libraries, headers, and Fluid into the
respective subdirectories, so that they are available for future development respective subdirectories, so that they are available for future development
without adding link and include paths to the solution. without adding link and include paths to the solution.
@ -475,33 +487,33 @@ without adding link and include paths to the solution.
copy fluid.exe in the fluid directory to the bin directory copy fluid.exe in the fluid directory to the bin directory
I highly discourage using dll's (dynamically linking libraries) on MSWindows I highly discourage using dll's (dynamically linking libraries) on MSWindows
because they will require an installation process and likely cause version because they will require an installation process and likely cause version
conflicts. Use the static .lib libraries instead. conflicts. Use the static .lib libraries instead.
Creating new Projects Creating new Projects
----------------------- -----------------------
This chapter assumes that libraries and headers are copied into This chapter assumes that libraries and headers are copied into
C:\Program Files\Microsoft Visual Studio 10.0\VC\ C:\Program Files\Microsoft Visual Studio 10.0\VC\
Create a new project of type "General", "Empty Project" and add a simple "C++" Create a new project of type "General", "Empty Project" and add a simple "C++"
file to it. The FLTK "hello" source code is a good base. file to it. The FLTK "hello" source code is a good base.
Now open the Project Properties dialog and add "Comctl32.lib" and all the FLTK Now open the Project Properties dialog and add "Comctl32.lib" and all the FLTK
libraries that you want to use (at least "fltk.lib") to Additional Dependencies libraries that you want to use (at least "fltk.lib") to Additional Dependencies
(Configuration Properties > Linker > Additional Dependencies). In the same (Configuration Properties > Linker > Additional Dependencies). In the same
dialog, add "WIN32" to the C++ Preprocessor Definitions (Configuration dialog, add "WIN32" to the C++ Preprocessor Definitions (Configuration
Properties > C/C++ > Preprocessor > Preprocessor Definitions). Properties > C/C++ > Preprocessor > Preprocessor Definitions).
Compile and run your test program with F5. Compile and run your test program with F5.
You can also include .fl resources: add a new Header file to your project, but You can also include .fl resources: add a new Header file to your project, but
let the name end in .fl. Right-click and select "Open with...". Add "fluid.exe" let the name end in .fl. Right-click and select "Open with...". Add "fluid.exe"
from the "bin" directory and set it as the default editor. from the "bin" directory and set it as the default editor.
To automatically compile .fl files, open the Properties editor and change the To automatically compile .fl files, open the Properties editor and change the
Element Type to Custom Build and click Apply. Now set the Element Type to Custom Build and click Apply. Now set the
Custom Build Steps to: Custom Build Steps to:
@ -509,7 +521,7 @@ Custom Build Steps to:
Description: Compiling Fluid .fl file Description: Compiling Fluid .fl file
Outputs: $(InputDir)$(InputName).cxx; $(InputDir)$(InputName).h Outputs: $(InputDir)$(InputName).cxx; $(InputDir)$(InputName).h
Now add the generated .cxx file to your project as well. Whenever the .fl file Now add the generated .cxx file to your project as well. Whenever the .fl file
is changed, the corresponding .cxx file will be recompiled. is changed, the corresponding .cxx file will be recompiled.
@ -518,7 +530,7 @@ is changed, the corresponding .cxx file will be recompiled.
============================ ============================
Why does a console window appear when I run my progrem? Why does a console window appear when I run my program?
--------------------------------------------------------- ---------------------------------------------------------
Windows has a flag that determines whether an application Windows has a flag that determines whether an application
@ -607,3 +619,4 @@ The following links may be of use:
Oct 25 2010 - matt: restructured entire document and verified instructions Oct 25 2010 - matt: restructured entire document and verified instructions
Dec 20 2010 - matt: merged with README.win32 Dec 20 2010 - matt: merged with README.win32
Dec 22 2010 - AlbrechtS: added newer Cygwin (cross/mingw-w64) options