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
This commit is contained in:
Matthias Melcher 2007-05-18 19:04:14 +00:00
parent a5c7b92f37
commit 9ca173a702
4 changed files with 268 additions and 166 deletions

View File

@ -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>

View File

@ -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:
#
# http://www.fltk.org/str.php
#
# 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.
include makeinclude
DIRS = $(IMAGEDIRS) src fluid test documentation
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)
all: makeinclude
for dir in $(DIRS); do\
echo "=== making $$dir ===";\
(cd $$dir; $(MAKE) $(MFLAGS)) || exit 1;\
done
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
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
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
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
-$(RM) core *.o
for dir in $(DIRS); do\
echo "=== cleaning $$dir ===";\
(cd $$dir; $(MAKE) $(MFLAGS) clean) || exit 1;\
done
config.h: makefiles/config.mingw
cp $< $@
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: makefiles/makeinclude.mingw
cp $< $@
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$".
#

View File

@ -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
@ -67,6 +69,14 @@
#define HAVE_GL_GLU_H 1
/*
* HAVE_GLXGETPROCADDRESSARB:
*
* Do you have the OpenGL glXGetProcAddressARB() function?
*/
/* #undef HAVE_GLXGETPROCADDRESSARB */
/*
* USE_COLORMAP:
*
@ -76,6 +86,14 @@
#define USE_COLORMAP 1
/*
* HAVE_XINERAMA
*
* Do we have the Xinerama library to support multi-head displays?
*/
#define HAVE_XINERAMA 0
/*
* USE_XFT
*
@ -95,12 +113,25 @@
/*
* 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:
*
@ -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 */
@ -183,10 +214,18 @@
/* #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$".
*/

View File

@ -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:
#
# http://www.fltk.org/str.php
#
# 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
#
# 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
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 (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
# 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$".
#