From 057e542c395a8cc5391ee57a215c2c644a2fbd0b Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Thu, 8 Feb 2007 21:22:32 +0000 Subject: More Cygwin DLL fixes (STR #1585) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5682 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- configure.in | 12 ++++++++++-- src/Makefile | 14 ++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/configure.in b/configure.in index de77c1fd7..56e89d9df 100644 --- a/configure.in +++ b/configure.in @@ -80,6 +80,7 @@ case $uname in CPPFLAGS="$CPPFLAGS -mno-cygwin" CXXFLAGS="$CXXFLAGS -mno-cygwin" LDFLAGS="$LDFLAGS -mno-cygwin" + DSOFLAGS="$DSOFLAGS -mno-cygwin" fi ;; esac @@ -204,7 +205,14 @@ if test x$enable_shared = xyes; then GLDSONAME="cygfltknox_gl-$FL_API_VERSION.dll" IMGDSONAME="cygfltknox_images-$FL_API_VERSION.dll" fi - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -shared -Wl,--whole-archive -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base -o \$@" + #----------------------------------------------------------- + # -Wl,--enable-runtime-pseudo-reloc: See str 1585 + # appears to be necessary for older binutils versions < 2.16 + #----------------------------------------------------------- + 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.) @@ -599,8 +607,8 @@ case $uname in CFLAGS="-mwindows -DWIN32 $CFLAGS" CXXFLAGS="-mwindows -DWIN32 $CXXFLAGS" LDFLAGS="-mwindows $LDFLAGS" + DSOFLAGS="-mwindows $DSOFLAGS" LIBS="$LIBS -lole32 -luuid -lcomctl32 -lwsock32" - DSOFLAGS="-mwindows" OPTIM="$OPTIM" if test x$enable_gl != xno; then diff --git a/src/Makefile b/src/Makefile index a828e5d3a..f5d8a7477 100644 --- a/src/Makefile +++ b/src/Makefile @@ -372,10 +372,11 @@ cygfltknox_gl-1.1.dll: $(GLLIBNAME) cygfltknox-1.1.dll -L. -lfltk $(GLDLIBS) cygfltknox_images-1.1.dll: $(IMGLIBNAME) cygfltknox-1.1.dll - echo $(DSOCOMMAND) ../lib/libfltk_images ... + echo $(DSOCOMMAND) $(IMGLIBNAME) ... $(DSOCOMMAND) $(IMGLIBNAME) -Wl,--no-whole-archive \ -Wl,--out-implib=libfltk_images.dll.a \ - -L. -lfltk -ljpeg -lpng -lz $(LDLIBS) + -L. -lfltk -Wl,--exclude-libs -Wl,libfltk_png.a \ + $(IMAGELIBS) $(LDLIBS) mgwfltknox-1.1.dll: $(LIBNAME) echo $(DSOCOMMAND) $(LIBNAME) ... @@ -394,14 +395,19 @@ mgwfltknox_gl-1.1.dll: $(GLLIBNAME) mgwfltknox-1.1.dll -Wl,--out-implib=libfltk_gl.dll.a \ -L. -lfltk $(GLDLIBS) +#----------------------------------------------------- +# See STR #1585 for --exclude-libs +#----------------------------------------------------- + mgwfltknox_images-1.1.dll: $(IMGLIBNAME) mgwfltknox-1.1.dll echo $(DSOCOMMAND) $(IMGLIBNAME) ... $(DSOCOMMAND) $(IMGLIBNAME) -Wl,--no-whole-archive \ -Wl,--out-implib=libfltk_images.dll.a \ - -L. -lfltk -ljpeg -lpng -lz $(LDLIBS) + -L. -lfltk -Wl,--exclude-libs -Wl,libfltk_png.a \ + $(IMAGELIBS) $(LDLIBS) clean: - -$(RM) *.o core.* *~ *.bck *.bck + -$(RM) *.o *.dll.a core.* *~ *.bck *.bck -$(RM) $(DSONAME) $(FLDSONAME) $(GLDSONAME) $(IMGDSONAME) \ ../lib/$(LIBNAME) ../lib/$(FLLIBNAME) ../lib/$(GLLIBNAME) \ ../lib/$(IMGLIBNAME) \ -- cgit v1.2.3