summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2007-05-18 19:04:14 +0000
committerMatthias Melcher <fltk@matthiasm.com>2007-05-18 19:04:14 +0000
commit9ca173a7020ca6a7daab001b71dfc6e84f149429 (patch)
tree4d49ad3a0e18aa87d542fb213ecd7db4df8d0de7
parenta5c7b92f37c87e489a48964c611a7de0cb94e7b5 (diff)
Updated Cygwin/Mingw makefiles and documentation (STR #1683)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5844 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--documentation/osissues.html6
-rw-r--r--makefiles/Makefile.mingw174
-rw-r--r--makefiles/config.mingw112
-rw-r--r--makefiles/makeinclude.mingw154
4 files changed, 274 insertions, 172 deletions
diff --git a/documentation/osissues.html b/documentation/osissues.html
index 79c385a86..b0512edcf 100644
--- a/documentation/osissues.html
+++ b/documentation/osissues.html
@@ -619,6 +619,12 @@ version of FLTK:
doesn't work, and the main window title bar turns gray
while menus are popped up.</LI>
+ <LI>Compilation with <TT>gcc 3.4.4</TT> and <TT>-Os</TT> exposes an
+ optimisation bug in gcc. The symptom is that when drawing
+ filled circles only the perimeter is drawn. This can for instance
+ be seen in the symbols demo. Other optimisation options such
+ as -O2 and -O3 seem to work OK. More details can be found
+ in STR#1656 </LI>
</UL>
<H2>The MacOS Interface</h2>
diff --git a/makefiles/Makefile.mingw b/makefiles/Makefile.mingw
index f1c043d4a..24b9a297b 100644
--- a/makefiles/Makefile.mingw
+++ b/makefiles/Makefile.mingw
@@ -3,7 +3,7 @@
#
# Top-level makefile for the Fast Light Tool Kit (FLTK).
#
-# Copyright 1998-2001 by Bill Spitzak and others.
+# Copyright 1998-2006 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
@@ -20,95 +20,99 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.
#
-# Please report all bugs and problems to "fltk-bugs@fltk.org".
+# Please report all bugs and problems on the following page:
#
-
-# 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.
+# http://www.fltk.org/str.php
#
-# 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 zlib ==="
- touch zlib/makedepend
- cd zlib ; $(MAKE)
- echo "=== making jpeg ==="
- touch jpeg/makedepend
- cd jpeg ; $(MAKE)
- echo "=== making png ==="
- touch png/makedepend
- cd png ; $(MAKE)
- 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 zlib ==="
- touch zlib/makedepend
- cd zlib ; $(MAKE) install
- echo "=== installing jpeg ==="
- touch jpeg/makedepend
- cd jpeg ; $(MAKE) install
- echo "=== installing png ==="
- touch png/makedepend
- cd png ; $(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
+
+include makeinclude
+
+DIRS = $(IMAGEDIRS) src fluid test documentation
+
+all: makeinclude
+ for dir in $(DIRS); do\
+ echo "=== making $$dir ===";\
+ (cd $$dir; $(MAKE) $(MFLAGS)) || exit 1;\
+ done
+
+install: makeinclude
+ -mkdir -p $(DESTDIR)$(bindir)
+ $(RM) $(DESTDIR)$(bindir)/fltk-config
+ $(INSTALL_SCRIPT) fltk-config $(DESTDIR)$(bindir)
+ for dir in FL $(DIRS); do\
+ echo "=== installing $$dir ===";\
+ (cd $$dir; $(MAKE) $(MFLAGS) install) || exit 1;\
+ done
+
+install-desktop: makeinclude
+ cd documentation; $(MAKE) $(MFLAGS) $(INSTALL_DESKTOP)
+ cd fluid; $(MAKE) $(MFLAGS) $(INSTALL_DESKTOP)
+ cd test; $(MAKE) $(MFLAGS) $(INSTALL_DESKTOP)
+
+uninstall: makeinclude
+ $(RM) $(DESTDIR)$(bindir)/fltk-config
+ for dir in FL $(DIRS); do\
+ echo "=== uninstalling $$dir ===";\
+ (cd $$dir; $(MAKE) $(MFLAGS) uninstall) || exit 1;\
+ done
+
+uninstall-desktop: makeinclude
+ cd documentation; $(MAKE) $(MFLAGS) $(UNINSTALL_DESKTOP)
+ cd fluid; $(MAKE) $(MFLAGS) $(UNINSTALL_DESKTOP)
+ cd test; $(MAKE) $(MFLAGS) $(UNINSTALL_DESKTOP)
+
+depend: makeinclude
+ for dir in $(DIRS); do\
+ echo "=== making dependencies in $$dir ===";\
+ (cd $$dir; $(MAKE) $(MFLAGS) depend) || exit 1;\
+ done
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 $< $@
+ -$(RM) core *.o
+ for dir in $(DIRS); do\
+ echo "=== cleaning $$dir ===";\
+ (cd $$dir; $(MAKE) $(MFLAGS) clean) || exit 1;\
+ done
+
+distclean: clean
+ $(RM) config.*
+ $(RM) fltk-config fltk.list makeinclude
+ $(RM) fltk.spec
+ $(RM) FL/Makefile
+ $(RM) documentation/*.$(CAT1EXT)
+ $(RM) documentation/*.$(CAT3EXT)
+ $(RM) documentation/*.$(CAT6EXT)
+ $(RM) documentation/fltk.pdf
+ $(RM) documentation/fltk.ps
+ $(RM) -r documentation/fltk.d
+ for file in test/*.fl; do\
+ $(RM) test/`basename $$file .fl`.cxx; \
+ $(RM) test/`basename $$file .fl`.h; \
+ done
+
+makeinclude: configure configh.in makeinclude.in
+ if test -f config.status; then \
+ ./config.status --recheck; \
+ ./config.status; \
+ else \
+ ./configure; \
+ fi
+ touch config.h
+ chmod +x fltk-config
+
+configure: configure.in
+ autoconf
+
+portable-dist:
+ epm -v -s fltk.xpm fltk
+
+native-dist:
+ epm -v -f native fltk
+
+etags:
+ etags FL/*.H FL/*.h src/*.cxx src/*.c src/*.h fluid/*.h fluid/*.cxx test/*.h test/*.cxx
#
# End of "$Id$".
#
+
diff --git a/makefiles/config.mingw b/makefiles/config.mingw
index f6b5b3d1e..46b1ab5b5 100644
--- a/makefiles/config.mingw
+++ b/makefiles/config.mingw
@@ -2,8 +2,9 @@
* "$Id$"
*
* Configuration file for the Fast Light Tool Kit (FLTK).
+ * @configure_input@
*
- * Copyright 1998-2003 by Bill Spitzak and others.
+ * Copyright 1998-2007 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
@@ -20,15 +21,19 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA.
*
- * Please report all bugs and problems to "FLTK-bugs@fltk.org".
+ * Please report all bugs and problems on the following page:
+ *
+ * http://www.fltk.org/str.php
*/
+/* config.h. Generated by configure. */
+
/*
* Where to find files...
*/
-#define FLTK_DATADIR "C:/FLTK"
-#define FLTK_DOCDIR "C:/FLTK/DOC"
+#define FLTK_DATADIR "/usr/local/share/fltk"
+#define FLTK_DOCDIR "/usr/local/share/doc/fltk"
/*
* BORDER_WIDTH:
@@ -51,9 +56,6 @@
*
* 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
@@ -68,6 +70,14 @@
#define HAVE_GL_GLU_H 1
/*
+ * HAVE_GLXGETPROCADDRESSARB:
+ *
+ * Do you have the OpenGL glXGetProcAddressARB() function?
+ */
+
+/* #undef HAVE_GLXGETPROCADDRESSARB */
+
+/*
* USE_COLORMAP:
*
* Setting this to zero will save a good deal of code (especially for
@@ -77,6 +87,14 @@
#define USE_COLORMAP 1
/*
+ * HAVE_XINERAMA
+ *
+ * Do we have the Xinerama library to support multi-head displays?
+ */
+
+#define HAVE_XINERAMA 0
+
+/*
* USE_XFT
*
* Use the new Xft library to draw anti-aliased text.
@@ -95,13 +113,26 @@
/*
* USE_XDBE:
*
- * Actually try to use the double-buffer extension? Set this to zero
- * disable use of XDBE without breaking the list_visuals program.
+ * Actually try to use the double-buffer extension?
*/
#define USE_XDBE HAVE_XDBE
/*
+ * USE_QUARTZ:
+ *
+ * Use Quartz instead of Quickdraw on Apple Mac OS X machines.
+ * FLTK was originally ported to Quickdraw which is no longer
+ * supported by Apple. If USE_QUARTZ is defined, FLTK will be
+ * compiled using Quartz instead. This flag has no meaning on
+ * other operating systems.
+ */
+
+#define USE_QUARTZ 0
+/* #undef __APPLE_QUARTZ__ */
+/* #undef __APPLE_QD__ */
+
+/*
* HAVE_OVERLAY:
*
* Use the X overlay extension? FLTK will try to use an overlay
@@ -156,14 +187,14 @@
* Possibly missing sprintf-style functions:
*/
-/* #undef HAVE_VSNPRINTF */
-/* #undef HAVE_SNPRINTF */
+#define HAVE_VSNPRINTF 1
+#define HAVE_SNPRINTF 1
/*
- * String functions...
+ * String functions and headers...
*/
-/* #undef HAVE_STRINGS_H */
+#define HAVE_STRINGS_H 1
#define HAVE_STRCASECMP 1
/* #undef HAVE_STRLCAT */
/* #undef HAVE_STRLCPY */
@@ -184,9 +215,17 @@
/* #undef HAVE_SYS_SELECT_H */
/*
+ * HAVE_SYS_STDTYPES_H:
+ *
+ * Whether or not we have the <sys/stdtypes.h> header file.
+ */
+
+/* #undef HAVE_SYS_STDTYPES_H */
+
+/*
* USE_POLL:
*
- * Use poll() if we don't have select().
+ * Use the poll() call provided on Linux and Irix instead of select()
*/
#define USE_POLL 0
@@ -195,15 +234,15 @@
* Do we have various image libraries?
*/
-/* #undef HAVE_LIBPNG */
-/* #undef HAVE_LIBZ */
-/* #undef HAVE_LIBJPEG */
+#define HAVE_LIBPNG 1
+#define HAVE_LIBZ 1
+#define HAVE_LIBJPEG 1
/*
* Which header file do we include for libpng?
*/
-/* #undef HAVE_PNG_H */
+#define HAVE_PNG_H 1
/* #undef HAVE_LIBPNG_PNG_H */
/*
@@ -220,7 +259,44 @@
/* #undef HAVE_PTHREAD */
/* #undef HAVE_PTHREAD_H */
+/*
+ * Do we have the ALSA library?
+ */
+
+/* #undef HAVE_ALSA_ASOUNDLIB_H */
+
+/*
+ * Do we have the long long type?
+ */
+
+#define HAVE_LONG_LONG 1
+
+#ifdef HAVE_LONG_LONG
+# define FLTK_LLFMT "%lld"
+# define FLTK_LLCAST (long long)
+#else
+# define FLTK_LLFMT "%ld"
+# define FLTK_LLCAST (long)
+#endif /* HAVE_LONG_LONG */
+
+/*
+ * Do we have the strtoll() function?
+ */
+
+#define HAVE_STRTOLL 1
+
+#ifndef HAVE_STRTOLL
+# define strtoll(nptr,endptr,base) strtol((nptr), (endptr), (base))
+#endif /* !HAVE_STRTOLL */
+
+/*
+ * Do we have the dlsym() function and header?
+ */
+
+/* #undef HAVE_DLFCN_H */
+/* #undef HAVE_DLSYM */
/*
* End of "$Id$".
*/
+
diff --git a/makefiles/makeinclude.mingw b/makefiles/makeinclude.mingw
index 7eac0435e..f3db7a969 100644
--- a/makefiles/makeinclude.mingw
+++ b/makefiles/makeinclude.mingw
@@ -2,9 +2,8 @@
# "$Id$"
#
# Make include file for the Fast Light Tool Kit (FLTK).
-# (this file for MingW using GCC 2.95.x)
#
-# Copyright 1998-2001 by Bill Spitzak and others.
+# Copyright 1998-2007 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
@@ -21,83 +20,70 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.
#
-# Please report all bugs and problems to "fltk-bugs@fltk.org".
+# Please report all bugs and problems on the following page:
#
-
-# 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 add "-mwindows" to LDLIBS and GLDLIBS below
+# http://www.fltk.org/str.php
#
-# 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
+datadir = ${prefix}/share
+datarootdir = @datarootdir@
+includedir = ${prefix}/include
+libdir = ${exec_prefix}/lib
+mandir = ${prefix}/man
+srcdir = .
+docdir = $(datadir)/doc/fltk
-prefix = /usr/local
-exec_prefix = ${prefix}
-bindir = ${exec_prefix}/bin
-includedir = ${prefix}/include
-libdir = ${exec_prefix}/lib
-srcdir = .
# programs we use...
-CHMOD = :
-CP = copy
-HTMLDOC = htmldoc.exe
-LN = :
-MKDIR = md
-NROFF = nroff
-RM = del
-RMDIR = rd
-STRIP = :
+HTMLDOC =
+INSTALL = /bin/install -c
+LN = ln -s
+NROFF =
+RM = rm -f
+RMDIR = rm -rf
+SHELL = /bin/sh
+STRIP = strip
# compiler names:
CXX = g++
CC = gcc
MAKEDEPEND = $(CXX) -M
-POSTBUILD = :
# flags for C++ compiler:
-CFLAGS = -Wall -O2 -DWIN32
-CXXFLAGS = -Wall -O2 -DWIN32
+ARCHFLAGS =
+OPTIM = -O3 -Wall -Wunused -Wno-format-y2k -fno-exceptions -fno-strict-aliasing
+CFLAGS = $(OPTIM) -mno-cygwin -mwindows -DWIN32 -mno-cygwin
+CXXFLAGS = $(OPTIM) -mno-cygwin -mwindows -DWIN32 -mno-cygwin
# program to make the archive:
LIBNAME = ../lib/libfltk.a
FLLIBNAME = ../lib/libfltk_forms.a
GLLIBNAME = ../lib/libfltk_gl.a
IMGLIBNAME = ../lib/libfltk_images.a
-LIBCOMMAND = ar -ruv
+LIBCOMMAND = /mingw/bin/ar cr
LIBEXT = .a
RANLIB = ranlib
-DSONAME =
-FLDSONAME =
-GLDSONAME =
-IMGDSONAME =
-DSOCOMMAND = echo
-
-# libraries to link with (in addition to default libs):
-LDLIBS =-mwindows -lole32 -luuid -lcomctl32 -lwsock32 -lsupc++
-GLDLIBS =-mwindows -lglu32 -lopengl32 -lole32 -luuid -lcomctl32 -lwsock32 -lsupc++
-LINKFLTK =-L../lib -lfltk
-LINKFLTKGL =-L../lib -lfltk_gl
-LINKFLTKFORMS =-L../lib -lfltk_forms -lfltk
-LINKFLTKIMG =-L../lib -lfltk_images -lfltk $(IMAGELIBS)
-LINKSHARED = -L../lib -lfltk_images -lfltk_forms -lfltk $(IMAGELIBS)
-IMAGELIBS =-lfltk_png -lfltk_z -lfltk_jpeg
+DSONAME = mgwfltknox-1.1.dll
+FLDSONAME = mgwfltknox_forms-1.1.dll
+GLDSONAME = mgwfltknox_gl-1.1.dll
+IMGDSONAME = mgwfltknox_images-1.1.dll
+DSOCOMMAND = $(CXX) $(DSOFLAGS) -shared -Wl,--whole-archive -Wl,--export-all-symbols -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-import -Wl,--enable-auto-image-base -o $@
+
+# libraries to link with:
+AUDIOLIBS = -lwinmm
+DSOFLAGS = -mwindows -mno-cygwin
+LDFLAGS = $(OPTIM) -mwindows -mno-cygwin -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc
+LDLIBS = -lole32 -luuid -lcomctl32 -lwsock32
+GLDLIBS = -lglu32 -lopengl32 -lole32 -luuid -lcomctl32 -lwsock32
+LINKFLTK = ../lib/libfltk.a
+LINKFLTKGL = ../lib/libfltk_gl.a
+LINKFLTKFORMS = ../lib/libfltk_forms.a ../lib/libfltk.a
+LINKFLTKIMG = ../lib/libfltk_images.a ../lib/libfltk.a $(IMAGELIBS)
+LINKSHARED = -L../src -lfltk_images -lfltk_forms -lfltk $(IMAGELIBS)
+IMAGELIBS = -L../lib -lfltk_png -lfltk_z -lfltk_jpeg
# image libraries to build...
IMAGEDIRS = jpeg zlib png
@@ -106,13 +92,13 @@ IMAGEDIRS = jpeg zlib png
EXEEXT = .exe
# Do we build the OpenGL demos?
-GLDEMOS =gldemos
+GLDEMOS = gldemos
# Do we build the threads demo?
-THREADS =threads
+THREADS = threads.exe
# Name of FLUID executable we install
-FLUID = fluid$(EXEEXT)
+FLUID = fluid-shared$(EXEEXT)
# Possible steps after linking...
POSTBUILD = :
@@ -120,25 +106,55 @@ POSTBUILD = :
# Man page extensions...
CAT1EXT = 1
CAT3EXT = 3
+CAT6EXT = 6
+
+#
+# Installation programs...
+#
+
+INSTALL_BIN = $(INSTALL) -m 755
+INSTALL_DATA = $(INSTALL) -m 644
+INSTALL_DIR = $(INSTALL) -d
+INSTALL_LIB = $(INSTALL) -m 755
+INSTALL_MAN = $(INSTALL) -m 644
+INSTALL_SCRIPT = $(INSTALL) -m 755
+
+# Additional GUI install/uninstall targets...
+INSTALL_DESKTOP =
+UNINSTALL_DESKTOP =
# Be quiet when building...
.SILENT:
# Build commands and filename extensions...
-.SUFFIXES: .c .cxx .h .fl .o
+.SUFFIXES: .0 .1 .3 .6 .c .cxx .h .fl .man .o .z $(EXEEXT)
-.cxx:
- echo Compiling and linking $@...
- $(CXX) -I.. -I../png -I../jpeg -I../zlib $(CXXFLAGS) $< $(LINKFLTK) $(LDLIBS) -o $@
+.o$(EXEEXT):
+ echo Linking $@...
+ $(CXX) $(ARCHFLAGS) $(LDFLAGS) $< $(LINKFLTK) $(LDLIBS) -o $@
+ $(POSTBUILD) $@ ../FL/mac.r
.c.o:
- echo Compiling $@...
- $(CC) -I.. -I../png -I../jpeg -I../zlib $(CXXFLAGS) $< -c
+ echo Compiling $<...
+ $(CC) -I.. $(ARCHFLAGS) -I../png -I../jpeg -I../zlib $(CFLAGS) -c $<
.cxx.o:
- echo Compiling $@...
- $(CXX) -I.. -I../png -I../jpeg -I../zlib $(CXXFLAGS) $< -c
+ echo Compiling $<...
+ $(CXX) -I.. $(ARCHFLAGS) -I../png -I../jpeg -I../zlib $(CXXFLAGS) -c $<
+
+.man.0 .man.1 .man.3 .man.6:
+ echo Formatting $<...
+ rm -f $@
+ $(NROFF) -man $< >$@
+
+.man.z:
+ echo Formatting $<...
+ rm -f $@ t.z
+ $(NROFF) -man $< >t
+ pack -f t
+ mv t.z $@
#
# End of "$Id$".
#
+