diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2007-05-18 19:04:14 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2007-05-18 19:04:14 +0000 |
| commit | 9ca173a7020ca6a7daab001b71dfc6e84f149429 (patch) | |
| tree | 4d49ad3a0e18aa87d542fb213ecd7db4df8d0de7 | |
| parent | a5c7b92f37c87e489a48964c611a7de0cb94e7b5 (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.html | 6 | ||||
| -rw-r--r-- | makefiles/Makefile.mingw | 174 | ||||
| -rw-r--r-- | makefiles/config.mingw | 112 | ||||
| -rw-r--r-- | makefiles/makeinclude.mingw | 154 |
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$". # + |
