diff --git a/README.win32 b/README.win32 new file mode 100644 index 000000000..37feae9f5 --- /dev/null +++ b/README.win32 @@ -0,0 +1,425 @@ +README.win32 - 06/13/2000 - Building FLTK under Windows +------------------------------------------------------- + + +INTRODUCTION + +FLTK currently supports the following development environments on +the Windows platform: + + - 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. + + - Various GNU-like toolsets (Cygwin, Mingw) hosted on + Windows 9x/2000/NT + +This document gives a brief overview of 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 is primarily intended to provide a number of +Un*x-like facilities for programs being ported to the Windows environment. +(Win32 or WinNT) + +It was developed by Cygnus (now part of RedHat) and although provided +for free download, does require a license if programs are to be +distributed that require the main CYGWIN1.DLL library. + +The Mingw distribution (Minimalist GNU for Windows) provides a similar +toolset but geared solely towards windows development. Because of this +it uses only those DLLs provided by Microsoft as part of the operating +system. The lack of any proprietary DLLs means that licensing of the +Mingw toolset is considerably more relaxed. + +Perhaps confusingly, the Cygwin environment supports some basic +Mingw-like compilation (via the -mno-cygwin flag), but requires +supplementary files to mimic the full standalone Mingw capabilities. +These supplementary files (headers and replacement libraries) can be +found at the Mingw home page along with its native toolkit. + +If you are not familiar with these GNU-like toolkits please refer to +the links section later in this document. In particular, check out +their license conditions carefully before use. + + +THE TOOLS + +There are currently two main configurations supported by FLTK + +cygnus: Built natively under the Cygwin toolset and using the Un*x + compatibility layer provided by CYGWIN1.DLL + +mingw: Mainly based upon the Mingw utilities, compiler and tools but + currently needs supplementing by additional tools such as + make.exe. Consequently the Makefiles provided do require the + Cygwin toolset as a convenient way of obtaining some of the + build utilities but generates code not using CYGWIN1.DLL. + +It is also possible to build an executable using the Mingw toolset and +other windows-native tools (rather than using Cygwin). At present such +tools do exist but are spread widely over the net and of differing +versions. + +The advantage of this approach would be no necessity to download the +Cygwin tools. At this time it is felt that the maintenance costs of +this approach outweigh any benefits however. + +It is intended that the Cygwin tools themselves provide a basic Mingw +alternate compilation mode through the compile/link flag -mno-cygwin. + +At the time of writing v1.1.2 of Cygwin has just been released and +still has some serious configuration issues for Mingw compilation and +so cannot be recommended. + +This Cygwin-only method has a number of deficiencies that prevent many +modern programs from compiling unless further headers and replacement +libraries are added. + +These additions are also available at the Mingw site mentioned above. + +As you can see there are many ways to configure the various bits of +Cygwin and Mingw. In order to set up development refer to the links +section below for more guidance. + + +PROBLEMS WITH THE `MIX AND MATCH' APPROACH + +One main confusion is the use of Un*x and Windows conventions based +upon the tool being used. + +Cygwin tools tend to follow the Un*x rules for things like path names +(forward slashes) whereas the Mingw tools follow the windows +conventions. + +A hybrid toolset can be a source of confusion for this reason. + +Other issues from this combination are caused by the use of say the DOS +copy command in a DOS shell (with '\') and say the cp command with '/' +in a bash or sh shell. + + +RECOMMENDED BUILD ENVIRONMENTS + +Our recommendation is to: + +1) Get a pre-built combined toolset that has been tested with FLTK + + This will provide several Cygwin utilities and the Mingw compiler. + Compilation will produce executables not reliant on the CYGWIN1.DLL + and so are freely-redistributable. + + 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. + + See the links section below for more information. + +2) Get the latest Cygwin toolset. + Get the latest full Mingw toolset. + + Configure your PATH to find the Mingw tools first but also have the + Cygwin supplementary tools on your PATH for commands like make. + +3) Get the latest Cygwin toolset + + Produce executables dependent on CYGWIN1.DLL (Check licensing). + i.e. No supplementary Mingw files required. + +See the later sections for detailed information about using one of +these configurations. + +Other options: + +4) When the Cygwin tools are fixed... + + Get the latest Cygwin toolset. + Get the latest Mingw supplementary files for Cygwin. + + This would be a good long-term solution since this would allow + Cygwin native or Cygwin-hosted Mingw compilation without the + confusion of two versions of some of the tools. + +5) Get the latest full Mingw toolset. + Get the necessary supplementary tools for native versions of make etc + + Again a good long-term solution but currently difficult to maintain + due to the diversity of tools and versions. + + +LINKS + +1) Main Cygwin homepage: http://sourceware.cygnus.com/cygwin/ + +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. + +3) Mumit Khan's homepage (chief maintainer and driving force behing Mingw): + + 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. + + 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 + +4) Check out the FLTK mailing list at the FLTK homepage: + + 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. + +5) Carl Thompson (One of the core team responsible for FLTK): + + http://www.carlthompson.net/ + + Currently a pre-bundled development toolset may be found at: + + http://www.carlthompson.net/cygwin/ + + +BUILDING FLTK WITH CYGWIN OR MINGW + + +1. Starting my first build +-------------------------- + +1.1 How do I build FLTK + +a) Cygwin 'native' system (intend building an executable using CYGWIN1.DLL) + + Having read the Cygwin documentation and happily compiled and linked your +own small test programs (see below)... + +i) Copy makefiles/Makefile.cygnus to top level FLTK directory. + +ii) Backup existing Makefile and rename top level copy of Makefile.cygnus 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) For a combination Cygwin + full Mingw solution as described in 'Win32 build + environments.txt' + +Download the Cygwin tools and Mingw tools. +Set the PATH to find the Mingw tools first and then the Cygwin ones. + +Follow steps i) to v) above but copying Makefile.Mingw to the top level. + + +c) For a Cygwin solution with only supplementary libraries/headers from Mingw + (rather than full native Mingw toolset). + +At the time of writing, Cygwin 1.1.2 does not work with early June 2000 gcc +tools to produce Mingw executables. + +As such this is not currently supported via a Makefile, but here are some tips: + +The compiler and linker option -mno-Cygwin SHOULD be all that's necessary to +add to makeinclude.cygnus as the toolset should then pull in the correct +alternate files. + +I would strongly recommend you read the insights into this process described by +Mumit Khan (see links section of 'Win32 build environments.txt' ) + + +1.2 How do I set up Cygwin and/or Mingw + +See the links provided in the 'Win32 build environments.txt' document +supplementing this one. +This isn't really an FLTK issue and is adequately diescribed at the linked +sites. + + +2. Common build problems +------------------------ + +2.1 Compilation tests + +There are many reasons for a failed compilation, including an incorrect +development toolset. + +If you haven't regularly used the environment before, try compiling a few basic +programs directly. + +e.g. 1 + +--------------------- + +/* Filename hello.c */ + +#include + +int main() +{ + printf("Hello World\n"); + return 0; +} + +--------------------- + +gcc hello.c + +should produce an executable called 'a.exe' + +Try adding the -v option to display a lot of diagnostic search information +about where gcc is looking. + +Often problems can be traced to incorrect include or library paths. + +Once successfully compiled, try + +objdump -p a.exe + +on the executable to display info on the executable (including DLLs it uses) + +If you want a summary of what libraries an executable uses, try + +objdump -p a.exe | grep 'DLL Name' + +Case is important in the grep command. + + +e.g.2 +------------------------- +/* Filename hello.cxx */ + +#include + +int main() +{ + std::cout <<"Hello World\n"; + + return 0; +} +------------------------- + +gcc hello.cxx + +Default compilation with gcc will probably no longer work complaining it can't +find 'cout' etc. + + +Hopefully g++ will though! + +g++ hello.cxx + +Although gcc and g++ end up calling the same common code, they often differ +by what default libraries they include, hence the failure for gcc and success +for g++. + + +Once again you can try adding the -v option or looking at the file with +objdump. + +Also try to look at the compile and link options provided by gcc and g++ +gcc --help +ld --help + + +Hopefully if all goes well, you should be set to try compilation for real. + + +2.2 Make errors + +There are various compiled forms of make.exe, some native Windows, others +emulating Un*x. + +Together with this, the build environment may not be set correctly. +For example the type of 'end of line' characters can cause problems. + +a) Basic advice: + + Check that the environment is set correctly. You may need to set MAKE_MODE to + unix for instance. + + Try and get a newer version of make ( make v3.79 at time of writing). + + Check for incorrect end of line characters. + + Check that your build environment is correctly mapping text files. + + [Cygwin has a text mode and binary mode for mount points. + Typically files should be mounted on a drive in text mode. + Type mount and see if your drive is mounted correctly.] + + Check your PATH is set to find the right version of executables particularly + in a mixed Cygwin/Mingw environment. + +b) Check the correct Makefile is in the top level directory + + +3. Compile/link options +----------------------- + +3.1 Getting rid of that peskey console window in the background! +3.2 Slimming down an executable + +By default the configuration leaves an executable suitable for debugging. That +means it is not stripped of debugging symbols, but also that it needs to put +those error messages somewhere. + +Take a look at the 'makeinclude.' file for your environment and there are +a few notes on how to avoid the console window and how to slim down the +executable. + + +3.3 OpenGL - How do I get it to work + +The configuration file makefiles/config. 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. + +#define HAVE_GL 1 + +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 +need to be added. + +http://www.carlthompson.net/fltk/ + +has a small zip file called MingwGL.zip which contains the necessary headers. + +Normally these are put in FLTK's Gl directory. + +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 may be found by searching 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. + +[ I have compiled/tested with OpenGL 1.1 and GLUT DLLs version 3.7 ] diff --git a/makefiles/Makefile.cygnus b/makefiles/Makefile.cygnus index bb4701444..dd89577bf 100644 --- a/makefiles/Makefile.cygnus +++ b/makefiles/Makefile.cygnus @@ -1,5 +1,5 @@ # -# "$Id: Makefile.cygnus,v 1.1.2.1 2000/04/25 22:16:05 mike Exp $" +# "$Id: Makefile.cygnus,v 1.1.2.2 2000/06/13 20:33:33 mike Exp $" # # Top-level makefile for the Fast Light Tool Kit (FLTK). # @@ -20,59 +20,77 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. # -# Please report all bugs and problems to "fltk-bugs@easysw.com". +# Please report all bugs and problems to "fltk-bugs@fltk.org". # -SHELL=cmd.exe +# By default use a Un*x-style shell +# +# uncomment next line to use NT command shell +# SHELL=cmd.exe +# +# or uncomment next line to explicitly use a unix-compatible shell +# SHELL=sh.exe +# +# If we are using a Un*x-based make, make sure the environmental var is set +# set MAKE_MODE=unix +# +# By default, a Un*x style make is assumed, so towards the bottom of this +# file filenames are copied with 'cp' and use forward slashes throughout +# in filepaths. +# +# Changing to a Windows-based command line would require 'cp' replaced with +# a local equivalent ('copy' is OK) and potentially for forward-slashes in +# filepaths to be replaced by back-slashes. + all: makeinclude config.h echo "=== making src ===" touch src/makedepend - cd src & $(MAKE) + cd src ; $(MAKE) echo "=== making fluid ===" touch fluid/makedepend - cd fluid & $(MAKE) + cd fluid ; $(MAKE) echo "=== making test ===" touch test/makedepend - cd test & $(MAKE) + cd test ; $(MAKE) install: echo "=== installing src ===" touch src/makedepend - cd src & $(MAKE) install + cd src ; $(MAKE) install echo "=== installing fluid ===" touch fluid/makedepend - cd fluid & $(MAKE) install + cd fluid ; $(MAKE) install depend: echo "=== making src dependencies ===" touch src/makedepend - cd src & $(MAKE) depend + cd src ; $(MAKE) depend echo "=== making fluid dependencies ===" touch fluid/makedepend - cd fluid & $(MAKE) depend + cd fluid ; $(MAKE) depend echo "=== making test dependencies ===" touch test/makedepend - cd test & $(MAKE) depend + cd test ; $(MAKE) depend clean: -@ rm -f core config.cache *.o *.bck echo "=== cleaning src ===" touch src/makedepend - cd src & $(MAKE) clean + cd src ; $(MAKE) clean echo "=== cleaning fluid ===" touch fluid/makedepend - cd fluid & $(MAKE) clean + cd fluid ; $(MAKE) clean echo "=== cleaning test ===" touch test/makedepend - cd test & $(MAKE) clean + cd test ; $(MAKE) clean -config.h: makefiles\config.cygnus - copy $< $@ +config.h: makefiles/config.cygnus + cp $< $@ -makeinclude: makefiles\makeinclude.cygnus - copy $< $@ +makeinclude: makefiles/makeinclude.cygnus + cp $< $@ # -# End of "$Id: Makefile.cygnus,v 1.1.2.1 2000/04/25 22:16:05 mike Exp $". +# End of "$Id: Makefile.cygnus,v 1.1.2.2 2000/06/13 20:33:33 mike Exp $". # diff --git a/makefiles/Makefile.mingw b/makefiles/Makefile.mingw new file mode 100644 index 000000000..21f5c0e85 --- /dev/null +++ b/makefiles/Makefile.mingw @@ -0,0 +1,96 @@ +# +# "$Id: Makefile.mingw,v 1.1.2.1 2000/06/13 20:33:34 mike Exp $" +# +# Top-level makefile for the Fast Light Tool Kit (FLTK). +# +# Copyright 1998-2000 by Bill Spitzak and others. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. +# +# Please report all bugs and problems to "fltk-bugs@fltk.org". +# + +# By default use a Un*x-style shell +# +# uncomment next line to use NT command shell +# SHELL=cmd.exe +# +# or uncomment next line to explicitly use a unix-compatible shell +# SHELL=sh.exe +# +# If we are using a Un*x-based make, make sure the environmental var is set +# set MAKE_MODE=unix +# +# By default, a Un*x style make is assumed, so towards the bottom of this +# file filenames are copied with 'cp' and use forward slashes throughout +# in filepaths. +# +# Changing to a Windows-based command line would require 'cp' replaced with +# a local equivalent ('copy' is OK) and potentially for forward-slashes in +# filepaths to be replaced by back-slashes. + + +all: makeinclude config.h + echo "=== making src ===" + touch src/makedepend + cd src ; $(MAKE) + echo "=== making fluid ===" + touch fluid/makedepend + cd fluid ; $(MAKE) + echo "=== making test ===" + touch test/makedepend + cd test ; $(MAKE) + +install: + echo "=== installing src ===" + touch src/makedepend + cd src ; $(MAKE) install + echo "=== installing fluid ===" + touch fluid/makedepend + cd fluid ; $(MAKE) install + +depend: + echo "=== making src dependencies ===" + touch src/makedepend + cd src ; $(MAKE) depend + echo "=== making fluid dependencies ===" + touch fluid/makedepend + cd fluid ; $(MAKE) depend + echo "=== making test dependencies ===" + touch test/makedepend + cd test ; $(MAKE) depend + +clean: + -@ rm -f core config.cache *.o *.bck + echo "=== cleaning src ===" + touch src/makedepend + cd src ; $(MAKE) clean + echo "=== cleaning fluid ===" + touch fluid/makedepend + cd fluid ; $(MAKE) clean + echo "=== cleaning test ===" + touch test/makedepend + cd test ; $(MAKE) clean + +config.h: makefiles/config.mingw + cp $< $@ + +makeinclude: makefiles/makeinclude.mingw + cp $< $@ + +# +# End of "$Id: Makefile.mingw,v 1.1.2.1 2000/06/13 20:33:34 mike Exp $". +# diff --git a/makefiles/Makefile.mingw32 b/makefiles/Makefile.mingw32 index 36c74d15d..1330a5085 100644 --- a/makefiles/Makefile.mingw32 +++ b/makefiles/Makefile.mingw32 @@ -1,5 +1,5 @@ # -# "$Id: Makefile.mingw32,v 1.1.2.1 2000/04/25 22:16:05 mike Exp $" +# "$Id: Makefile.mingw32,v 1.1.2.2 2000/06/13 20:33:34 mike Exp $" # # Top-level makefile for the Fast Light Tool Kit (FLTK). # @@ -20,7 +20,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. # -# Please report all bugs and problems to "fltk-bugs@easysw.com". +# Please report all bugs and problems to "fltk-bugs@fltk.org". # SHELL=cmd.exe @@ -74,5 +74,5 @@ makeinclude: makefiles\makeinclude.mingw32 copy $< $@ # -# End of "$Id: Makefile.mingw32,v 1.1.2.1 2000/04/25 22:16:05 mike Exp $". +# End of "$Id: Makefile.mingw32,v 1.1.2.2 2000/06/13 20:33:34 mike Exp $". # diff --git a/makefiles/Makefile.os2x b/makefiles/Makefile.os2x index 0b030748b..37b812460 100644 --- a/makefiles/Makefile.os2x +++ b/makefiles/Makefile.os2x @@ -1,5 +1,5 @@ # -# "$Id: Makefile.os2x,v 1.6.2.1 2000/04/25 22:16:05 mike Exp $" +# "$Id: Makefile.os2x,v 1.6.2.2 2000/06/13 20:33:34 mike Exp $" # # Top-level makefile for the Fast Light Tool Kit (FLTK). # @@ -20,7 +20,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. # -# Please report all bugs and problems to "fltk-bugs@easysw.com". +# Please report all bugs and problems to "fltk-bugs@fltk.org". # SHELL=cmd.exe @@ -74,5 +74,5 @@ makeinclude: makefiles\makeinclude.os2x copy $< $@ # -# End of "$Id: Makefile.os2x,v 1.6.2.1 2000/04/25 22:16:05 mike Exp $". +# End of "$Id: Makefile.os2x,v 1.6.2.2 2000/06/13 20:33:34 mike Exp $". # diff --git a/makefiles/config.cygnus b/makefiles/config.cygnus index 4fae0f7e3..0c24cb9fc 100644 --- a/makefiles/config.cygnus +++ b/makefiles/config.cygnus @@ -1,5 +1,5 @@ /* - * "$Id: config.cygnus,v 1.4.2.2 2000/04/25 22:16:05 mike Exp $" + * "$Id: config.cygnus,v 1.4.2.3 2000/06/13 20:33:35 mike Exp $" * * Configuration file for the Fast Light Tool Kit (FLTK). * @@ -20,7 +20,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. * - * Please report all bugs and problems to "FLTK-bugs@easysw.com". + * Please report all bugs and problems to "FLTK-bugs@fltk.org". */ /* @@ -44,9 +44,12 @@ * * Do you have OpenGL? Set this to 0 if you don't have or plan to use * OpenGL, and FLTK will be smaller. + * + * In order to set to 1 you will need to obtain the OpenGL header and + * library files. Consult the README.win32 file for further details. */ -#define HAVE_GL 1 +#define HAVE_GL 0 /* * USE_COLORMAP: @@ -123,15 +126,15 @@ #define HAVE_SYS_NDIR_H 0 #define HAVE_SYS_DIR_H 0 #define HAVE_NDIR_H 0 -#define HAVE_SCANDIR 0 +#define HAVE_SCANDIR 1 /* * possibly missing sprintf-style functions: */ -#define HAVE_VSNPRINTF 0 -#define HAVE_SNPRINTF 0 -#define HAVE_VSPRINTF 0 +#define HAVE_VSNPRINTF 1 +#define HAVE_SNPRINTF 1 +#define HAVE_VSPRINTF 1 /* * HAVE_SYS_SELECT_H: @@ -150,5 +153,5 @@ #define HAVE_POLL 0 /* - * End of "$Id: config.cygnus,v 1.4.2.2 2000/04/25 22:16:05 mike Exp $". + * End of "$Id: config.cygnus,v 1.4.2.3 2000/06/13 20:33:35 mike Exp $". */ diff --git a/makefiles/config.mingw b/makefiles/config.mingw new file mode 100644 index 000000000..b925c7c99 --- /dev/null +++ b/makefiles/config.mingw @@ -0,0 +1,157 @@ +/* + * "$Id: config.mingw,v 1.1.2.1 2000/06/13 20:33:35 mike Exp $" + * + * Configuration file for the Fast Light Tool Kit (FLTK). + * + * Copyright 1998-2000 by Bill Spitzak and others. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA. + * + * Please report all bugs and problems to "FLTK-bugs@fltk.org". + */ + +/* + * BORDER_WIDTH: + * + * Thickness of FL_UP_BOX and FL_DOWN_BOX. Current 1,2, and 3 are + * supported. + * + * 3 is the historic FLTK look. + * 2 is the default and looks like Microsoft Windows, KDE, and Qt. + * 1 is a plausible future evolution... + * + * Note that this may be simulated at runtime by redefining the boxtypes + * using Fl::set_boxtype(). + */ + +#define BORDER_WIDTH 2 + +/* + * HAVE_GL: + * + * Do you have OpenGL? Set this to 0 if you don't have or plan to use + * OpenGL, and FLTK will be smaller. + * + * In order to set to 1 you will need to obtain the OpenGL header and + * library files. Consult the README.win32 file for further details. + */ + +#define HAVE_GL 0 + +/* + * USE_COLORMAP: + * + * Setting this to zero will save a good deal of code (especially for + * fl_draw_image), but FLTK will only work on TrueColor visuals. + */ + +#define USE_COLORMAP 1 + +/* + * HAVE_XDBE: + * + * Do we have the X double-buffer extension? + */ + +#define HAVE_XDBE 0 + +/* + * USE_XDBE: + * + * Actually try to use the double-buffer extension? Set this to zero + * disable use of XDBE without breaking the list_visuals program. + */ + +#define USE_XDBE HAVE_XDBE + +/* + * HAVE_OVERLAY: + * + * Use the X overlay extension? FLTK will try to use an overlay + * visual for Fl_Overlay_Window, the Gl_Window overlay, and for the + * menus. Setting this to zero will remove a substantial amount of + * code from FLTK. Overlays have only been tested on SGI servers! + */ + +#define HAVE_OVERLAY 0 + +/* + * HAVE_GL_OVERLAY: + * + * It is possible your GL has an overlay even if X does not. If so, + * set this to 1. + */ + +#define HAVE_GL_OVERLAY HAVE_OVERLAY + +/* + * WORDS_BIGENDIAN: + * + * Byte order of your machine: 1 = big-endian, 0 = little-endian. + */ + +#define WORDS_BIGENDIAN 0 + +/* + * U16, U32, U64: + * + * Types used by fl_draw_image. One of U32 or U64 must be defined. + * U16 is optional but FLTK will work better with it! + */ + +#define U16 unsigned short +#define U32 unsigned +/* #undef U64 */ + +/* + * HAVE_DIRENT_H, HAVE_SYS_NDIR_H, HAVE_SYS_DIR_H, HAVE_NDIR_H, HAVE_SCANDIR: + * + * Where is (used only by fl_file_chooser and scandir). + */ + +#define HAVE_DIRENT_H 1 +#define HAVE_SYS_NDIR_H 0 +#define HAVE_SYS_DIR_H 0 +#define HAVE_NDIR_H 0 +#define HAVE_SCANDIR 0 + +/* + * possibly missing sprintf-style functions: + */ + +#define HAVE_VSNPRINTF 0 +#define HAVE_SNPRINTF 0 +#define HAVE_VSPRINTF 0 + +/* + * HAVE_SYS_SELECT_H: + * + * Whether or not select() call has its own header file. + */ + +#define HAVE_SYS_SELECT_H 0 + +/* + * HAVE_POLL: + * + * Use poll() if we don't have select(). + */ + +#define HAVE_POLL 0 + +/* + * End of "$Id: config.mingw,v 1.1.2.1 2000/06/13 20:33:35 mike Exp $". + */ diff --git a/makefiles/config.mingw32 b/makefiles/config.mingw32 index 98a923d54..d49dcf99c 100644 --- a/makefiles/config.mingw32 +++ b/makefiles/config.mingw32 @@ -1,5 +1,5 @@ /* - * "$Id: config.mingw32,v 1.4.2.2 2000/04/25 22:16:06 mike Exp $" + * "$Id: config.mingw32,v 1.4.2.3 2000/06/13 20:33:35 mike Exp $" * * Configuration file for the Fast Light Tool Kit (FLTK). * @@ -20,7 +20,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. * - * Please report all bugs and problems to "FLTK-bugs@easysw.com". + * Please report all bugs and problems to "FLTK-bugs@fltk.org". */ /* @@ -150,5 +150,5 @@ #define HAVE_POLL 0 /* - * End of "$Id: config.mingw32,v 1.4.2.2 2000/04/25 22:16:06 mike Exp $". + * End of "$Id: config.mingw32,v 1.4.2.3 2000/06/13 20:33:35 mike Exp $". */ diff --git a/makefiles/makeinclude.cygnus b/makefiles/makeinclude.cygnus index 669688059..1d6ce5a60 100644 --- a/makefiles/makeinclude.cygnus +++ b/makefiles/makeinclude.cygnus @@ -1,5 +1,5 @@ # -# "$Id: makeinclude.cygnus,v 1.9.2.4 2000/06/05 21:20:44 mike Exp $" +# "$Id: makeinclude.cygnus,v 1.9.2.5 2000/06/13 20:33:35 mike Exp $" # # Make include file for the Fast Light Tool Kit (FLTK). # @@ -20,9 +20,36 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. # -# Please report all bugs and problems to "fltk-bugs@easysw.com". +# Please report all bugs and problems to "fltk-bugs@fltk.org". # +# Notes: +# +# 1) Console windows appearing +# +# Consoles will not appear when run from a cygwin shell command line prompt +# but will cause an 'unnecessary' console to appear when run directly from +# windows (say explorer). It provides i/o for stdin/stdout for debugging +# +# To avoid this use an additional compile/link switch to move the program +# entry point to WinMain(). If not defined a link warning may appear +# but the program will run correctly from main() and not produce a console. +# Adding -mwindows to CFLAGS,CXXFLAGS,LDLIBS,GLDLIBS below +# will cause this revised behaviour +# +# 2) Stripping the executable to reduce size +# +# An external program may be run to strip out any debug symbols: +# strip filename.exe +# +# Alternatively add -s option to LDLIBS and GLDLIBS below to strip all +# symbols. (or -S for stripping of debug symbols only). See 'ld' man page +# for other useful link-time options. +# +# The default is to leave -mwindows and the stripping off, so as to facilitate +# debugging. For release it may be appropriate to add these additional switches + + prefix = /usr/local exec_prefix = ${prefix} bindir = ${exec_prefix}/bin @@ -35,8 +62,8 @@ CXX = g++ CC = gcc # flags for C++ compiler: -CFLAGS = -Wall -O2 -DWIN32 -mno-cygwin -CXXFLAGS = -Wall -O2 -DWIN32 -mno-cygwin +CFLAGS = -Wall -O2 -DWIN32 +CXXFLAGS = -Wall -O2 -DWIN32 # program to make the archive: LIBNAME = libfltk.a @@ -45,10 +72,9 @@ RANLIB = ranlib DSONAME = DSOCOMMAND = echo -# libraries to link with: -LDLIBS = -lgdi32 -luser32 -lmsvcrt -lwsock32 -lm -mno-cygwin -mwindows -GLDLIBS = -lgdi32 -luser32 -lglu32 -lopengl32 -lmsvcrt -lwsock32 -lm \ - -mno-cygwin -mwindows +# libraries to link with (in addition to default libs): +LDLIBS = -lm -lgdi32 -lwsock32 +GLDLIBS = -lglu32 -lopengl32 -lm -lgdi32 -lwsock32 # Be quiet when building... .SILENT: @@ -69,5 +95,5 @@ GLDLIBS = -lgdi32 -luser32 -lglu32 -lopengl32 -lmsvcrt -lwsock32 -lm \ $(CXX) -I.. $(CXXFLAGS) $< -c # -# End of "$Id: makeinclude.cygnus,v 1.9.2.4 2000/06/05 21:20:44 mike Exp $". +# End of "$Id: makeinclude.cygnus,v 1.9.2.5 2000/06/13 20:33:35 mike Exp $". # diff --git a/makefiles/makeinclude.mingw b/makefiles/makeinclude.mingw new file mode 100644 index 000000000..640d5f237 --- /dev/null +++ b/makefiles/makeinclude.mingw @@ -0,0 +1,99 @@ +# +# "$Id: makeinclude.mingw,v 1.1.2.1 2000/06/13 20:33:35 mike Exp $" +# +# Make include file for the Fast Light Tool Kit (FLTK). +# +# Copyright 1998-2000 by Bill Spitzak and others. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. +# +# Please report all bugs and problems to "fltk-bugs@fltk.org". +# + +# Notes: +# +# 1) Console windows appearing +# +# Consoles will not appear when run from a command line prompt +# but will cause an 'unnecessary' console to appear when run directly from +# windows (say explorer). It provides i/o for stdin/stdout for debugging +# +# To avoid this use an additional compile/link switch to move the program +# entry point to WinMain(). If not defined a link warning may appear +# but the program will run correctly from main() and not produce a console. +# Adding -mwindows to CFLAGS,CXXFLAGS,LDLIBS,GLDLIBS below +# will cause this revised behaviour +# +# 2) Stripping the executable to reduce size +# +# An external program may be run to strip out any debug symbols: +# strip filename.exe +# +# Alternatively add -s option to LDLIBS and GLDLIBS below to strip all +# symbols. (or -S for stripping of debug symbols only). See 'ld' man page +# for other useful link-time options. +# +# The default is to leave -mwindows and the stripping off, so as to facilitate +# debugging. For release it may be appropriate to add these additional switches + + +prefix = /usr/local +exec_prefix = ${prefix} +bindir = ${exec_prefix}/bin +includedir = ${prefix}/include +libdir = ${exec_prefix}/lib +srcdir = . + +# compiler names: +CXX = g++ +CC = gcc + +# flags for C++ compiler: +CFLAGS = -Wall -O2 -DWIN32 +CXXFLAGS = -Wall -O2 -DWIN32 + +# program to make the archive: +LIBNAME = libfltk.a +LIBCOMMAND = ar -ruv +RANLIB = ranlib +DSONAME = +DSOCOMMAND = echo + +# libraries to link with (in addition to default libs): +LDLIBS = -lgdi32 -lwsock32 +GLDLIBS = -lglu32 -lopengl32 -lgdi32 -lwsock32 + +# Be quiet when building... +.SILENT: + +# Build commands and filename extensions... +.SUFFIXES: .c .cxx .h .fl .o + +.cxx: + echo Compiling and linking $@... + $(CXX) -I.. -L../lib $(CXXFLAGS) $< -lfltk $(LDLIBS) -o $@ + +.c.o: + echo Compiling $@... + $(CC) -I.. $(CXXFLAGS) $< -c + +.cxx.o: + echo Compiling $@... + $(CXX) -I.. $(CXXFLAGS) $< -c + +# +# End of "$Id: makeinclude.mingw,v 1.1.2.1 2000/06/13 20:33:35 mike Exp $". +# diff --git a/makefiles/makeinclude.mingw32 b/makefiles/makeinclude.mingw32 index 37b30d2c8..1bb629652 100644 --- a/makefiles/makeinclude.mingw32 +++ b/makefiles/makeinclude.mingw32 @@ -1,5 +1,5 @@ # -# "$Id: makeinclude.mingw32,v 1.9.2.4 2000/06/05 21:20:44 mike Exp $" +# "$Id: makeinclude.mingw32,v 1.9.2.5 2000/06/13 20:33:35 mike Exp $" # # Make include file for the Fast Light Tool Kit (FLTK). # @@ -20,7 +20,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. # -# Please report all bugs and problems to "fltk-bugs@easysw.com". +# Please report all bugs and problems to "fltk-bugs@fltk.org". # prefix = /usr/local @@ -68,5 +68,5 @@ GLDLIBS = -lgdi32 -luser32 -lglu32 -lopengl32 -lmsvcrt -lwsock32 -lm $(CXX) -I.. $(CXXFLAGS) $< -c # -# End of "$Id: makeinclude.mingw32,v 1.9.2.4 2000/06/05 21:20:44 mike Exp $". +# End of "$Id: makeinclude.mingw32,v 1.9.2.5 2000/06/13 20:33:35 mike Exp $". # diff --git a/test/cube.cxx b/test/cube.cxx index 04b0b2b9a..1ab25388b 100644 --- a/test/cube.cxx +++ b/test/cube.cxx @@ -1,5 +1,5 @@ // -// "$Id: cube.cxx,v 1.4.2.2 2000/06/05 21:21:17 mike Exp $" +// "$Id: cube.cxx,v 1.4.2.3 2000/06/13 20:33:36 mike Exp $" // // Another forms test program for the Fast Light Tool Kit (FLTK). // @@ -141,7 +141,7 @@ void makeform(const char *name) { form->end(); } -main(int argc, char **argv) { +int main(int argc, char **argv) { makeform(argv[0]); speed->bounds(4,0); speed->value(cube->speed = cube2->speed = 1.0); @@ -169,5 +169,5 @@ main(int argc, char **argv) { } // -// End of "$Id: cube.cxx,v 1.4.2.2 2000/06/05 21:21:17 mike Exp $". +// End of "$Id: cube.cxx,v 1.4.2.3 2000/06/13 20:33:36 mike Exp $". //