Use -no-undefined on Win32. Make libgdk_pixbuf_1_3_la_OBJECTS depend on

2001-10-29  Tor Lillqvist  <tml@iki.fi>

	* Makefile.am: Use -no-undefined on Win32. Make
	libgdk_pixbuf_1_3_la_OBJECTS depend on
	gdk-pixbuf-marshal.c. Install import libraries.

	* gdk_pixbuf.def: Update.

	* gdk-pixbuf-io.c: (Win32) Use G_WIN32_DLLMAIN_FOR_DLL_NAME, saves
	the actual DLL name of libgdk_pixbuf.
	(get_libdir): Use it instead of guessing.

	* io-xbm.c (gdk_pixbuf__xbm_image_begin_load): Use
	g_file_open_tmp() insread of mkstemp().
This commit is contained in:
Tor Lillqvist 2001-10-29 06:48:04 +00:00 committed by Tor Lillqvist
parent 2933fbda25
commit 47dc8d4dac
6 changed files with 93 additions and 27 deletions

View File

@ -1,3 +1,18 @@
2001-10-29 Tor Lillqvist <tml@iki.fi>
* Makefile.am: Use -no-undefined on Win32. Make
libgdk_pixbuf_1_3_la_OBJECTS depend on
gdk-pixbuf-marshal.c. Install import libraries.
* gdk_pixbuf.def: Update.
* gdk-pixbuf-io.c: (Win32) Use G_WIN32_DLLMAIN_FOR_DLL_NAME, saves
the actual DLL name of libgdk_pixbuf.
(get_libdir): Use it instead of guessing.
* io-xbm.c (gdk_pixbuf__xbm_image_begin_load): Use
g_file_open_tmp() insread of mkstemp().
2001-10-18 Matthias Clasen <matthiasc@poet.de> 2001-10-18 Matthias Clasen <matthiasc@poet.de>
* io-xbm.c (gdk_pixbuf__xbm_image_load_real): Don't dereference * io-xbm.c (gdk_pixbuf__xbm_image_load_real): Don't dereference

View File

