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>
* io-xbm.c (gdk_pixbuf__xbm_image_load_real): Don't dereference

View File

@ -1,6 +1,39 @@
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 = \
libgdk_pixbuf-1.3.la
@ -12,7 +45,7 @@ module_libs = libgdk_pixbuf-1.3.la $(GDK_PIXBUF_DEP_LIBS)
# The PNG plugin.
#
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_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_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)
#
@ -29,7 +62,7 @@ libpixbufloader_jpeg_la_LIBADD = $(LIBJPEG) $(module_libs)
#
libpixbufloader_static_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)
#
@ -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_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)
#
@ -45,7 +78,7 @@ libpixbufloader_gif_la_LIBADD = $(module_libs)
#
libpixbufloader_static_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)
#
@ -53,7 +86,7 @@ libpixbufloader_ico_la_LIBADD = $(module_libs)
#
libpixbufloader_static_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)
#
@ -61,7 +94,7 @@ libpixbufloader_ras_la_LIBADD = $(module_libs)
#
libpixbufloader_static_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)
#
@ -69,7 +102,7 @@ libpixbufloader_tiff_la_LIBADD = $(LIBTIFF) $(module_libs)
#
libpixbufloader_static_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)
#
@ -77,7 +110,7 @@ libpixbufloader_pnm_la_LIBADD = $(module_libs)
#
libpixbufloader_static_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)
#
@ -85,21 +118,21 @@ libpixbufloader_bmp_la_LIBADD = $(module_libs)
#
libpixbufloader_static_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)
#
# The XBM loader
#
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)
#
# The TGA loader
#
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)
if HAVE_PNG
@ -175,6 +208,7 @@ INCLUDES = @STRIP_BEGIN@ \
-I$(top_srcdir) -I$(top_builddir) \
-I$(top_srcdir)/gdk-pixbuf \
-I$(top_builddir)/gdk-pixbuf \
-DGTK_VERSION=\"@GTK_VERSION@\" \
@INCLUDED_LOADER_DEFINE@ \
@GTK_DEBUG_FLAGS@ \
@GDK_PIXBUF_DEP_CFLAGS@ \
@ -217,10 +251,12 @@ libgdk_pixbuf_1_3_la_SOURCES = @STRIP_BEGIN@ \
libgdk_pixbuf_1_3_la_LDFLAGS = @STRIP_BEGIN@ \
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
@LIBTOOL_EXPORT_OPTIONS@ \
$(no_undefined) \
$(gdk_pixbuf_symbols) \
@STRIP_END@
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.h \
@ -238,7 +274,7 @@ noinst_HEADERS = \
gdk_pixbuf_built_headers = gdk-pixbuf-enum-types.h gdk-pixbuf-marshal.h
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 =
MAINTAINERCLEANFILES = $(gdk_pixbuf_built_headers) $(gdk_pixbuf_built_cfiles) gdk-pixbuf-marshal.c
@ -328,3 +364,7 @@ EXTRA_DIST = \
pixbufloader_tiff.def \
pixbufloader_wbmp.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-io.h"
#ifdef G_OS_WIN32
#define STRICT
#include <windows.h>
#undef STRICT
#endif
static gboolean
@ -252,6 +258,10 @@ pixbuf_module_symbol (GModule *module, const char *module_name, const char *symb
#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 *
get_libdir (void)
{
@ -259,14 +269,12 @@ get_libdir (void)
if (libdir == NULL)
libdir = g_win32_get_package_installation_subdirectory
(GETTEXT_PACKAGE,
g_strdup_printf ("gdk_pixbuf-%d.%d.dll",
GDK_PIXBUF_MAJOR, GDK_PIXBUF_MINOR),
"loaders");
(GETTEXT_PACKAGE, dll_name, "lib\\gtk-2.0\\" GTK_VERSION "\\loaders");
return libdir;
}
#undef PIXBUF_LIBDIR
#define PIXBUF_LIBDIR get_libdir ()
#endif

View File

@ -2,7 +2,10 @@ EXPORTS
_gdk_pixbuf_get_module
_gdk_pixbuf_get_named_module
_gdk_pixbuf_load_module
gdk_colorspace_get_type
gdk_interp_type_get_type
gdk_pixbuf_add_alpha
gdk_pixbuf_alpha_mode_get_type
gdk_pixbuf_animation_get_height
gdk_pixbuf_animation_get_iter
gdk_pixbuf_animation_get_static_image
@ -22,6 +25,7 @@ EXPORTS
gdk_pixbuf_composite_color_simple
gdk_pixbuf_copy
gdk_pixbuf_copy_area
gdk_pixbuf_error_get_type
gdk_pixbuf_error_quark
gdk_pixbuf_fill
gdk_pixbuf_from_pixdata
@ -48,19 +52,14 @@ EXPORTS
gdk_pixbuf_new_from_xpm_data
gdk_pixbuf_new_subpixbuf
gdk_pixbuf_ref
; gdk_pixbuf_rotate
gdk_pixbuf_saturate_and_pixelate
gdk_pixbuf_save
gdk_pixbuf_savev
gdk_pixbuf_scale
gdk_pixbuf_scale_simple
gdk_pixbuf_set_option
gdk_pixbuf_unref
gdk_pixdata_deserialize
gdk_pixdata_from_pixbuf
gdk_pixdata_serialize
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->user_data = user_data;
context->all_okay = TRUE;
context->tempname = g_strdup ("/tmp/gdkpixbuf-xbm-tmp.XXXXXX");
fd = mkstemp (context->tempname);
fd = g_file_open_tmp ("gdkpixbuf-xbm-tmp.XXXXXX",
&context->tempname,
NULL);
if (fd < 0) {
g_free (context->tempname);
g_free (context);
return NULL;
}

View File

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