summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2000-06-13 20:33:36 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2000-06-13 20:33:36 +0000
commit6051ce753a18bbb7338d010249087f351c1b7d03 (patch)
tree6cd64d9a5535045260d4a09dab39896ea3f97019
parent3fbd80d1667ed2970f13c2fbc13611144391a4b6 (diff)
Updates for Mingw and Cygnus builds.
Added README.win32 file for WIN32-specific issues. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@1209 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--README.win32425
-rw-r--r--makefiles/Makefile.cygnus56
-rw-r--r--makefiles/Makefile.mingw96
-rw-r--r--makefiles/Makefile.mingw326
-rw-r--r--makefiles/Makefile.os2x6
-rw-r--r--makefiles/config.cygnus19
-rw-r--r--makefiles/config.mingw157
-rw-r--r--makefiles/config.mingw326
-rw-r--r--makefiles/makeinclude.cygnus44
-rw-r--r--makefiles/makeinclude.mingw99
-rw-r--r--makefiles/makeinclude.mingw326
-rw-r--r--test/cube.cxx6
12 files changed, 875 insertions, 51 deletions
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 <stdio.h>
+
+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 <iostream>
+
+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.<env>' 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.<env> 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 <dirent.h> (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 $".
//