diff -Naurp gdk-pixbuf-0.21.0/configure gdk-pixbuf-0.21.0-cygwin/configure
--- gdk-pixbuf-0.21.0/configure 2002-10-17 17:19:54.000000000 +0100
+++ gdk-pixbuf-0.21.0-cygwin/configure 2002-11-20 14:54:46.000000000 +0000
@@ -4112,7 +4112,8 @@ EOF
else $CC -o impgen impgen.c ; fi)~
$output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
- old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
+# old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
+old_archive_from_expsyms_cmds=
# cygwin and mingw dlls have different entry points and sets of symbols
# to exclude.
@@ -6059,7 +6060,8 @@ old_postuninstall_cmds=$lt_old_postunins
old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+#old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+old_archive_from_expsyms_cmds=
# Commands used to build and install a shared archive.
archive_cmds=$lt_archive_cmds
diff -Naurp gdk-pixbuf-0.21.0/gdk-pixbuf/Makefile.in gdk-pixbuf-0.21.0-cygwin/gdk-pixbuf/Makefile.in
--- gdk-pixbuf-0.21.0/gdk-pixbuf/Makefile.in 2002-10-17 17:20:28.000000000 +0100
+++ gdk-pixbuf-0.21.0-cygwin/gdk-pixbuf/Makefile.in 2002-11-20 14:54:07.000000000 +0000
@@ -425,7 +425,7 @@ testpixbuf_scale_SOURCES = testpixbuf-sc
testpixbuf_scale_OBJECTS = testpixbuf-scale.$(OBJEXT)
testpixbuf_scale_DEPENDENCIES = libgdk_pixbuf.la
testpixbuf_scale_LDFLAGS =
-CFLAGS = @CFLAGS@
+CFLAGS = @CFLAGS@ $(DLL_CFLAGS)
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
@@ -471,6 +471,9 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIE
if test -f $$p; then \
echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
+ dll=$$(echo $$p | sed 's,^lib\(.*\).la$$,cyg\1.dll,'); \
+ echo "install -D --mode=755 .libs/$$dll $(DESTDIR)$(bindir)/$$dll"; \
+ install -D --mode=755 .libs/$$dll $(DESTDIR)$(bindir)/$$dll; \
else :; fi; \
done
@@ -478,6 +481,8 @@ uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
list='$(lib_LTLIBRARIES)'; for p in $$list; do \
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
+ dll=$$(echo $$p | sed 's,^lib\(.*\).la$$,cyg\1.dll,'); \
+ rm -f $(DESTDIR)$(bindir)/$$dll; \
done
mostlyclean-libexecLTLIBRARIES:
@@ -496,6 +501,9 @@ install-libexecLTLIBRARIES: $(libexec_LT
if test -f $$p; then \
echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libexecdir)/$$p"; \
$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libexecdir)/$$p; \
+ dll=$$(echo $$p | sed 's,^lib\(.*\).la$$,cyg\1.dll,'); \
+ echo "install -D --mode=755 .libs/$$dll $(DESTDIR)$(libexecdir)/$$dll"; \
+ install -D --mode=755 .libs/$$dll $(DESTDIR)$(libexecdir)/$$dll; \
else :; fi; \
done
@@ -503,6 +511,8 @@ uninstall-libexecLTLIBRARIES:
@$(NORMAL_UNINSTALL)
list='$(libexec_LTLIBRARIES)'; for p in $$list; do \
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libexecdir)/$$p; \
+ dll=$$(echo $$p | sed 's,^lib\(.*\).la$$,cyg\1.dll,'); \
+ rm -f $(DESTDIR)$(libexecdir)/$$dll; \
done
.c.o:
@@ -551,42 +561,55 @@ maintainer-clean-libtool:
libgdk_pixbuf.la: $(libgdk_pixbuf_la_OBJECTS) $(libgdk_pixbuf_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libgdk_pixbuf_la_LDFLAGS) $(libgdk_pixbuf_la_OBJECTS) $(libgdk_pixbuf_la_LIBADD) $(LIBS)
+ cd .libs && PREFIX=$(prefix) sh ../../mkdll.sh $@ $$(gnome-config --libs gtk)
libgdk_pixbuf_xlib.la: $(libgdk_pixbuf_xlib_la_OBJECTS) $(libgdk_pixbuf_xlib_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libgdk_pixbuf_xlib_la_LDFLAGS) $(libgdk_pixbuf_xlib_la_OBJECTS) $(libgdk_pixbuf_xlib_la_LIBADD) $(LIBS)
+ cd .libs && PREFIX=$(prefix) sh ../../mkdll.sh $@ $$(gnome-config --libs gtk) ./libgdk_pixbuf.dll.a
libgnomecanvaspixbuf.la: $(libgnomecanvaspixbuf_la_OBJECTS) $(libgnomecanvaspixbuf_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libgnomecanvaspixbuf_la_LDFLAGS) $(libgnomecanvaspixbuf_la_OBJECTS) $(libgnomecanvaspixbuf_la_LIBADD) $(LIBS)
+ cd .libs && PREFIX=$(prefix) sh ../../mkdll.sh $@ $$(gnome-config --libs gnomeui) ./libgdk_pixbuf.dll.a
libpixbufloader-png.la: $(libpixbufloader_png_la_OBJECTS) $(libpixbufloader_png_la_DEPENDENCIES)
$(LINK) -rpath $(libexecdir) $(libpixbufloader_png_la_LDFLAGS) $(libpixbufloader_png_la_OBJECTS) $(libpixbufloader_png_la_LIBADD) $(LIBS)
+ cd .libs && PREFIX=$(prefix) sh ../../mkdll.sh $@ $$(gnome-config --libs gtk) ./libgdk_pixbuf.dll.a -lpng
libpixbufloader-jpeg.la: $(libpixbufloader_jpeg_la_OBJECTS) $(libpixbufloader_jpeg_la_DEPENDENCIES)
$(LINK) -rpath $(libexecdir) $(libpixbufloader_jpeg_la_LDFLAGS) $(libpixbufloader_jpeg_la_OBJECTS) $(libpixbufloader_jpeg_la_LIBADD) $(LIBS)
+ cd .libs && PREFIX=$(prefix) sh ../../mkdll.sh $@ $$(gnome-config --libs gtk) ./libgdk_pixbuf.dll.a -ljpeg
libpixbufloader-gif.la: $(libpixbufloader_gif_la_OBJECTS) $(libpixbufloader_gif_la_DEPENDENCIES)
$(LINK) -rpath $(libexecdir) $(libpixbufloader_gif_la_LDFLAGS) $(libpixbufloader_gif_la_OBJECTS) $(libpixbufloader_gif_la_LIBADD) $(LIBS)
+ cd .libs && PREFIX=$(prefix) sh ../../mkdll.sh $@ $$(gnome-config --libs gtk) ./libgdk_pixbuf.dll.a
libpixbufloader-ico.la: $(libpixbufloader_ico_la_OBJECTS) $(libpixbufloader_ico_la_DEPENDENCIES)
$(LINK) -rpath $(libexecdir) $(libpixbufloader_ico_la_LDFLAGS) $(libpixbufloader_ico_la_OBJECTS) $(libpixbufloader_ico_la_LIBADD) $(LIBS)
+ cd .libs && PREFIX=$(prefix) sh ../../mkdll.sh $@ $$(gnome-config --libs gtk) ./libgdk_pixbuf.dll.a
libpixbufloader-ras.la: $(libpixbufloader_ras_la_OBJECTS) $(libpixbufloader_ras_la_DEPENDENCIES)
$(LINK) -rpath $(libexecdir) $(libpixbufloader_ras_la_LDFLAGS) $(libpixbufloader_ras_la_OBJECTS) $(libpixbufloader_ras_la_LIBADD) $(LIBS)
+ cd .libs && PREFIX=$(prefix) sh ../../mkdll.sh $@ $$(gnome-config --libs gtk) ./libgdk_pixbuf.dll.a
libpixbufloader-xpm.la: $(libpixbufloader_xpm_la_OBJECTS) $(libpixbufloader_xpm_la_DEPENDENCIES)
$(LINK) -rpath $(libexecdir) $(libpixbufloader_xpm_la_LDFLAGS) $(libpixbufloader_xpm_la_OBJECTS) $(libpixbufloader_xpm_la_LIBADD) $(LIBS)
+ cd .libs && PREFIX=$(prefix) sh ../../mkdll.sh $@ $$(gnome-config --libs gtk) ./libgdk_pixbuf.dll.a
libpixbufloader-tiff.la: $(libpixbufloader_tiff_la_OBJECTS) $(libpixbufloader_tiff_la_DEPENDENCIES)
$(LINK) -rpath $(libexecdir) $(libpixbufloader_tiff_la_LDFLAGS) $(libpixbufloader_tiff_la_OBJECTS) $(libpixbufloader_tiff_la_LIBADD) $(LIBS)
+ cd .libs && PREFIX=$(prefix) sh ../../mkdll.sh $@ $$(gnome-config --libs gtk) ./libgdk_pixbuf.dll.a -ltiff
libpixbufloader-pnm.la: $(libpixbufloader_pnm_la_OBJECTS) $(libpixbufloader_pnm_la_DEPENDENCIES)
$(LINK) -rpath $(libexecdir) $(libpixbufloader_pnm_la_LDFLAGS) $(libpixbufloader_pnm_la_OBJECTS) $(libpixbufloader_pnm_la_LIBADD) $(LIBS)
+ cd .libs && PREFIX=$(prefix) sh ../../mkdll.sh $@ $$(gnome-config --libs gtk) ./libgdk_pixbuf.dll.a
libpixbufloader-bmp.la: $(libpixbufloader_bmp_la_OBJECTS) $(libpixbufloader_bmp_la_DEPENDENCIES)
$(LINK) -rpath $(libexecdir) $(libpixbufloader_bmp_la_LDFLAGS) $(libpixbufloader_bmp_la_OBJECTS) $(libpixbufloader_bmp_la_LIBADD) $(LIBS)
+ cd .libs && PREFIX=$(prefix) sh ../../mkdll.sh $@ $$(gnome-config --libs gtk) ./libgdk_pixbuf.dll.a
libpixbufloader-xbm.la: $(libpixbufloader_xbm_la_OBJECTS) $(libpixbufloader_xbm_la_DEPENDENCIES)
$(LINK) -rpath $(libexecdir) $(libpixbufloader_xbm_la_LDFLAGS) $(libpixbufloader_xbm_la_OBJECTS) $(libpixbufloader_xbm_la_LIBADD) $(LIBS)
+ cd .libs && PREFIX=$(prefix) sh ../../mkdll.sh $@ $$(gnome-config --libs gtk) ./libgdk_pixbuf.dll.a
mostlyclean-noinstPROGRAMS:
diff -Naurp gdk-pixbuf-0.21.0/gdk-pixbuf/gdk-pixbuf-io.c gdk-pixbuf-0.21.0-cygwin/gdk-pixbuf/gdk-pixbuf-io.c
--- gdk-pixbuf-0.21.0/gdk-pixbuf/gdk-pixbuf-io.c 2002-09-27 23:35:43.000000000 +0100
+++ gdk-pixbuf-0.21.0-cygwin/gdk-pixbuf/gdk-pixbuf-io.c 2002-11-20 14:54:07.000000000 +0000
@@ -236,7 +236,11 @@ gdk_pixbuf_load_module (GdkPixbufModule
name = image_module->module_name;
+#ifndef __CYGWIN__
module_name = g_strconcat ("pixbufloader-", name, NULL);
+#else
+ module_name = g_strconcat ("cyg", "pixbufloader-", name, ".dll", NULL);
+#endif
path = g_module_build_path (PIXBUF_LIBDIR, module_name);
module = g_module_open (path, G_MODULE_BIND_LAZY);
diff -Naurp gdk-pixbuf-0.21.0/mkdll.sh gdk-pixbuf-0.21.0-cygwin/mkdll.sh
--- gdk-pixbuf-0.21.0/mkdll.sh 1970-01-01 00:00:00.000000000 +0000
+++ gdk-pixbuf-0.21.0-cygwin/mkdll.sh 2002-11-20 14:54:07.000000000 +0000
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+# script to generate dll from libtool-generated static archive (.la file)
+# invoke in .libs directory with:
+# mkdll.sh
+# eg:
+# mkdll.sh libtest.la -L/usr/local/lib -llocal
+
+# defaults to using gcc for libraries written in C.
+# set the CC env var to use a different compiler driver: eg
+# export CC=g++
+# for C++ libraries
+
+# defaults to using /usr/local as the installation PREFIX
+# override this by setting the PREFIX env var: eg
+# export PREFIX=/opt/gnome
+
+archive=$1
+module=$(echo $(basename $archive) | sed -e 's,^lib\(.*\).la$,\1,')
+
+shift
+dependency_libs="$@"
+
+test -n "$CC" || CC=gcc
+test -n "$PREFIX" || prefix=/usr/local
+
+# get the static library name
+old_lib=$(sed -ne '/^old_library=/ s,^old_library='\''\(.*\)'\''.*$,\1,p' $archive)
+
+# update the archive with the dll and import lib name.
+if sed -e 's,^dlname='\'\'',dlname='\'cyg${module}.dll\'',;s,^library_names='\'\'',library_names='\'lib${module}.dll.a\'',' $archive > ${archive}.tmp
+then cat ${archive}.tmp > ${archive}
+fi
+rm -f ${archive}.tmp
+
+# update the install archive if it exists
+if [ -f ${archive}i ] ; then
+ if sed -e 's,^dlname='\'\'',dlname='\'../bin/cyg${module}.dll\'',;s,^library_names='\'\'',library_names='\'lib${module}.dll.a\'',' ${archive}i > ${archive}i.tmp
+ then cat ${archive}i.tmp > ${archive}i
+ fi
+ rm -f ${archive}i.tmp
+fi
+
+# update the archive with the install dir if not already set
+libdir=${prefix}/lib
+if sed -e '/^libdir=/ s,='\'\'',='\'$libdir\'',' $archive > ${archive}.tmp
+then cat ${archive}.tmp > $archive
+fi
+rm -f ${archive}.tmp
+
+
+# report the link command to stdout
+eval echo $CC -shared -o cyg${module}.dll -Wl,--out-implib=lib${module}.dll.a \
+-Wl,--export-all-symbols -Wl,--whole-archive $old_lib -Wl,--no-whole-archive ${dependency_libs}
+
+# do the link command
+eval $CC -shared -o cyg${module}.dll -Wl,--out-implib=lib${module}.dll.a -Wl,--export-all-symbols \
+-Wl,--whole-archive $old_lib -Wl,--no-whole-archive ${dependency_libs}
+