diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 2002-01-01 15:11:33 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 2002-01-01 15:11:33 +0000 |
| commit | 64b4177ef4a394c99aa785c0d55fbdb7f38f037f (patch) | |
| tree | 62c3c68562850985f349a68a91ea28efaa2007a9 /README.win32 | |
| parent | e5a26965bf9f49ce273fd7faf798c98a2ea07cb7 (diff) | |
Copyright updates...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1903 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'README.win32')
| -rw-r--r-- | README.win32 | 339 |
1 files changed, 165 insertions, 174 deletions
diff --git a/README.win32 b/README.win32 index 22db43794..82b163777 100644 --- a/README.win32 +++ b/README.win32 @@ -1,245 +1,236 @@ -README.win32 - 06/15/2000 - Building FLTK under Windows -------------------------------------------------------- - -This document is split into two main sections. The first describes several -possible build environments, while the second describes some of the issues -associated with using the GNU-like build configurations in the "makefiles" -subdirectory. - +README.win32 - 01/01/2002 - Building FLTK under Windows ------------------------------------------------------- INTRODUCTION -FLTK currently supports the following development environments on the -Windows platform: + This document is split into two main sections. The first + describes several possible build environments, while the + second describes some of the issues associated with using + the GNU-like build configurations in the "makefiles" + subdirectory. + + FLTK currently supports the following development + environments on the Windows platform: + + - Microsoft Visual C++ 6.0 using the supplied workspace + and project files. Be sure to get your service packs! + + - Borland C++ Builder 5 using the supplied IDE file. + + - GNU toolsets (Cygwin or MinGW) hosted on Windows + 9x/2000/NT/XP. + + This document gives a brief overview of compiling and using + FLTK with the Cygwin and MinGW compiler toolkits. Both + toolkits provide a build environment based around the GNU + C/C++ compiler. + + The Cygwin build environment supplies a library (the Cygwin + DLL) that is primarily intended to provide a number of + Unix-like POSIX facilities for programs being ported to the + Windows environment (Win32 or WinNT). Cygwin also supplies + a very Unix-like build environment for Windows, including + the "BASH" Bourne-compatible shell and all of the standard + Unix file utilities (ls, cat, grep, etc.). + + Cygwin is developed by Cygnus (now part of RedHat, Inc). + Although provided for free download under the GPL, + distributing programs that require the Cygwin DLL under a + license other than the GPL requires a commercial license for + the Cygwin DLL. Native Windows programs that do not require + the Cygwin DLL (compiled and linked with the "-mno-cygwin" + option) may be released under any license freely. + + The MinGW distribution (Minimalist GNU for Windows) provides + a similar toolset but geared solely towards native Windows + development without the Unix-like POSIX library. The lack + of any libraries under the GPL or any other restrictive + license means that programs built with the MinGW environment + may always be released under any license freely. + + If you are not familiar with these GNU-like toolkits please + refer to the links section later in this section. In + particular, check out their license conditions carefully + before use. - - Microsoft Visual C++ 5.0 and 6.0 using the supplied workspace - and project files. Be sure to get your service packs! - - Borland C++ Builder 5 using the supplied IDE file. +THE TOOLS - - GNU toolsets (Cygwin or MinGW) hosted on Windows 9x/2000/NT + There are currently three main configurations supported by + FLTK: -This document gives a brief overview of compiling and using FLTK with the -Cygwin and MinGW compiler toolkits. Both toolkits provide a build -environment based around the GNU C/C++ compiler. + 1. Cygwin: Built using the Cygwin toolset and using the + Unix-like POSIX compatibility layer provided by the + Cygwin DLL. -The Cygwin build environment supplies a library (the Cygwin DLL) that is -primarily intended to provide a number of Unix-like POSIX facilities for -programs being ported to the Windows environment (Win32 or WinNT). Cygwin -also supplies a very Unix-like build environment for Windows, including -the "BASH" Bourne-compatible shell and all of the standard Unix file -utilities (ls, cat, grep, etc.). + 2. Cygwin using the "-mno-cygwin" option: Built using + the Cygwin toolset but not using the Cygwin DLL. -Cygwin is developed by Cygnus (now part of RedHat, Inc). Although provided -for free download under the GPL, distributing programs that require the -Cygwin DLL under a license other than the GPL requires a commercial -license for the Cygwin DLL. Native Windows programs that do not require -the Cygwin DLL (compiled and linked with the "-mno-cygwin" option) may be -released under any license freely. + 3. MinGW: Mainly based upon the MinGW utilities, + compiler and tools but currently needs additional + tools from the Cygwin distribution (make.exe and + sh.exe). -The MinGW distribution (Minimalist GNU for Windows) provides a similar -toolset but geared solely towards native Windows development without the -Unix-like POSIX library. The lack of any libraries under the GPL or any -other restrictive license means that programs built with the MinGW -environment may always be released under any license freely. -If you are not familiar with these GNU-like toolkits please refer to the -links section later in this section. In particular, check out their -license conditions carefully before use. +RECOMMENDED BUILD ENVIRONMENTS + Our recommendation is to: -THE TOOLS + 1. Get the current Cygwin toolset (June 20, 2000 or + later). -There are currently three main configurations supported by FLTK + Can produce executables that do or do not rely on the + Cygwin DLL (check licensing)-- your choice. No + supplementary MinGW files are required. -1. Cygwin: Built using the Cygwin toolset and using the Unix-like POSIX - compatibility layer provided by the Cygwin DLL. - -2. Cygwin using the "-mno-cygwin" option: Built using the Cygwin toolset - but not using the Cygwin DLL. + 2. Get the latest full MinGW toolset and add Cygwin + "make.exe" and "sh.exe" to it. -3. MinGW: Mainly based upon the MinGW utilities, compiler and tools but - currently needs additional tools from the Cygwin distribution (make.exe - and sh.exe). + Will only normal Windows native executables without + any Unix or POSIX compatibility. + 3. Get a pre-built combined toolset that has been tested + with FLTK. -RECOMMENDED BUILD ENVIRONMENTS + 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. -Our recommendation is to: + 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. -1) Get the current Cygwin toolset (June 20, 2000 or later). + See the links section below for more information. - Can produce executables that do or do not rely on the Cygwin DLL (check - licensing)-- your choice. No supplementary MinGW files are required. + All three options can provide windows-native executables and + 1 can provide a Unix-like POSIX portability layer that is + reliant on a GPLed library. -2) Get the latest full MinGW toolset and add Cygwin "make.exe" and "sh.exe" - to it. - - Will only normal Windows native executables without any Unix or POSIX - compatibility. - -3) Get a pre-built combined toolset that has been tested with FLTK. + See the later sections for detailed information about using + one of these configurations. - 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. +LINKS - 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. + The following links may be of use: - See the links section below for more information. + 1. Main Cygwin homepage: -All three options can provide windows-native executables and 1) can provide -a Unix-like POSIX portability layer that is reliant on a GPLed library. - -See the later sections for detailed information about using one of -these configurations. + http://sourceware.cygnus.com/cygwin/ -LINKS + 2. Main Mingw homepage: -1) Main Cygwin homepage: http://sourceware.cygnus.com/cygwin/ + http://www.mingw.org/ -2) Main Mingw homepage: http://www.mingw.org/ + In particular look for the MinGW FAQ at this link for + a lot of useful Mingw-native development + documentation. - In particular look for the MinGW FAQ at this link for a lot of useful - Mingw-native development documentation. + 3. Mumit Khan's homepage (chief maintainer and driving + force behing MinGW): -3) Mumit Khan's homepage (chief maintainer and driving force behing MinGW): + http://www.xraylith.wisc.edu/~khan/software/gnu-win32/index.html - http://www.xraylith.wisc.edu/~khan/software/gnu-win32/index.html + This page provides descriptions of Cygwin, Mingw and + several other similar packages. This information can + sometimes lag the current release however. - 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: - 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 - http://www.xraylith.wisc.edu/~khan/software/gnu-win32/mno-cygwin-howto.txt + (Some of this information may be outdated and inaccurate!) - (Some of this information may be outdated and inaccurate!) + 4. Check out the FLTK newsgroups at the FLTK homepage: -4) Check out the FLTK mailing list at the FLTK homepage: + http://www.fltk.org/ - http://www.fltk.org/ + Its archival search facilities are EXTREMELY useful + to check back through previous problems with this + sort of configuration before posting new questions. - Its archival search facilities are EXTREMELY useful to check back - through previous problems with this sort of configuration before posting - new questions. + 5. Carl Thompson (member of the core team responsible + for FLTK): -5) Carl Thompson (One of the core team responsible for FLTK): + http://www.carlthompson.net/ - http://www.carlthompson.net/ + Currently a pre-bundled development toolset may be + found at: - Currently a pre-bundled development toolset may be found at: + http://www.carlthompson.net/cygwin/ - http://www.carlthompson.net/cygwin/ + 6. GNU Compiler Collection (GCC) compiler homepage: -6) GCC compiler homepage + http://gcc.gnu.org/ - http://gcc.gnu.org/ - -7) OpenGL page - for OpenGL and GLUT libs + 7. OpenGL page - for OpenGL and GLUT libs - http://www.opengl.org/ + http://www.opengl.org/ ------------------------------------------------------------------- BUILDING FLTK WITH CYGWIN OR MINGW + Please read chapter 1 of the FLTK Programmers Manual for + compilation instructions. -1. Starting your first build ----------------------------- - -1.1 How to build FLTK - -a) Cygwin (to build an executable that does not use the Cygwin DLL) - - (You should have read the Cygwin documentation and compiled and linked - your own small test programs) - -i) Copy makefiles/Makefile.no-cygwin to top level FLTK directory. - -ii) Backup existing Makefile and rename top level copy of Makefile.no-cygwin - to Makefile - -iii) Type make - - The first time it is run it will copy other configuration files from - the makefiles directory and then begin building FLTK, Fluid and the - test examples. - -iv) The build process will produce libraries in the lib directory and - various executables. - -v) Read the rest of this document to learn how to troubleshoot your setup - or change various configuration settings. - - -b) Cygwin (to build an executable that uses the Cygwin DLL) - -(Steps are the same as above, but use "Makefile.cygwin" instead of -"Makefile.no-cygwin" .) - -c) MinGW - -(Steps are the same as above, but use "Makefile.mingw" instead of -"Makefile.no-cygwin" . Make sure you have "make.exe" and "sh.exe" from the -Cygwin distribution in your path as well as the MinGW tools.) - - -1.2 How do I set up Cygwin and/or MinGW - -See the links section provided in the first part of this document. This -isn't really an FLTK issue and is adequately described at the linked sites. +WHY DOES A CONSOLE WINDOW APPEAR WHEN I RUN MY PROGRAM -2. Other stuff --------------- + Windows has a flag that determines whether an application + runs in the foreground with a console or in the background + without a console. Use the "-mwindows" option to make your + application run in the background and "-mconsole" to run in + the foreground. -2.1 Getting rid of that peskey console window in the background! -Take a look at the "makeinclude" file. You'll want the add the option -"-mwindows" to your LDFLAGS setting. + Keep in mind that a windows application cannot send output + to stdout, even if you run it from an existing console + application. -2.2 OpenGL - How do I get it to work -The configuration file config.h has a number of settings which control -compile-time compilation. One such setting is "HAVE_GL" . By default this -is set to 0 to disable Open GL operation. Changing the line in config.h to +HOW DO I GET OPENGL TO WORK? -#define HAVE_GL 1 + The CygWin build automatically supports OpenGL. -will change this to compile and link in 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 + which control compile-time compilation. One such setting is + "HAVE_GL" . By default this is set to 0 to disable Open GL + operation. Changing the line in config.h to -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. + #define HAVE_GL 1 -http://www.carlthompson.net/fltk/ + will change this to compile and link in OpenGL. -has a small zip file called MingwGL.zip which contains the necessary -headers. + 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: -These should be put in a "GL" subdirectory somewhere in your compiler's -search path. + http://www.carlthompson.net/fltk/ -You will also need an OpenGL library and an additional set of GLUT -libraries. + These should be put in a "GL" subdirectory somewhere in your + compiler's search path. -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: + You will also need an OpenGL library and an additional set + of GLUT libraries. -http://www.opengl.org/ + 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: -Do a search for 'GLUT windows' and the first couple of results will take you -to the latest GLUT and OpenGL libs for Windows. + http://www.opengl.org/ -The binaries (DLLs normally) need to be put somewhere on the system PATH. -Consult the install documentation on the site for info. + Do a search for 'GLUT windows' and the first couple of + results will take you to the latest GLUT and OpenGL libs for + Windows. -Many programs use OpenGL and GLUT so you may already have them on your system + The binaries (DLLs normally) need to be put somewhere on the + system PATH. Consult the install documentation on the site + for info. -[ FLTK compiled/tested with OpenGL 1.1 and GLUT DLLs version 3.7 ] + Many programs use OpenGL and GLUT so you may already have + them on your system. |
