# HG changeset patch # User Michael Goffioul # Date 1372272993 14400 # Node ID 034f830a5823019288e93f7d64763ed6a68bf14c # Parent 4c72697bcbc48bf3573a3d0fd747098c5ef297eb [MSVC] enable FLTK compilation - disable RANLIB, it's meaningless when using MSVC diff -r 4c72697bcbc4 -r 034f830a5823 Makefile.in --- a/Makefile.in Tue Jun 25 21:20:43 2013 -0400 +++ b/Makefile.in Wed Jun 26 14:56:33 2013 -0400 @@ -156,7 +156,7 @@ MXE_TOOL_PREFIX := ifeq ($(MXE_SYSTEM),msvc) MXE_AR := ar - MXE_RANLIB := ranlib + MXE_RANLIB := true MXE_CC := clgcc MXE_CXX := clg++ MXE_F77 := clgfortran @@ -172,7 +172,7 @@ # different configuration tags. HOST_AND_BUILD_CONFIGURE_OPTIONS := \ CC='$(MXE_CC)' CXX='$(MXE_CXX)' F77='$(MXE_F77)' DLLTOOL='$(MXE_DLLTOOL)' CCAS='gcc' \ - CFLAGS='-O2' CXXFLAGS='-O2' ac_cv_f77_compiler_gnu=no + CFLAGS='-O2' CXXFLAGS='-O2' ac_cv_f77_compiler_gnu=no RANLIB='$(MXE_RANLIB)' else MXE_AR := ar MXE_RANLIB := ranlib diff -r 4c72697bcbc4 -r 034f830a5823 src/fltk.mk --- a/src/fltk.mk Tue Jun 25 21:20:43 2013 -0400 +++ b/src/fltk.mk Wed Jun 26 14:56:33 2013 -0400 @@ -37,6 +37,10 @@ ## LIBS='-lws2_32' # enable exceptions, because disabling them doesn't make any sense on PCs $(SED) -i 's,-fno-exceptions,,' '$(1)/makeinclude' - $(MAKE) -C '$(1)' -j '$(JOBS)' install DIRS=src LIBCOMMAND='$(MXE_AR) cr' + $(MAKE) -C '$(1)' -j '$(JOBS)' install \ + DIRS=src \ + LIBCOMMAND='$(MXE_AR) cr' \ + LIBRARY_PREFIX='$(LIBRARY_PREFIX)' \ + LIBRARY_SUFFIX='$(LIBRARY_SUFFIX)' $(LN_SF) '$(HOST_BINDIR)/fltk-config' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)fltk-config' endef diff -r 4c72697bcbc4 -r 034f830a5823 src/msvc-fltk-1.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/msvc-fltk-1.patch Wed Jun 26 14:56:33 2013 -0400 @@ -0,0 +1,276 @@ +diff -ur fltk-1.3.1-orig/FL/Fl_Device.H fltk-1.3.1/FL/Fl_Device.H +--- fltk-1.3.1-orig/FL/Fl_Device.H 2012-11-06 15:46:14 -0500 ++++ fltk-1.3.1/FL/Fl_Device.H 2013-06-26 14:44:44 -0400 +@@ -213,7 +213,7 @@ + friend void fl_draw_image(Fl_Draw_Image_Cb cb, void* data, int X,int Y,int W,int H, int D); + friend FL_EXPORT void fl_draw_image_mono(Fl_Draw_Image_Cb cb, void* data, int X,int Y,int W,int H, int D); + friend FL_EXPORT void gl_start(); +- friend void fl_copy_offscreen(int x, int y, int w, int h, Fl_Offscreen pixmap, int srcx, int srcy); ++ friend FL_EXPORT void fl_copy_offscreen(int x, int y, int w, int h, Fl_Offscreen pixmap, int srcx, int srcy); + matrix *fl_matrix; /**< Points to the current coordinate transformation matrix */ + + /** \brief The constructor. */ +diff -ur fltk-1.3.1-orig/configure.in fltk-1.3.1/configure.in +--- fltk-1.3.1-orig/configure.in 2013-06-26 14:44:49 -0400 ++++ fltk-1.3.1/configure.in 2013-06-26 14:46:28 -0400 +@@ -164,6 +164,31 @@ + fi + fi + ++case $uname in ++ MINGW*) ++ if test x$GCC != xyes; then ++ dnl Assume VC++ compiler ++ LINKFLTK="../lib/fltk.lib" ++ LINKFLTKFORMS= ++ LINKFLTKGL= ++ LINKFLTKIMG= ++ ++ LIBEXT=".lib" ++ LIBNAME="../lib/fltk.lib" ++ FLLIBNAME= ++ GLLIBNAME= ++ IMGLIBNAME= ++ CAIROLIBNAME= ++ ++ LIBBASENAME="fltk.lib" ++ FLLIBBASENAME= ++ GLLIBBASENAME= ++ IMGLIBBASENAME= ++ CAIROLIBBASENAME= ++ fi ++ ;; ++esac ++ + AC_SUBST(CAIRODIR) + AC_SUBST(CAIROFLAGS) + AC_SUBST(CAIROLIBS) +@@ -287,36 +312,47 @@ + ;; + CYGWIN* | MINGW*) + PICFLAG=0 +- if test x$enable_cygwin != xyes; then +- DSONAME="mgwfltknox-$FL_API_VERSION.dll" +- FLDSONAME="mgwfltknox_forms-$FL_API_VERSION.dll" +- GLDSONAME="mgwfltknox_gl-$FL_API_VERSION.dll" +- IMGDSONAME="mgwfltknox_images-$FL_API_VERSION.dll" +- CAIRODSONAME="mgwfltknox_cairo-$FL_API_VERSION.dll" ++ if test x$GCC = xyes; then ++ if test x$enable_cygwin != xyes; then ++ DSONAME="mgwfltknox-$FL_API_VERSION.dll" ++ FLDSONAME="mgwfltknox_forms-$FL_API_VERSION.dll" ++ GLDSONAME="mgwfltknox_gl-$FL_API_VERSION.dll" ++ IMGDSONAME="mgwfltknox_images-$FL_API_VERSION.dll" ++ CAIRODSONAME="mgwfltknox_cairo-$FL_API_VERSION.dll" ++ else ++ if test x$enable_x11 = xyes; then ++ DSONAME="cygfltk-$FL_API_VERSION.dll" ++ FLDSONAME="cygfltk_forms-$FL_API_VERSION.dll" ++ GLDSONAME="cygfltk_gl-$FL_API_VERSION.dll" ++ IMGDSONAME="cygfltk_images-$FL_API_VERSION.dll" ++ CAIRODSONAME="cygfltk_cairo-$FL_API_VERSION.dll" ++ else ++ DSONAME="cygfltknox-$FL_API_VERSION.dll" ++ FLDSONAME="cygfltknox_forms-$FL_API_VERSION.dll" ++ GLDSONAME="cygfltknox_gl-$FL_API_VERSION.dll" ++ IMGDSONAME="cygfltknox_images-$FL_API_VERSION.dll" ++ CAIRODSONAME="cygfltknox_cairo-$FL_API_VERSION.dll" ++ fi ++ fi ++ #----------------------------------------------------------- ++ # -Wl,--enable-runtime-pseudo-reloc: See str 1585 ++ # appears to be necessary for older binutils versions < 2.16 ++ #----------------------------------------------------------- ++ LDFLAGS="$LDFLAGS -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc" ++ 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 \$@" + else +- if test x$enable_x11 = xyes; then +- DSONAME="cygfltk-$FL_API_VERSION.dll" +- FLDSONAME="cygfltk_forms-$FL_API_VERSION.dll" +- GLDSONAME="cygfltk_gl-$FL_API_VERSION.dll" +- IMGDSONAME="cygfltk_images-$FL_API_VERSION.dll" +- CAIRODSONAME="cygfltk_cairo-$FL_API_VERSION.dll" +- else +- DSONAME="cygfltknox-$FL_API_VERSION.dll" +- FLDSONAME="cygfltknox_forms-$FL_API_VERSION.dll" +- GLDSONAME="cygfltknox_gl-$FL_API_VERSION.dll" +- IMGDSONAME="cygfltknox_images-$FL_API_VERSION.dll" +- CAIRODSONAME="cygfltknox_cairo-$FL_API_VERSION.dll" +- fi ++ dnl Assume VC++ compiler ++ DSONAME="\$(LIBRARY_PREFIX)fltk-$FL_API_VERSION\$(LIBRARY_SUFFIX).dll" ++ FLDSONAME= ++ GLDSONAME= ++ IMGDSONAME= ++ CAIRODSONAME= ++ ++ DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -shared -o \$@" + fi +- #----------------------------------------------------------- +- # -Wl,--enable-runtime-pseudo-reloc: See str 1585 +- # appears to be necessary for older binutils versions < 2.16 +- #----------------------------------------------------------- +- LDFLAGS="$LDFLAGS -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc" +- 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 \$@" + ;; + *) + AC_MSG_WARN(Shared libraries may not be supported. Trying -shared option with compiler.) +@@ -330,6 +366,15 @@ + esac + + LINKSHARED="-L../src $FLTKCAIROOPTION -lfltk_images$SHAREDSUFFIX -lfltk_forms$SHAREDSUFFIX -lfltk$SHAREDSUFFIX" ++ ++ case $uname in ++ MINGW*) ++ if test x$GCC != xyes; then ++ dnl Assume VC++ compiler ++ LINKSHARED="-L../src $FLTKCAIROOPTION -lfltk$SHAREDSUFFIX" ++ fi ++ ;; ++ esac + else + DSOCOMMAND="echo" + DSOLINK="" +@@ -705,7 +750,7 @@ + syspnglib_ok=no + syspnginc_ok=no + if test x$enable_localpng != xyes; then +- AC_CHECK_LIB(png, png_read_info, ++ AC_CHECK_LIB(png15, png_read_info, + [AC_CHECK_HEADER(png.h, + AC_DEFINE(HAVE_PNG_H) + syspnginc_ok=yes) +@@ -734,11 +779,11 @@ + else + PNGINC="" + PNG="" +- IMAGELIBS="-lpng $IMAGELIBS" +- STATICIMAGELIBS="-lpng $STATICIMAGELIBS" ++ IMAGELIBS="-lpng15 $IMAGELIBS" ++ STATICIMAGELIBS="-lpng15 $STATICIMAGELIBS" + AC_DEFINE(HAVE_LIBPNG) +- AC_CHECK_LIB(png,png_get_valid, AC_DEFINE(HAVE_PNG_GET_VALID)) +- AC_CHECK_LIB(png,png_set_tRNS_to_alpha, AC_DEFINE(HAVE_PNG_SET_TRNS_TO_ALPHA)) ++ AC_CHECK_LIB(png15,png_get_valid, AC_DEFINE(HAVE_PNG_GET_VALID)) ++ AC_CHECK_LIB(png15,png_set_tRNS_to_alpha, AC_DEFINE(HAVE_PNG_SET_TRNS_TO_ALPHA)) + fi + + AC_SUBST(JPEG) +@@ -824,11 +869,17 @@ + # checks don't work because the shell puts out \r\n instead of + # \n. Here we just force U32 to be defined to "unsigned"... + AC_DEFINE(U32,unsigned) +- CFLAGS="-mwindows -DWIN32 -DUSE_OPENGL32 $CFLAGS" +- CXXFLAGS="-mwindows -DWIN32 -DUSE_OPENGL32 $CXXFLAGS" +- LDFLAGS="-mwindows $LDFLAGS" +- DSOFLAGS="-mwindows $DSOFLAGS" +- LIBS="$LIBS -lole32 -luuid -lcomctl32" ++ if test x$GCC = xyes; then ++ CFLAGS="-mwindows -DWIN32 -DUSE_OPENGL32 $CFLAGS" ++ CXXFLAGS="-mwindows -DWIN32 -DUSE_OPENGL32 $CXXFLAGS" ++ LDFLAGS="-mwindows $LDFLAGS" ++ DSOFLAGS="-mwindows $DSOFLAGS" ++ LIBS="$LIBS -lole32 -luuid -lcomctl32" ++ else ++ CFLAGS="-DWIN32 -DUSE_OPENGL32 -DFL_DLL $CFLAGS \$(FLTKFLAGS)" ++ CXXFLAGS="-DWIN32 -DUSE_OPENGL32 -DFL_DLL $CXXFLAGS" ++ LIBS="$LIBS -lole32 -luuid -lcomctl32 -lcomdlg32 -lgdi32" ++ fi + if test "x$with_optim" = x; then + dnl Avoid -Os optimization on Cygwin/MinGW + with_optim="-O3" +@@ -837,10 +888,10 @@ + if test x$enable_gl != xno; then + AC_CHECK_HEADER(GL/gl.h, + AC_DEFINE(HAVE_GL) +- GLLIB="-lopengl32") ++ GLLIB="-lopengl32", [], [#include ]) + AC_CHECK_HEADER(GL/glu.h, + AC_DEFINE(HAVE_GL_GLU_H) +- GLLIB="-lglu32 $GLLIB") ++ GLLIB="-lglu32 $GLLIB", [], [#include ]) + else + LINKFLTKGL="" + GLLIBNAME="" +diff -ur fltk-1.3.1-orig/fluid/factory.cxx fltk-1.3.1/fluid/factory.cxx +--- fltk-1.3.1-orig/fluid/factory.cxx 2011-07-19 00:49:30 -0400 ++++ fltk-1.3.1/fluid/factory.cxx 2013-06-26 14:44:44 -0400 +@@ -37,7 +37,7 @@ + + extern Fl_Pixmap *pixmap[]; + +-#if !HAVE_STRCASECMP ++#if !HAVE_STRCASECMP && !defined(strcasecmp) + // + // 'strcasecmp()' - Do a case-insensitive compare... + // +diff -ur fltk-1.3.1-orig/src/Makefile fltk-1.3.1/src/Makefile +--- fltk-1.3.1-orig/src/Makefile 2012-11-06 16:13:54 -0500 ++++ fltk-1.3.1/src/Makefile 2013-06-26 14:44:44 -0400 +@@ -459,6 +459,13 @@ + -L. -lfltk -Wl,--exclude-libs -Wl,libfltk_png.a \ + $(IMAGELIBS) $(LDLIBS) + ++$(LIBNAME): ++ true ++ ++$(LIBRARY_PREFIX)fltk-1.3$(LIBRARY_SUFFIX).dll: $(OBJECTS) $(FLOBJECTS) $(GLOBJECTS) $(IMGOBJECTS) ++ echo $(DSOCOMMAND) ... ++ $(DSOCOMMAND) $^ -Wl,--out-implib=$(LIBNAME) $(IMAGELIBS) $(LDLIBS) $(GLDLIBS) ++ + clean: + -$(RM) *.o xutf8/*.o *.dll.a core.* *~ *.bak *.bck + -$(RM) $(DSONAME) $(FLDSONAME) $(GLDSONAME) $(IMGDSONAME) \ +@@ -554,15 +561,19 @@ + -$(INSTALL_DIR) $(DESTDIR)$(bindir) + $(RM) $(DESTDIR)$(libdir)/$(LIBBASENAME) + $(INSTALL_LIB) $(LIBNAME) $(DESTDIR)$(libdir) +- $(INSTALL_LIB) $(FLLIBNAME) $(DESTDIR)$(libdir) +- $(INSTALL_LIB) $(IMGLIBNAME) $(DESTDIR)$(libdir) + $(RANLIB) $(DESTDIR)$(libdir)/$(LIBBASENAME) +- $(RANLIB) $(DESTDIR)$(libdir)/$(FLLIBBASENAME) ++ if test x$(FLLIBNAME) != x; then \ ++ $(INSTALL_LIB) $(FLLIBNAME) $(DESTDIR)$(libdir); \ ++ $(RANLIB) $(DESTDIR)$(libdir)/$(FLLIBBASENAME); \ ++ fi ++ if test x$(IMGLIBNAME) != x; then \ ++ $(INSTALL_LIB) $(IMGLIBNAME) $(DESTDIR)$(libdir); \ ++ $(RANLIB) $(DESTDIR)$(libdir)/$(IMGLIBBASENAME); \ ++ fi + if test x$(GLLIBNAME) != x; then \ + $(INSTALL_LIB) $(GLLIBNAME) $(DESTDIR)$(libdir); \ + $(RANLIB) $(DESTDIR)$(libdir)/$(GLLIBBASENAME); \ + fi +- $(RANLIB) $(DESTDIR)$(libdir)/$(IMGLIBBASENAME) + if test x$(DSONAME) = xlibfltk.so.1.3; then\ + $(RM) $(DESTDIR)$(libdir)/libfltk.so*;\ + $(INSTALL_LIB) libfltk.so.1.3 $(DESTDIR)$(libdir); \ +@@ -687,6 +698,10 @@ + $(RM) $(DESTDIR)$(libdir)/libfltk_images.dll.a;\ + $(INSTALL_LIB) libfltk_images.dll.a $(DESTDIR)$(libdir); \ + fi ++ if test x$(DSONAME) = x$(LIBRARY_PREFIX)fltk-1.3$(LIBRARY_SUFFIX).dll; then\ ++ $(RM) $(DESTDIR)$(bindir)/$(DSONAME);\ ++ $(INSTALL_LIB) $(DSONAME) $(DESTDIR)$(bindir); \ ++ fi + + + uninstall: +diff -ur fltk-1.3.1-orig/test/Makefile fltk-1.3.1/test/Makefile +--- fltk-1.3.1-orig/test/Makefile 2011-07-19 00:49:30 -0400 ++++ fltk-1.3.1/test/Makefile 2013-06-26 14:44:44 -0400 +@@ -260,7 +260,7 @@ + # FLUID file rules + .fl.cxx .fl.h: ../fluid/fluid$(EXEEXT) + echo Generating $@ and header from $<... +- ../fluid/fluid$(EXEEXT) -c $< ++ PATH=../src:$$PATH ../fluid/fluid$(EXEEXT) -c $< + + # All demos depend on the FLTK library... + $(ALL): $(LIBNAME)