diff -urdbN imlib-1.9.11-orig/Imlib/Makefile.in imlib-1.9.11/Imlib/Makefile.in --- imlib-1.9.11-orig/Imlib/Makefile.in Wed Aug 1 01:34:50 2001 +++ imlib-1.9.11/Imlib/Makefile.in Mon Dec 17 15:52:02 2001 @@ -210,6 +210,9 @@ if test -f $$p; then \ echo " $(LIBTOOL) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$p"; \ $(LIBTOOL) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$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 @@ -218,12 +221,15 @@ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ + dll=$$(echo $$p | sed 's,^lib\(.*\).la$$,cyg\1.dll,'); \ + rm -f $(DESTDIR)$(bindir)/$$dll; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) libImlib.la: $(libImlib_la_OBJECTS) $(libImlib_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libImlib_la_LDFLAGS) $(libImlib_la_OBJECTS) $(libImlib_la_LIBADD) $(LIBS) + cd .libs && sh ../../mkdll.sh $@ $(libImlib_la_LIBADD) $(LIBS) $$(gtk-config --libs) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core diff -urdbN imlib-1.9.11-orig/gdk_imlib/Makefile.in imlib-1.9.11/gdk_imlib/Makefile.in --- imlib-1.9.11-orig/gdk_imlib/Makefile.in Wed Aug 1 01:34:50 2001 +++ imlib-1.9.11/gdk_imlib/Makefile.in Mon Dec 17 15:59:52 2001 @@ -244,7 +244,7 @@ CCLD = $(CC) LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -CFLAGS = @CFLAGS@ +CFLAGS = @CFLAGS@ $(DLL_CFLAGS) DIST_SOURCES = $(libgdk_imlib_la_SOURCES) $(libimlib_bmp_la_SOURCES) \ $(libimlib_gif_la_SOURCES) $(libimlib_jpeg_la_SOURCES) \ $(libimlib_png_la_SOURCES) $(libimlib_ppm_la_SOURCES) \ @@ -283,6 +283,9 @@ if test -f $$p; then \ echo " $(LIBTOOL) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$p"; \ $(LIBTOOL) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$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 @@ -291,28 +294,40 @@ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ + dll=$$(echo $$p | sed 's,^lib\(.*\).la$$,cyg\1.dll,'); \ + rm -f $(DESTDIR)$(bindir)/$$dll; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) +libgdk_imlib.la: DLL_CFLAGS = -DGDK_IMLIB_BUILD_DLL libgdk_imlib.la: $(libgdk_imlib_la_OBJECTS) $(libgdk_imlib_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libgdk_imlib_la_LDFLAGS) $(libgdk_imlib_la_OBJECTS) $(libgdk_imlib_la_LIBADD) $(LIBS) + cd .libs && sh ../../mkdll.sh $@ $(LIBS) -L. -lgdk_imlib $$(gtk-config --libs) libimlib-bmp.la: $(libimlib_bmp_la_OBJECTS) $(libimlib_bmp_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libimlib_bmp_la_LDFLAGS) $(libimlib_bmp_la_OBJECTS) $(libimlib_bmp_la_LIBADD) $(LIBS) + cd .libs && sh ../../mkdll.sh $@ $(LIBS) -L. -lgdk_imlib $$(gtk-config --libs) libimlib-gif.la: $(libimlib_gif_la_OBJECTS) $(libimlib_gif_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libimlib_gif_la_LDFLAGS) $(libimlib_gif_la_OBJECTS) $(libimlib_gif_la_LIBADD) $(LIBS) + cd .libs && sh ../../mkdll.sh $@ $(GIFLIBS) $(LIBS) -L. -lgdk_imlib $$(gtk-config --libs) libimlib-jpeg.la: $(libimlib_jpeg_la_OBJECTS) $(libimlib_jpeg_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libimlib_jpeg_la_LDFLAGS) $(libimlib_jpeg_la_OBJECTS) $(libimlib_jpeg_la_LIBADD) $(LIBS) + cd .libs && sh ../../mkdll.sh $@ $(JPEGLIBS) $(LIBS) -L. -lgdk_imlib $$(gtk-config --libs) libimlib-png.la: $(libimlib_png_la_OBJECTS) $(libimlib_png_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libimlib_png_la_LDFLAGS) $(libimlib_png_la_OBJECTS) $(libimlib_png_la_LIBADD) $(LIBS) + cd .libs && sh ../../mkdll.sh $@ $(PNGLIBS) $(LIBS) -L. -lgdk_imlib $$(gtk-config --libs) libimlib-ppm.la: $(libimlib_ppm_la_OBJECTS) $(libimlib_ppm_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libimlib_ppm_la_LDFLAGS) $(libimlib_ppm_la_OBJECTS) $(libimlib_ppm_la_LIBADD) $(LIBS) + cd .libs && sh ../../mkdll.sh $@ $(LIBS) -L. -lgdk_imlib $$(gtk-config --libs) libimlib-ps.la: $(libimlib_ps_la_OBJECTS) $(libimlib_ps_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libimlib_ps_la_LDFLAGS) $(libimlib_ps_la_OBJECTS) $(libimlib_ps_la_LIBADD) $(LIBS) + cd .libs && sh ../../mkdll.sh $@ $(LIBS) -L. -lgdk_imlib $$(gtk-config --libs) libimlib-tiff.la: $(libimlib_tiff_la_OBJECTS) $(libimlib_tiff_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libimlib_tiff_la_LDFLAGS) $(libimlib_tiff_la_OBJECTS) $(libimlib_tiff_la_LIBADD) $(LIBS) + cd .libs && sh ../../mkdll.sh $@ $(TIFFLIBS) $(LIBS) -L. -lgdk_imlib $$(gtk-config --libs) libimlib-xpm.la: $(libimlib_xpm_la_OBJECTS) $(libimlib_xpm_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libimlib_xpm_la_LDFLAGS) $(libimlib_xpm_la_OBJECTS) $(libimlib_xpm_la_LIBADD) $(LIBS) + cd .libs && sh ../../mkdll.sh $@ $(LIBS) -L. -lgdk_imlib $$(gtk-config --libs) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core diff -urdbN imlib-1.9.11-orig/gdk_imlib/gdk_imlib_private.h imlib-1.9.11/gdk_imlib/gdk_imlib_private.h --- imlib-1.9.11-orig/gdk_imlib/gdk_imlib_private.h Fri Feb 25 05:51:48 2000 +++ imlib-1.9.11/gdk_imlib/gdk_imlib_private.h Mon Dec 17 15:49:20 2001 @@ -1,6 +1,14 @@ #ifndef _GDK_IMLIB_PRIVATE_H #define _GDK_IMLIB_PRIVATE_H +#ifndef GDK_IMLIB_IMPORT +#if (defined(_WIN32) || defined(__CYGWIN__)) && !(defined(GDK_IMLIB_BUILD_DLL) || defined(GDK_IMLIB_STATIC)) +#define GDK_IMLIB_IMPORT __declspec(dllimport) +#else +#define GDK_IMLIB_IMPORT +#endif +#endif + #ifndef CONVERT_PATH #define CONVERT_PATH "/usr/local/bin" #endif @@ -143,7 +151,7 @@ } ImlibData; -extern ImlibData *_gdk_imlib_data; +extern GDK_IMLIB_IMPORT ImlibData *_gdk_imlib_data; gint _gdk_imlib_index_best_color_match(gint * r, gint * g, gint * b); void gdk_imlib_load_default_colors__private (void); @@ -205,29 +213,29 @@ typedef unsigned char *(*gdk_imlib_loader_fn) (FILE *, int *w, int *h, int *transp); typedef unsigned char *(*gdk_imlib_loader_fn2)(FILE *, char *fname, int *w, int *h, int *trans); -extern gdk_imlib_loader_fn _gdk_imlib_LoadBMP; -extern gdk_imlib_loader_fn _gdk_imlib_LoadXPM; -extern gdk_imlib_loader_fn _gdk_imlib_LoadGIF; -extern gdk_imlib_loader_fn2 _gdk_imlib_LoadTIFF; -extern gdk_imlib_loader_fn _gdk_imlib_LoadJPEG; -extern gdk_imlib_loader_fn _gdk_imlib_LoadPNG; -extern gdk_imlib_loader_fn _gdk_imlib_LoadPPM; +extern GDK_IMLIB_IMPORT gdk_imlib_loader_fn _gdk_imlib_LoadBMP; +extern GDK_IMLIB_IMPORT gdk_imlib_loader_fn _gdk_imlib_LoadXPM; +extern GDK_IMLIB_IMPORT gdk_imlib_loader_fn _gdk_imlib_LoadGIF; +extern GDK_IMLIB_IMPORT gdk_imlib_loader_fn2 _gdk_imlib_LoadTIFF; +extern GDK_IMLIB_IMPORT gdk_imlib_loader_fn _gdk_imlib_LoadJPEG; +extern GDK_IMLIB_IMPORT gdk_imlib_loader_fn _gdk_imlib_LoadPNG; +extern GDK_IMLIB_IMPORT gdk_imlib_loader_fn _gdk_imlib_LoadPPM; typedef gint (*gdk_imlib_saver_fn)(GdkImlibImage *im, char *file, GdkImlibSaveInfo *info); -extern gdk_imlib_saver_fn _gdk_imlib_SavePNG; -extern gdk_imlib_saver_fn _gdk_imlib_SaveTIFF; -extern gdk_imlib_saver_fn _gdk_imlib_SavePNG; -extern gdk_imlib_saver_fn _gdk_imlib_SaveJPEG; -extern gdk_imlib_saver_fn _gdk_imlib_SavePS; -extern gdk_imlib_saver_fn _gdk_imlib_SavePPM; +extern GDK_IMLIB_IMPORT gdk_imlib_saver_fn _gdk_imlib_SavePNG; +extern GDK_IMLIB_IMPORT gdk_imlib_saver_fn _gdk_imlib_SaveTIFF; +extern GDK_IMLIB_IMPORT gdk_imlib_saver_fn _gdk_imlib_SavePNG; +extern GDK_IMLIB_IMPORT gdk_imlib_saver_fn _gdk_imlib_SaveJPEG; +extern GDK_IMLIB_IMPORT gdk_imlib_saver_fn _gdk_imlib_SavePS; +extern GDK_IMLIB_IMPORT gdk_imlib_saver_fn _gdk_imlib_SavePPM; typedef GdkImlibImage * (*gdk_imlib_inline_fn)(unsigned char *data, int data_size); -extern gdk_imlib_inline_fn _gdk_imlib_inlined_png_to_image; +extern GDK_IMLIB_IMPORT gdk_imlib_inline_fn _gdk_imlib_inlined_png_to_image; typedef GdkImlibImage *(*gdk_imlib_load_alpha_fn)(char *file); -extern gdk_imlib_load_alpha_fn _gdk_imlib_load_alpha_png; +extern GDK_IMLIB_IMPORT gdk_imlib_load_alpha_fn _gdk_imlib_load_alpha_png; #endif diff -urdbN imlib-1.9.11-orig/gdk_imlib/modules.c imlib-1.9.11/gdk_imlib/modules.c --- imlib-1.9.11-orig/gdk_imlib/modules.c Fri Jul 30 18:34:02 1999 +++ imlib-1.9.11/gdk_imlib/modules.c Mon Dec 17 15:49:20 2001 @@ -83,7 +83,11 @@ gboolean v; void *ptr; +#ifdef __CYGWIN__ + modname = g_strconcat ("cygimlib-", mod, NULL); +#else modname = g_strconcat ("imlib-", mod, NULL); +#endif path = g_module_build_path (IMLIB_LIB, modname); g_free (modname); diff -urdbN imlib-1.9.11-orig/mkdll.sh imlib-1.9.11/mkdll.sh --- imlib-1.9.11-orig/mkdll.sh Thu Jan 1 01:00:00 1970 +++ imlib-1.9.11/mkdll.sh Mon Dec 17 15:49:21 2001 @@ -0,0 +1,48 @@ +#!/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 + +archive=$1 +module=$(echo $(basename $archive) | sed -e 's,^lib\(.*\).la$,\1,') + +shift +dependency_libs="$@" + +# 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='\'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 +# (/usr/local/lib is hard-coded here - edit it if necessary) +libdir=/usr/local/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 gcc -shared -o cyg${module}.dll -Wl,--out-implib=lib${module}.dll.a -Wl,--export-all-symbols -Wl,--enable-auto-import \ +-Wl,--whole-archive $old_lib -Wl,--no-whole-archive ${dependency_libs} + +# do the link command +eval gcc -shared -o cyg${module}.dll -Wl,--out-implib=lib${module}.dll.a -Wl,--export-all-symbols -Wl,--enable-auto-import \ +-Wl,--whole-archive $old_lib -Wl,--no-whole-archive ${dependency_libs} +