Fix DLL generation via MingW/Cygwin (STR #1546)

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5659 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Michael R Sweet 2007-02-02 20:23:31 +00:00
parent 3fb13c36d7
commit 502f83219d
3 changed files with 40 additions and 30 deletions

View File

@ -2,6 +2,7 @@ CHANGES IN FLTK 1.1.8
- Documentation fixes (STR #1454, STR #1455, STR #1456,
STR #1457, STR #1458, STR #1460, STR #1481, STR #1578)
- Fixed DLL generation via MingW/Cygwin (STR #1546)
- FLUID incorrectly opened the display when generating
source code for Fl_Help_View widgets (STR #1318)
- Fl_Double_Window did not always show the scheme

View File

@ -204,7 +204,7 @@ 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 -o \$@"
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -shared -Wl,--whole-archive -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base -o \$@"
;;
*)
AC_MSG_WARN(Shared libraries may not be supported. Trying -shared option with compiler.)
@ -578,6 +578,7 @@ case $uname in
CXXFLAGS="-mwindows -DWIN32 $CXXFLAGS"
LDFLAGS="-mwindows $LDFLAGS"
LIBS="$LIBS -lole32 -luuid -lcomctl32 -lwsock32"
DSOFLAGS="-mwindows"
OPTIM="$OPTIM"
if test x$enable_gl != xno; then

View File

@ -346,51 +346,59 @@ libfltk_images_s.a: $(IMGOBJECTS)
$(LIBCOMMAND) libfltk_images_s.a libfltk_images_s.o
$(CHMOD) +x libfltk_images_s.a
cygfltknox-1.1.dll:
echo $(DSOCOMMAND) ../lib/libfltk.a ...
$(DSOCOMMAND) ../lib/libfltk.a -Wl,--no-whole-archive \
#-----------------------------------------------------------------
# - the import libraries libfltk*.dll.a and the .dll files
# are created from the libfltk*.a files. They are built
# into the src dir.
# - The _images, _gl, _forms and dlls must be linked
# against the import libraries in the src dir.
#-----------------------------------------------------------------
cygfltknox-1.1.dll: $(LIBNAME)
echo $(DSOCOMMAND) $(LIBNAME) ...
$(DSOCOMMAND) $(LIBNAME) -Wl,--no-whole-archive \
-Wl,--out-implib=libfltk.dll.a $(LDLIBS)
cygfltknox_forms-1.1.dll:
echo $(DSOCOMMAND) ../lib/libfltk_forms.a ...
$(DSOCOMMAND) ../lib/libfltk_forms.a -Wl,--no-whole-archive \
cygfltknox_forms-1.1.dll: $(FLLIBNAME) cygfltknox-1.1.dll
echo $(DSOCOMMAND) $(FLLIBNAME) ...
$(DSOCOMMAND) $(FLLIBNAME) -Wl,--no-whole-archive \
-Wl,--out-implib=libfltk_forms.dll.a \
-L../lib -lfltk $(LDLIBS)
-L. -lfltk $(LDLIBS)
cygfltknox_gl-1.1.dll:
echo $(DSOCOMMAND) ../lib/libfltk_gl.a ...
$(DSOCOMMAND) ../lib/libfltk_gl.a -Wl,--no-whole-archive \
cygfltknox_gl-1.1.dll: $(GLLIBNAME) cygfltknox-1.1.dll
echo $(DSOCOMMAND) $(GLLIBNAME) ...
$(DSOCOMMAND) $(GLLIBNAME) -Wl,--no-whole-archive \
-Wl,--out-implib=libfltk_gl.dll.a \
-L../lib -lfltk $(GLDLIBS)
-L. -lfltk $(GLDLIBS)
cygfltknox_images-1.1.dll:
cygfltknox_images-1.1.dll: $(IMGLIBNAME) cygfltknox-1.1.dll
echo $(DSOCOMMAND) ../lib/libfltk_images ...
$(DSOCOMMAND) ../lib/libfltk_images.a -Wl,--no-whole-archive \
$(DSOCOMMAND) $(IMGLIBNAME) -Wl,--no-whole-archive \
-Wl,--out-implib=libfltk_images.dll.a \
-L../lib -lfltk -ljpeg -lpng -lz $(LDLIBS)
-L. -lfltk -ljpeg -lpng -lz $(LDLIBS)
mgwfltknox-1.1.dll:
echo $(DSOCOMMAND) ../lib/libfltk.a ...
$(DSOCOMMAND) ../lib/libfltk.a -Wl,--no-whole-archive \
mgwfltknox-1.1.dll: $(LIBNAME)
echo $(DSOCOMMAND) $(LIBNAME) ...
$(DSOCOMMAND) $(LIBNAME) -Wl,--no-whole-archive \
-Wl,--out-implib=libfltk.dll.a $(LDLIBS)
mgwfltknox_forms-1.1.dll:
echo $(DSOCOMMAND) ../lib/libfltk_forms.a ...
$(DSOCOMMAND) ../lib/libfltk_forms.a -Wl,--no-whole-archive \
mgwfltknox_forms-1.1.dll: $(FLLIBNAME) mgwfltknox-1.1.dll
echo $(DSOCOMMAND) $(FLLIBNAME) ...
$(DSOCOMMAND) $(FLLIBNAME) -Wl,--no-whole-archive \
-Wl,--out-implib=libfltk_forms.dll.a \
-L../lib -lfltk $(LDLIBS)
-L. -lfltk $(LDLIBS)
mgwfltknox_gl-1.1.dll:
echo $(DSOCOMMAND) ../lib/libfltk_gl.a ...
$(DSOCOMMAND) ../lib/libfltk_gl.a -Wl,--no-whole-archive \
mgwfltknox_gl-1.1.dll: $(GLLIBNAME) mgwfltknox-1.1.dll
echo $(DSOCOMMAND) $(GLLIBNAME) ...
$(DSOCOMMAND) $(GLLIBNAME) -Wl,--no-whole-archive \
-Wl,--out-implib=libfltk_gl.dll.a \
-L../lib -lfltk $(GLDLIBS)
-L. -lfltk $(GLDLIBS)
mgwfltknox_images-1.1.dll:
echo $(DSOCOMMAND) ../lib/libfltk_images ...
$(DSOCOMMAND) ../lib/libfltk_images.a -Wl,--no-whole-archive \
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../lib -lfltk -ljpeg -lpng -lz $(LDLIBS)
-L. -lfltk -ljpeg -lpng -lz $(LDLIBS)
clean:
-$(RM) *.o core.* *~ *.bck *.bck