@ -1,6 +1,39 @@
SUBDIRS = pixops SUBDIRS = pixops
if PLATFORM_WIN32
no_undefined = -no-undefined
endif
if OS_WIN32
gdk_pixbuf_def = gdk_pixbuf.def
gdk_pixbuf_symbols = -export-symbols $(gdk_pixbuf_def)
install-libtool-import-lib:
$(INSTALL) .libs/libgdk_pixbuf-1.3.dll.a $(DESTDIR)$(libdir)
uninstall-libtool-import-lib:
-rm $(DESTDIR)$(libdir)/libdk_pixbuf-1.3.dll.a
else
install-libtool-import-lib:
uninstall-libtool-import-lib:
endif
if MS_LIB_AVAILABLE
noinst_DATA = gdk_pixbuf-1.3.lib
gdk_pixbuf-1.3.lib: libgdk_pixbuf-1.3.la gdk_pixbuf.def
lib -name:libgdk_pixbuf-1.3-@LT_CURRENT_MINUS_AGE@.dll -def:gdk_pixbuf.def -out:$@
install-ms-lib:
$(INSTALL) gdk_pixbuf-1.3.lib $(DESTDIR)$(libdir)
uninstall-ms-lib:
-rm $(DESTDIR)$(libdir)/gdk_pixbuf-1.3.lib
else
install-ms-lib:
uninstall-ms-lib:
endif
lib_LTLIBRARIES = \ lib_LTLIBRARIES = \
libgdk_pixbuf-1.3.la libgdk_pixbuf-1.3.la
@ -12,7 +45,7 @@ module_libs = libgdk_pixbuf-1.3.la $(GDK_PIXBUF_DEP_LIBS)
# The PNG plugin. # The PNG plugin.
# #
libpixbufloader_png_la_SOURCES = io-png.c libpixbufloader_png_la_SOURCES = io-png.c
libpixbufloader_png_la_LDFLAGS = -avoid-version -module libpixbufloader_png_la_LDFLAGS = -avoid-version -module $(no_undefined)
libpixbufloader_png_la_LIBADD = $(LIBPNG) $(module_libs) libpixbufloader_png_la_LIBADD = $(LIBPNG) $(module_libs)
libpixbufloader_static_png_la_SOURCES = io-png.c libpixbufloader_static_png_la_SOURCES = io-png.c
@ -21,7 +54,7 @@ libpixbufloader_static_png_la_SOURCES = io-png.c
# #
libpixbufloader_static_jpeg_la_SOURCES = io-jpeg.c libpixbufloader_static_jpeg_la_SOURCES = io-jpeg.c
libpixbufloader_jpeg_la_SOURCES = io-jpeg.c libpixbufloader_jpeg_la_SOURCES = io-jpeg.c
libpixbufloader_jpeg_la_LDFLAGS = -avoid-version -module libpixbufloader_jpeg_la_LDFLAGS = -avoid-version -module $(no_undefined)
libpixbufloader_jpeg_la_LIBADD = $(LIBJPEG) $(module_libs) libpixbufloader_jpeg_la_LIBADD = $(LIBJPEG) $(module_libs)
# #
@ -29,7 +62,7 @@ libpixbufloader_jpeg_la_LIBADD = $(LIBJPEG) $(module_libs)
# #
libpixbufloader_static_xpm_la_SOURCES = io-xpm.c libpixbufloader_static_xpm_la_SOURCES = io-xpm.c
libpixbufloader_xpm_la_SOURCES = io-xpm.c libpixbufloader_xpm_la_SOURCES = io-xpm.c
libpixbufloader_xpm_la_LDFLAGS = -avoid-version -module libpixbufloader_xpm_la_LDFLAGS = -avoid-version -module $(no_undefined)
libpixbufloader_xpm_la_LIBADD = $(module_libs) libpixbufloader_xpm_la_LIBADD = $(module_libs)
# #
@ -37,7 +70,7 @@ libpixbufloader_xpm_la_LIBADD = $(module_libs)
# #
libpixbufloader_static_gif_la_SOURCES = io-gif.c io-gif-animation.c io-gif-animation.h libpixbufloader_static_gif_la_SOURCES = io-gif.c io-gif-animation.c io-gif-animation.h
libpixbufloader_gif_la_SOURCES = io-gif.c io-gif-animation.c io-gif-animation.h libpixbufloader_gif_la_SOURCES = io-gif.c io-gif-animation.c io-gif-animation.h
libpixbufloader_gif_la_LDFLAGS = -avoid-version -module libpixbufloader_gif_la_LDFLAGS = -avoid-version -module $(no_undefined)
libpixbufloader_gif_la_LIBADD = $(module_libs) libpixbufloader_gif_la_LIBADD = $(module_libs)
# #
@ -45,7 +78,7 @@ libpixbufloader_gif_la_LIBADD = $(module_libs)
# #
libpixbufloader_static_ico_la_SOURCES = io-ico.c libpixbufloader_static_ico_la_SOURCES = io-ico.c
libpixbufloader_ico_la_SOURCES = io-ico.c libpixbufloader_ico_la_SOURCES = io-ico.c
libpixbufloader_ico_la_LDFLAGS = -avoid-version -module libpixbufloader_ico_la_LDFLAGS = -avoid-version -module $(no_undefined)
libpixbufloader_ico_la_LIBADD = $(module_libs) libpixbufloader_ico_la_LIBADD = $(module_libs)
# #
@ -53,7 +86,7 @@ libpixbufloader_ico_la_LIBADD = $(module_libs)
# #
libpixbufloader_static_ras_la_SOURCES = io-ras.c libpixbufloader_static_ras_la_SOURCES = io-ras.c
libpixbufloader_ras_la_SOURCES = io-ras.c libpixbufloader_ras_la_SOURCES = io-ras.c
libpixbufloader_ras_la_LDFLAGS = -avoid-version -module libpixbufloader_ras_la_LDFLAGS = -avoid-version -module $(no_undefined)
libpixbufloader_ras_la_LIBADD = $(module_libs) libpixbufloader_ras_la_LIBADD = $(module_libs)
# #
@ -61,7 +94,7 @@ libpixbufloader_ras_la_LIBADD = $(module_libs)
# #
libpixbufloader_static_tiff_la_SOURCES = io-tiff.c libpixbufloader_static_tiff_la_SOURCES = io-tiff.c
libpixbufloader_tiff_la_SOURCES = io-tiff.c libpixbufloader_tiff_la_SOURCES = io-tiff.c
libpixbufloader_tiff_la_LDFLAGS = -avoid-version -module libpixbufloader_tiff_la_LDFLAGS = -avoid-version -module $(no_undefined)
libpixbufloader_tiff_la_LIBADD = $(LIBTIFF) $(module_libs) libpixbufloader_tiff_la_LIBADD = $(LIBTIFF) $(module_libs)
# #
@ -69,7 +102,7 @@ libpixbufloader_tiff_la_LIBADD = $(LIBTIFF) $(module_libs)
# #
libpixbufloader_static_pnm_la_SOURCES = io-pnm.c libpixbufloader_static_pnm_la_SOURCES = io-pnm.c
libpixbufloader_pnm_la_SOURCES = io-pnm.c libpixbufloader_pnm_la_SOURCES = io-pnm.c
libpixbufloader_pnm_la_LDFLAGS = -avoid-version -module libpixbufloader_pnm_la_LDFLAGS = -avoid-version -module $(no_undefined)
libpixbufloader_pnm_la_LIBADD = $(module_libs) libpixbufloader_pnm_la_LIBADD = $(module_libs)
# #
@ -77,7 +110,7 @@ libpixbufloader_pnm_la_LIBADD = $(module_libs)
# #
libpixbufloader_static_bmp_la_SOURCES = io-bmp.c libpixbufloader_static_bmp_la_SOURCES = io-bmp.c
libpixbufloader_bmp_la_SOURCES = io-bmp.c libpixbufloader_bmp_la_SOURCES = io-bmp.c
libpixbufloader_bmp_la_LDFLAGS = -avoid-version -module libpixbufloader_bmp_la_LDFLAGS = -avoid-version -module $(no_undefined)
libpixbufloader_bmp_la_LIBADD = $(module_libs) libpixbufloader_bmp_la_LIBADD = $(module_libs)
# #
@ -85,21 +118,21 @@ libpixbufloader_bmp_la_LIBADD = $(module_libs)
# #
libpixbufloader_static_wbmp_la_SOURCES = io-wbmp.c libpixbufloader_static_wbmp_la_SOURCES = io-wbmp.c
libpixbufloader_wbmp_la_SOURCES = io-wbmp.c libpixbufloader_wbmp_la_SOURCES = io-wbmp.c
libpixbufloader_wbmp_la_LDFLAGS = -avoid-version -module libpixbufloader_wbmp_la_LDFLAGS = -avoid-version -module $(no_undefined)
libpixbufloader_wbmp_la_LIBADD = $(module_libs) libpixbufloader_wbmp_la_LIBADD = $(module_libs)
# #
# The XBM loader # The XBM loader
# #
libpixbufloader_xbm_la_SOURCES = io-xbm.c libpixbufloader_xbm_la_SOURCES = io-xbm.c
libpixbufloader_xbm_la_LDFLAGS = -avoid-version -module libpixbufloader_xbm_la_LDFLAGS = -avoid-version -module $(no_undefined)
libpixbufloader_xbm_la_LIBADD = $(module_libs) libpixbufloader_xbm_la_LIBADD = $(module_libs)
# #
# The TGA loader # The TGA loader
# #
libpixbufloader_tga_la_SOURCES = io-tga.c libpixbufloader_tga_la_SOURCES = io-tga.c
libpixbufloader_tga_la_LDFLAGS = -avoid-version -module libpixbufloader_tga_la_LDFLAGS = -avoid-version -module $(no_undefined)
libpixbufloader_tga_la_LIBADD = $(module_libs) libpixbufloader_tga_la_LIBADD = $(module_libs)
if HAVE_PNG if HAVE_PNG
@ -175,6 +208,7 @@ INCLUDES = @STRIP_BEGIN@ \
-I$(top_srcdir) -I$(top_builddir) \ -I$(top_srcdir) -I$(top_builddir) \
-I$(top_srcdir)/gdk-pixbuf \ -I$(top_srcdir)/gdk-pixbuf \
-I$(top_builddir)/gdk-pixbuf \ -I$(top_builddir)/gdk-pixbuf \
-DGTK_VERSION=\"@GTK_VERSION@\" \
@INCLUDED_LOADER_DEFINE@ \ @INCLUDED_LOADER_DEFINE@ \
@GTK_DEBUG_FLAGS@ \ @GTK_DEBUG_FLAGS@ \
@GDK_PIXBUF_DEP_CFLAGS@ \ @GDK_PIXBUF_DEP_CFLAGS@ \
@ -217,10 +251,12 @@ libgdk_pixbuf_1_3_la_SOURCES = @STRIP_BEGIN@ \
libgdk_pixbuf_1_3_la_LDFLAGS = @STRIP_BEGIN@ \ libgdk_pixbuf_1_3_la_LDFLAGS = @STRIP_BEGIN@ \
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
@LIBTOOL_EXPORT_OPTIONS@ \ @LIBTOOL_EXPORT_OPTIONS@ \
$(no_undefined) \
$(gdk_pixbuf_symbols) \
@STRIP_END@ @STRIP_END@
libgdk_pixbuf_1_3_la_LIBADD = pixops/libpixops.la $(builtin_objs) $(GDK_PIXBUF_DEP_LIBS) libgdk_pixbuf_1_3_la_LIBADD = pixops/libpixops.la $(builtin_objs) $(GDK_PIXBUF_DEP_LIBS)
libgdk_pixbuf_1_3_la_DEPENDENCIES = $(builtin_objs) libgdk_pixbuf_1_3_la_DEPENDENCIES = $(builtin_objs) $(gdk_pixbuf_def)
gdk_pixbuf_headers = \ gdk_pixbuf_headers = \
gdk-pixbuf.h \ gdk-pixbuf.h \
@ -238,7 +274,7 @@ noinst_HEADERS = \
gdk_pixbuf_built_headers = gdk-pixbuf-enum-types.h gdk-pixbuf-marshal.h gdk_pixbuf_built_headers = gdk-pixbuf-enum-types.h gdk-pixbuf-marshal.h
gdk_pixbuf_built_cfiles = gdk-pixbuf-enum-types.c gdk_pixbuf_built_cfiles = gdk-pixbuf-enum-types.c
$(OBJECTS): $(gdk_pixbuf_built_headers) $(gdk_pixbuf_built_cfiles) gdk-pixbuf-marshal.c $(libgdk_pixbuf_1_3_la_OBJECTS) $(OBJECTS): $(gdk_pixbuf_built_headers) $(gdk_pixbuf_built_cfiles) gdk-pixbuf-marshal.c
CLEANFILES = CLEANFILES =
MAINTAINERCLEANFILES = $(gdk_pixbuf_built_headers) $(gdk_pixbuf_built_cfiles) gdk-pixbuf-marshal.c MAINTAINERCLEANFILES = $(gdk_pixbuf_built_headers) $(gdk_pixbuf_built_cfiles) gdk-pixbuf-marshal.c
@ -328,3 +364,7 @@ EXTRA_DIST = \
pixbufloader_tiff.def \ pixbufloader_tiff.def \
pixbufloader_wbmp.def \ pixbufloader_wbmp.def \
pixbufloader_xbm.def pixbufloader_xbm.def
install-data-local: install-ms-lib install-libtool-import-lib
uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib

