From: Dan A. <da...@gm...> - 2004-02-07 15:10:12
|
On Sat, Feb 07, 2004 at 01:52:59PM -0000, Thomas Fritzsche wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hi colinux-hackers, > > I build cygwin tools as described in cygwin-cross-build without problems. > I also compiled mxlm with this cygwin-tools, but now I have some problems > with building fltk. This is because fltk has a lot of depends on other > libs for example jpeglib or stdc++ and it looks like the system would like > to build a version for X11. > > I can disable a few libs in the configuration but I could still not build > fltk. > > What parameters do you use to cross build fltk? You need to use the mingw makefiles with a bit of modifications. Applying the patch below does the trick. diff -urN fltk-1.1.4/Makefile fltk-1.1.4-patched/Makefile --- fltk-1.1.4/Makefile 2003-06-15 08:39:12.000000000 +0300 +++ fltk-1.1.4-patched/Makefile 2001-01-22 17:13:39.000000000 +0200 @@ -1,9 +1,9 @@ # -# "$Id: Makefile,v 1.12.2.6.2.16 2003/06/15 05:39:12 easysw Exp $" +# "$Id: Makefile.mingw,v 1.1.2.2 2001/01/22 15:13:39 easysw Exp $" # # Top-level makefile for the Fast Light Tool Kit (FLTK). # -# Copyright 1998-2003 by Bill Spitzak and others. +# Copyright 1998-2001 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 @@ -23,79 +23,74 @@ # Please report all bugs and problems to "flt...@fl...". # -include makeinclude - -DIRS = src fluid test documentation - -all: makeinclude - for dir in $(DIRS); do\ - echo "=== making $$dir ===";\ - (cd $$dir; $(MAKE) $(MFLAGS)) || break;\ - done - -install: makeinclude - -mkdir -p $(bindir) - $(RM) $(bindir)/fltk-config - -cp fltk-config $(bindir) - -chmod 755 $(bindir)/fltk-config - for dir in FL $(DIRS); do\ - echo "=== installing $$dir ===";\ - (cd $$dir; $(MAKE) $(MFLAGS) install) || break;\ - done - -uninstall: makeinclude - $(RM) $(bindir)/fltk-config - for dir in FL $(DIRS); do\ - echo "=== uninstalling $$dir ===";\ - (cd $$dir; $(MAKE) $(MFLAGS) uninstall) || break;\ - done - -depend: makeinclude - for dir in $(DIRS); do\ - echo "=== making dependencies in $$dir ===";\ - (cd $$dir; $(MAKE) $(MFLAGS) depend) || break;\ - done +# 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) core *.o - for dir in $(DIRS); do\ - echo "=== cleaning $$dir ===";\ - (cd $$dir; $(MAKE) $(MFLAGS) clean) || break;\ - done - -distclean: clean - $(RM) config.* - $(RM) fltk-config fltk.list makeinclude - $(RM) FL/Makefile - $(RM) documentation/*.$(CAT1EXT) - $(RM) documentation/*.$(CAT3EXT) - $(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 - -configure: configure.in - autoconf - -portable-dist: - epm -v -s fltk.xpm fltk + -@ 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 -native-dist: - epm -v -f native fltk +config.h: makefiles/config.mingw + cp $< $@ +makeinclude: makefiles/makeinclude.mingw + cp $< $@ # -# End of "$Id: Makefile,v 1.12.2.6.2.16 2003/06/15 05:39:12 easysw Exp $". +# End of "$Id: Makefile.mingw,v 1.1.2.2 2001/01/22 15:13:39 easysw Exp $". # diff -urN fltk-1.1.4/config.h fltk-1.1.4-patched/config.h --- fltk-1.1.4/config.h 1970-01-01 02:00:00.000000000 +0200 +++ fltk-1.1.4-patched/config.h 2003-01-30 23:41:07.000000000 +0200 @@ -0,0 +1,219 @@ +/* + * "$Id: config.mingw,v 1.1.2.3.2.10 2003/01/30 21:41:07 easysw Exp $" + * + * Configuration file for the Fast Light Tool Kit (FLTK). + * + * Copyright 1998-2003 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 "FLT...@fl...". + */ + +/* + * Where to find files... + */ + +#define FLTK_DATADIR "C:/FLTK" +#define FLTK_DOCDIR "C:/FLTK/DOC" + +/* + * 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 1 + +/* + * HAVE_GL_GLU_H: + * + * Do you have the OpenGL Utility Library header file? + * (many broken Mesa RPMs do not...) + */ + +#define HAVE_GL_GLU_H 1 + +/* + * 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 + +/* + * USE_XFT + * + * Use the new Xft library to draw anti-aliased text. + */ + +#define USE_XFT 0 + +/* + * 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 +/* #undef HAVE_SYS_NDIR_H */ +/* #undef HAVE_SYS_DIR_H */ +/* #undef HAVE_NDIR_H */ +/* #undef HAVE_SCANDIR */ + +/* + * Possibly missing sprintf-style functions: + */ + +/* #undef HAVE_VSNPRINTF */ +/* #undef HAVE_SNPRINTF */ + +/* + * String functions... + */ + +/* #undef HAVE_STRINGS_H */ +#define HAVE_STRCASECMP 1 +/* #undef HAVE_STRLCAT */ +/* #undef HAVE_STRLCPY */ + +/* + * HAVE_SYS_SELECT_H: + * + * Whether or not select() call has its own header file. + */ + +/* #undef HAVE_SYS_SELECT_H */ + +/* + * USE_POLL: + * + * Use poll() if we don't have select(). + */ + +#define USE_POLL 0 + +/* + * Do we have various image libraries? + */ + +/* #undef HAVE_LIBPNG */ +/* #undef HAVE_LIBZ */ +/* #undef HAVE_LIBJPEG */ + +/* + * Which header file do we include for libpng? + */ + +/* #undef HAVE_PNG_H */ +/* #undef HAVE_LIBPNG_PNG_H */ + +/* + * Do we have the png_xyz() functions? + */ + +/* #undef HAVE_PNG_GET_VALID */ +/* #undef HAVE_PNG_SET_TRNS_TO_ALPHA */ + +/* + * Do we have POSIX threading? + */ + +/* #undef HAVE_PTHREAD */ +/* #undef HAVE_PTHREAD_H */ + + +/* + * End of "$Id: config.mingw,v 1.1.2.3.2.10 2003/01/30 21:41:07 easysw Exp $". + */ diff -urN fltk-1.1.4/makeinclude fltk-1.1.4-patched/makeinclude --- fltk-1.1.4/makeinclude 1970-01-01 02:00:00.000000000 +0200 +++ fltk-1.1.4-patched/makeinclude 2004-01-30 23:50:47.000000000 +0200 @@ -0,0 +1,126 @@ +# +# "$Id: makeinclude.mingw,v 1.1.2.3.2.11 2002/07/14 17:03:31 easysw Exp $" +# +# 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. +# +# 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 "flt...@fl...". +# + +# 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 +includedir = ${prefix}/include +libdir = ${exec_prefix}/lib +srcdir = . + +# programs we use... +CHMOD = : +CP = cp +HTMLDOC = htmldoc.exe +LN = : +MKDIR = mkdir +NROFF = nroff +RM = rm +RMDIR = rmdir +STRIP = : + +# compiler names: +CXX = i686-pc-cygwin-g++ +CC = i686-pc-cygwin-gcc +MAKEDEPEND = $(CXX) -M +POSTBUILD = : + +# flags for C++ compiler: +CFLAGS = -Wall -O2 -DWIN32 +CXXFLAGS = -Wall -O2 -DWIN32 + +# 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 = i686-pc-cygwin-ar -ruv +RANLIB = i686-pc-cygwin-ranlib +DSONAME = +FLDSONAME = +GLDSONAME = +IMGDSONAME = +DSOCOMMAND = echo + +# libraries to link with (in addition to default libs): +LDLIBS =-mwindows -lgdi32 -lcomctl32 -lwsock32 -luuid -lole32 +GLDLIBS =-mwindows -lglu32 -lopengl32 -lgdi32 -lcomctl32 -lwsock32 -luuid -lole32 +LINKFLTK =-L../lib -lfltk +LINKFLTKGL =-L../lib -lfltk_gl +LINKFLTKFORMS =-L../lib -lfltk_forms -lfltk +LINKFLTKIMG =-L../lib -lfltk_images -lfltk +IMAGELIBS = + +# Do we build the OpenGL demos? +GLDEMOS =gldemos + +# Do we build the threads demo? +THREADS =threads + +# Be quiet when building... +.SILENT: + +# Build commands and filename extensions... +.SUFFIXES: .c .cxx .h .fl .o + +.cxx: + echo Compiling and linking $@... + $(CXX) -I.. $(CXXFLAGS) $< $(LINKFLTK) $(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.3.2.11 2002/07/14 17:03:31 easysw Exp $". +# diff -urN fltk-1.1.4/src/Fl_win32.cxx fltk-1.1.4-patched/src/Fl_win32.cxx --- fltk-1.1.4/src/Fl_win32.cxx 2003-06-15 07:27:35.000000000 +0300 +++ fltk-1.1.4-patched/src/Fl_win32.cxx 2004-01-30 23:40:23.000000000 +0200 @@ -47,7 +47,6 @@ // The following include files require GCC 3.x or a non-GNU compiler... #if !defined(__GNUC__) || __GNUC__ >= 3 # include <ole2.h> -# include <ShellApi.h> #endif // !__GNUC__ || __GNUC__ >= 3 diff -urN fltk-1.1.4/src/filename_list.cxx fltk-1.1.4-patched/src/filename_list.cxx --- fltk-1.1.4/src/filename_list.cxx 2003-01-30 23:43:21.000000000 +0200 +++ fltk-1.1.4-patched/src/filename_list.cxx 2004-01-30 23:40:59.000000000 +0200 @@ -51,7 +51,7 @@ Fl_File_Sort_F *sort) { #if defined(__hpux) || defined(__CYGWIN__) // HP-UX, Cygwin define the comparison function like this: - return scandir(d, list, 0, (int(*)(const dirent **, const dirent **))sort); + return scandir(d, list, 0, (int(*)(dirent **, dirent **))sort); #elif defined(__osf__) // OSF, DU 4.0x return scandir(d, list, 0, (int(*)(dirent **, dirent **))sort); -- Dan Aloni da...@gm... |