View File

@ -28,6 +28,12 @@
#include "gdk-pixbuf-private.h" #include "gdk-pixbuf-private.h"
#include "gdk-pixbuf-io.h" #include "gdk-pixbuf-io.h"
#ifdef G_OS_WIN32
#define STRICT
#include <windows.h>
#undef STRICT
#endif
static gboolean static gboolean
@ -252,6 +258,10 @@ pixbuf_module_symbol (GModule *module, const char *module_name, const char *symb
#ifdef G_OS_WIN32 #ifdef G_OS_WIN32
/* DllMain function needed to tuck away the gdk-pixbuf DLL name */
G_WIN32_DLLMAIN_FOR_DLL_NAME (static, dll_name)
static char * static char *
get_libdir (void) get_libdir (void)
{ {
@ -259,14 +269,12 @@ get_libdir (void)
if (libdir == NULL) if (libdir == NULL)
libdir = g_win32_get_package_installation_subdirectory libdir = g_win32_get_package_installation_subdirectory
(GETTEXT_PACKAGE, (GETTEXT_PACKAGE, dll_name, "lib\\gtk-2.0\\" GTK_VERSION "\\loaders");
g_strdup_printf ("gdk_pixbuf-%d.%d.dll",
GDK_PIXBUF_MAJOR, GDK_PIXBUF_MINOR),
"loaders");
return libdir; return libdir;
} }
#undef PIXBUF_LIBDIR
#define PIXBUF_LIBDIR get_libdir () #define PIXBUF_LIBDIR get_libdir ()
#endif #endif

View File

@ -2,7 +2,10 @@ EXPORTS
_gdk_pixbuf_get_module _gdk_pixbuf_get_module
_gdk_pixbuf_get_named_module _gdk_pixbuf_get_named_module
_gdk_pixbuf_load_module _gdk_pixbuf_load_module
gdk_colorspace_get_type
gdk_interp_type_get_type
gdk_pixbuf_add_alpha gdk_pixbuf_add_alpha
gdk_pixbuf_alpha_mode_get_type
gdk_pixbuf_animation_get_height gdk_pixbuf_animation_get_height
gdk_pixbuf_animation_get_iter gdk_pixbuf_animation_get_iter
gdk_pixbuf_animation_get_static_image gdk_pixbuf_animation_get_static_image
@ -22,6 +25,7 @@ EXPORTS
gdk_pixbuf_composite_color_simple gdk_pixbuf_composite_color_simple
gdk_pixbuf_copy gdk_pixbuf_copy
gdk_pixbuf_copy_area gdk_pixbuf_copy_area
gdk_pixbuf_error_get_type
gdk_pixbuf_error_quark gdk_pixbuf_error_quark
gdk_pixbuf_fill gdk_pixbuf_fill
gdk_pixbuf_from_pixdata gdk_pixbuf_from_pixdata
@ -48,19 +52,14 @@ EXPORTS
gdk_pixbuf_new_from_xpm_data gdk_pixbuf_new_from_xpm_data
gdk_pixbuf_new_subpixbuf gdk_pixbuf_new_subpixbuf
gdk_pixbuf_ref gdk_pixbuf_ref
; gdk_pixbuf_rotate
gdk_pixbuf_saturate_and_pixelate gdk_pixbuf_saturate_and_pixelate
gdk_pixbuf_save gdk_pixbuf_save
gdk_pixbuf_savev gdk_pixbuf_savev
gdk_pixbuf_scale gdk_pixbuf_scale
gdk_pixbuf_scale_simple gdk_pixbuf_scale_simple
gdk_pixbuf_set_option
gdk_pixbuf_unref gdk_pixbuf_unref
gdk_pixdata_deserialize gdk_pixdata_deserialize
gdk_pixdata_from_pixbuf gdk_pixdata_from_pixbuf
gdk_pixdata_serialize gdk_pixdata_serialize
gdk_pixdata_to_csource gdk_pixdata_to_csource
gdk_pixbuf_alpha_mode_get_type
gdk_colorspace_get_type
gdk_pixbuf_error_get_type
gdk_interp_type_get_type

View File

@ -365,10 +365,10 @@ gdk_pixbuf__xbm_image_begin_load (ModulePreparedNotifyFunc prepare_func,
context->update_func = update_func; context->update_func = update_func;
context->user_data = user_data; context->user_data = user_data;
context->all_okay = TRUE; context->all_okay = TRUE;
context->tempname = g_strdup ("/tmp/gdkpixbuf-xbm-tmp.XXXXXX"); fd = g_file_open_tmp ("gdkpixbuf-xbm-tmp.XXXXXX",
fd = mkstemp (context->tempname); &context->tempname,
NULL);
if (fd < 0) { if (fd < 0) {
g_free (context->tempname);
g_free (context); g_free (context);
return NULL; return NULL;
} }

View File

@ -1,3 +1,7 @@
####
#### Out of order! Use autoconfiscation.
####
## Makefile for building the gdk_pixbuf DLL with gcc on Win32 ## Makefile for building the gdk_pixbuf DLL with gcc on Win32
## Use: make -f makefile.mingw ## Use: make -f makefile.mingw