Commit 79d63460 authored by Federico Mena Quintero's avatar Federico Mena Quintero
Browse files

0.6.0 - Federico

parent 7ef740e0
......@@ -38,7 +38,12 @@ gdk_pixbuf_doc_DATA = \
gdk-pixbuf-decl.txt \
gdk-pixbuf-sections.txt
EXTRA_DIST = $(gdk_pixbuf_doc_DATA)
content_files = \
compiling.sgml
EXTRA_DIST = \
$(gdk_pixbuf_doc_DATA) \
$(content_files)
if ENABLE_GTK_DOC
gdk-pixbuf.html: html/book1.html
......@@ -47,7 +52,7 @@ else
gdk-pixbuf.html:
endif
html/book1.html: sgml/gdk-pixbuf-doc.bottom
html/book1.html: sgml/gdk-pixbuf-doc.bottom $(content_files)
$(MAKE) html
sgml/gdk-pixbuf-doc.bottom: $(tmpl_sources)
......
<appendix id="compiling">
<title>Compiling the gdk-pixbuf library</title>
<para>
This appendix describes the special options you can use while
compiling the gdk-pixbuf library.
</para>
<sect1 id="building">
<title>Building the Library</title>
<para>
The gdk-pixbuf library uses the standard GNU build system,
using <productname>autoconf</productname> for package
configuration and resolving portability issues,
<productname>automake</productname> for building makefiles
that comply with the GNU Coding Standards, and
<productname>libtool</productname> for building shared
libraries on multiple platforms. The normal sequence for
compiling and installing the gdk-pixbuf library is thus:
<literallayout>
<userinput>./configure</userinput>
<userinput>make</userinput>
<userinput>make install</userinput>
</literallayout>
</para>
<para>
The standard options provided by <productname>GNU
autoconf</productname> may be passed to the
<command>configure</command> script. Please see the
<productname>autoconf</productname> documentation or run
<command>./configure --help</command> for information about
the standard options.
</para>
</sect1>
<sect1 id="extra-configuration-options">
<title>Extra Configuration Options</title>
<para>
In addition to the normal options, the
<command>configure</command> script in the gdk-pixbuf library
supports these additional arguments:
<cmdsynopsis>
<command>configure</command>
<group>
<arg>--disable-modules</arg>
<arg>--enable-modules</arg>
</group>
<group>
<arg>--disable-gtk-doc</arg>
<arg>--enable-gtk-doc</arg>
</group>
</cmdsynopsis>
</para>
<formalpara>
<title><systemitem>--disable-modules</systemitem> and
<systemitem>--enable-modules</systemitem></title>
<para>
Normally gdk-pixbuf will try to build the image file format
loaders as little shared libraries that are loaded on
demand. The <systemitem>--disable-modules</systemitem>
argument indicates that they should all be built statically
into the gdk-pixbuf library instead. This is useful for
people who need to produce statically-linked binaries. If
neither <systemitem>--disable-modules</systemitem> nor
<systemitem>--enable-modules</systemitem> is specified, then
the <command>configure</command> script will try to
auto-detect whether shared modules work on your system.
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-gtk-doc</systemitem> and
<systemitem>--enable-gtk-doc</systemitem></title>
<para>
By default the <command>configure</command> script will try
to auto-detect whether the
<productname>gtk-doc</productname> package is installed. If
it is, then it will use it to extract and build the
documentation for the gdk-pixbuf library. These options can
be used to explicitly control whether gtk-doc should be used
or not. If it is not used, the distributed, pre-generated
HTML files will be installed instead of building them on
your machine.
</para>
</formalpara>
</sect1>
</appendix>
<!--
Local variables:
mode: sgml
sgml-parent-document: ("gdk-pixbuf.sgml" "book" "book" "")
End:
-->
......@@ -10,6 +10,7 @@
<!entity gdk-pixbuf-animation SYSTEM "sgml/animation.sgml">
<!entity GdkPixbufLoader SYSTEM "sgml/gdk-pixbuf-loader.sgml">
<!entity GnomeCanvasPixbuf SYSTEM "sgml/gnome-canvas-pixbuf.sgml">
<!entity Compiling SYSTEM "compiling.sgml">
]>
<book>
......@@ -57,4 +58,6 @@
&GdkPixbufLoader;
&GnomeCanvasPixbuf;
</reference>
&Compiling;
</book>
2000-02-21 Federico Mena Quintero <federico@helixcode.com>
* configure.in (GDK_PIXBUF_MINOR): Bumped version number to 0.6.0.
* doc/compiling.sgml: New appendix documenting the gdk-pixbuf
library's particular options to configure.in.
* doc/gdk-pixbuf.sgml: Include compiling.sgml appendix via an
entity.
* doc/Makefile.am (gdk-pixbuf.html): Added compiling.sgml.
* gdk-pixbuf/io-ico.c (gdk_pixbuf__ico_image_load_increment):
Fixed typo in prototype name.
* configure.in: Changed duplicated AC_MSG_CHECKING message to
something more meaningful; now it is "checking whether dynamic
modules work".
* gdk-pixbuf/pixops/Makefile.am (noinst_PROGRAMS): Do not install
the timescale program.
Integrated Miguel de Icaza's <miguel@gnu.org> patch for optionally
creating a single static library with all the image format modules
in it.
2000-02-20 Miguel de Icaza <miguel@gnu.org>
* gdk-pixbuf/io-xpm.c (gdk_pixbuf__xpm_image_load): Add prefix.
(gdk_pixbuf__xpm_image_load_xpm_data): Add prefix.
* gdk-pixbuf/io-tiff.c (gdk_pixbuf__tiff_image_load_real): Add prefix.
(gdk_pixbuf__tiff_image_stop_load): Add prefix.
(gdk_pixbuf__tiff_image_load_increment): Add prefix.
(gdk_pixbuf__tiff_image_load): Add prefix.
(gdk_pixbuf__tiff_image_stop_load): Update invocation.
(gdk_pixbuf__tiff_image_begin_load): Add prefix.
* gdk-pixbuf/io-ras.c (gdk_pixbuf__ras_image_load): Add prefix.
(gdk_pixbuf__ras_image_load): Updated invocation.
(gdk_pixbuf__ras_image_begin_load): Add prefix.
(gdk_pixbuf__ras_image_stop_load): Add prefix.
(gdk_pixbuf__ras_image_load_increment): Add prefix.
* gdk-pixbuf/io-pnm.c (gdk_pixbuf__pnm_image_begin_load): Add prefix.
(gdk_pixbuf__pnm_image_stop_load): Add prefix.
(gdk_pixbuf__pnm_image_load_increment): Add prefix
(gdk_pixbuf__pnm_image_load): Add prefix.
* gdk-pixbuf/io-jpeg.c (gdk_pixbuf__jpeg_image_load): Add prefix.
(gdk_pixbuf__jpeg_image_load_increment): Add prefix.
(gdk_pixbuf__jpeg_image_begin_load): Add prefix.
(gdk_pixbuf__jpeg_image_stop_load): Add prefix.
* gdk-pixbuf/io-ico.c (gdk_pixbuf__ico_image_load): Add prefix.
(gdk_pixbuf__ico_image_load): update invocation.
(gdk_pixbuf__ico_image_load_increment): Add prefix.
(gdk_pixbuf__ico_image_load): update invocation.
(gdk_pixbuf__ico_image_begin_load): Add prefix.
(gdk_pixbuf__ico_image_load): update invocation.
(gdk_pixbuf__ico_image_stop_load): Add prefix.
* gdk-pixbuf/io-gif.c (gdk_pixbuf__gif_image_load_animation): Add prefix.
(gdk_pixbuf__gif_image_load): Add prefix.
(gdk_pixbuf__gif_image_begin_load): Add prefix.
(gdk_pixbuf__gif_image_load_increment): Add prefix.
(gdk_pixbuf__gif_image_load_animation): Add prefix.
(gdk_pixbuf__gif_image_stop_load): Add prefix.
* gdk-pixbuf/io-bmp.c (gdk_pixbuf__bmp_image_load): Add prefix.
(gdk_pixbuf__bmp_image_load): Rename function called.
(gdk_pixbuf__bmp_image_load_increment): Add prefix
* gdk-pixbuf/io-png.c (gdk_pixbuf__png_image_load): Add prefix.
(gdk_pixbuf__png_image_begin_load): Add prefix.
(gdk_pixbuf__png_image_stop_load): Add prefix.
(gdk_pixbuf__png_image_load_increment): Add prefix.
* gdk-pixbuf/gdk-pixbuf-io.c (file_formats): Make this static.
(gdk_pixbuf_load_module): Load the shared library entry points
using a "gdk_pixbuf__$module_name" prefix.
(pixbuf_module_symbol): Wrapper routine that uses the module
prefix for the modules to load the information.
* configure.in (GDK_PIXBUF_VERSION): New option --disable-modules
lets the user specify that gdk-pixbuf should link all image loader
code into the library instaed of creating shared library modules.
(dynworks): Renamed the automake conditional DYNAMIC_MODULES_WORK
to BUILD_DYNAMIC_MODULES.
2000-02-19 Jonathan Blandford <jrb@redhat.com>
* gdk-pixbuf/io-gif.c (new_context): fix case where initial
......
......@@ -19,6 +19,69 @@ libgnomecanvaspixbuf_la_LDFLAGS = $(EXTRA_GNOME_LIBS)
libexecdir = $(libdir)/gdk-pixbuf/loaders
#
# The PNG plugin.
#
libpixbuf_png_la_SOURCES = io-png.c
libpixbuf_png_la_LDFLAGS = -avoid-version -module
libpixbuf_png_la_LIBADD = $(LIBPNG)
#
# The JPEG loader
#
libpixbuf_jpeg_la_SOURCES = io-jpeg.c
libpixbuf_jpeg_la_LDFLAGS = -avoid-version -module
libpixbuf_jpeg_la_LIBADD = $(LIBJPEG)
#
# The XPM loader
#
libpixbuf_xpm_la_SOURCES = io-xpm.c
libpixbuf_xpm_la_LDFLAGS = -avoid-version -module
libpixbuf_xpm_la_LIBADD =
#
# The GIF loader
#
libpixbuf_gif_la_SOURCES = io-gif.c
libpixbuf_gif_la_LDFLAGS = -avoid-version -module
libpixbuf_gif_la_LIBADD =
#
# The ICO loader
#
libpixbuf_ico_la_SOURCES = io-ico.c
libpixbuf_ico_la_LDFLAGS = -avoid-version -module
libpixbuf_ico_la_LIBADD =
#
# The RAS loader
#
libpixbuf_ras_la_SOURCES = io-ras.c
libpixbuf_ras_la_LDFLAGS = -avoid-version -module
libpixbuf_ras_la_LIBADD =
#
# The TIFF loader
#
libpixbuf_tiff_la_SOURCES = io-tiff.c
libpixbuf_tiff_la_LDFLAGS = -avoid-version -module
libpixbuf_tiff_la_LIBADD = $(LIBTIFF)
#
# The PNM loader
#
libpixbuf_pnm_la_SOURCES = io-pnm.c
libpixbuf_pnm_la_LDFLAGS = -avoid-version -module
libpixbuf_pnm_la_LIBADD =
#
# The BMP loader
#
libpixbuf_bmp_la_SOURCES = io-bmp.c
libpixbuf_bmp_la_LDFLAGS = -avoid-version -module
libpixbuf_bmp_la_LIBADD =
if HAVE_PNG
PNG_LIB = libpixbuf-png.la
endif
......@@ -43,7 +106,9 @@ PNM_LIB = libpixbuf-pnm.la
BMP_LIB = libpixbuf-bmp.la
libexec_LTLIBRARIES = \
if BUILD_DYNAMIC_MODULES
libexec_LTLIBRARIES = \
$(PNG_LIB) \
$(JPEG_LIB) \
$(GIF_LIB) \
......@@ -54,6 +119,25 @@ libexec_LTLIBRARIES = \
$(PNM_LIB) \
$(BMP_LIB)
extra_sources =
else
libexec_LTLIBRARIES =
extra_sources = $(libpixbuf_png_la_SOURCES) \
$(libpixbuf_jpeg_la_SOURCES) \
$(libpixbuf_xpm_la_SOURCES) \
$(libpixbuf_gif_la_SOURCES) \
$(libpixbuf_ico_la_SOURCES) \
$(libpixbuf_ras_la_SOURCES) \
$(libpixbuf_tiff_la_SOURCES) \
$(libpixbuf_pnm_la_SOURCES) \
$(libpixbuf_bmp_la_SOURCES)
builtin_libraries =
endif
noinst_PROGRAMS = testpixbuf testpixbuf-drawable testanimation testpixbuf-scale
DEPS = libgdk_pixbuf.la
......@@ -63,7 +147,7 @@ INCLUDES = -I$(top_srcdir) -I$(top_builddir) \
$(GLIB_CFLAGS) $(LIBART_CFLAGS) $(GTK_CFLAGS)
AM_CPPFLAGS = "-DPIXBUF_LIBDIR=\"$(libexecdir)\""
LDADDS = libgdk_pixbuf.la $(LIBART_LIBS) $(GLIB_LIBS) $(GTK_LIBS)
LDADDS = libgdk_pixbuf.la $(LIBART_LIBS) $(GLIB_LIBS) $(GTK_LIBS) $(STATIC_LIB_DEPS)
if INSIDE_GNOME_LIBS
testpixbuf_LDADD = $(LDADDS) $(LIBART_LIBS) -lgmodule
......@@ -95,10 +179,11 @@ libgdk_pixbuf_la_SOURCES = \
gdk-pixbuf-loader.c \
gdk-pixbuf-render.c \
gdk-pixbuf-scale.c \
gdk-pixbuf-util.c
gdk-pixbuf-util.c \
$(extra_sources)
libgdk_pixbuf_la_LDFLAGS = -version-info 1:0:0 $(LIBART_LIBS) $(GLIB_LIBS) $(GTK_LIBS)
libgdk_pixbuf_la_LIBADD = pixops/libpixops.la
libgdk_pixbuf_la_LIBADD = pixops/libpixops.la
libgdk_pixbufinclude_HEADERS = \
gdk-pixbuf.h \
......@@ -109,65 +194,3 @@ libgdk_pixbufinclude_HEADERS = \
noinst_HEADERS = \
gdk-pixbuf-io.h
#
# The PNG plugin.
#
libpixbuf_png_la_SOURCES = io-png.c
libpixbuf_png_la_LDFLAGS = -avoid-version -module
libpixbuf_png_la_LIBADD = $(LIBPNG)
#
# The JPEG loader
#
libpixbuf_jpeg_la_SOURCES = io-jpeg.c
libpixbuf_jpeg_la_LDFLAGS = -avoid-version -module
libpixbuf_jpeg_la_LIBADD = $(LIBJPEG)
#
# The XPM loader
#
libpixbuf_xpm_la_SOURCES = io-xpm.c
libpixbuf_xpm_la_LDFLAGS = -avoid-version -module
libpixbuf_xpm_la_LIBADD =
#
# The GIF loader
#
libpixbuf_gif_la_SOURCES = io-gif.c
libpixbuf_gif_la_LDFLAGS = -avoid-version -module
libpixbuf_gif_la_LIBADD =
#
# The ICO loader
#
libpixbuf_ico_la_SOURCES = io-ico.c
libpixbuf_ico_la_LDFLAGS = -avoid-version -module
libpixbuf_ico_la_LIBADD =
#
# The RAS loader
#
libpixbuf_ras_la_SOURCES = io-ras.c
libpixbuf_ras_la_LDFLAGS = -avoid-version -module
libpixbuf_ras_la_LIBADD =
#
# The TIFF loader
#
libpixbuf_tiff_la_SOURCES = io-tiff.c
libpixbuf_tiff_la_LDFLAGS = -avoid-version -module
libpixbuf_tiff_la_LIBADD = $(LIBTIFF)
#
# The PNM loader
#
libpixbuf_pnm_la_SOURCES = io-pnm.c
libpixbuf_pnm_la_LDFLAGS = -avoid-version -module
libpixbuf_pnm_la_LIBADD =
#
# The BMP loader
#
libpixbuf_bmp_la_SOURCES = io-bmp.c
libpixbuf_bmp_la_LDFLAGS = -avoid-version -module
libpixbuf_bmp_la_LIBADD =
......@@ -166,8 +166,7 @@ pixbuf_check_bmp (guchar *buffer, int size)
return TRUE;
}
GdkPixbufModule file_formats [] = {
static GdkPixbufModule file_formats [] = {
{ "png", pixbuf_check_png, NULL, NULL, NULL, NULL, NULL, NULL },
{ "jpeg", pixbuf_check_jpeg, NULL, NULL, NULL, NULL, NULL, NULL },
{ "tiff", pixbuf_check_tiff, NULL, NULL, NULL, NULL, NULL, NULL },
......@@ -181,6 +180,18 @@ GdkPixbufModule file_formats [] = {
{ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }
};
#ifdef USE_GMODULE
static gboolean
pixbuf_module_symbol (GModule *module, const char *module_name, const char *symbol_name, gpointer *symbol)
{
char *full_symbol_name = g_strconcat ("gdk_pixbuf__", module_name, "_", symbol_name, NULL);
gboolean return_value;
return_value = g_module_symbol (module, full_symbol_name, symbol);
g_free (full_symbol_name);
return return_value;
}
/* actually load the image handler - gdk_pixbuf_get_module only get a */
/* reference to the module to load, it doesn't actually load it */
......@@ -192,10 +203,13 @@ gdk_pixbuf_load_module (GdkPixbufModule *image_module)
char *path;
GModule *module;
gpointer load_sym;
char *name;
g_return_if_fail (image_module->module == NULL);
module_name = g_strconcat ("pixbuf-", image_module->module_name, NULL);
name = image_module->module_name;
module_name = g_strconcat ("pixbuf-", name, NULL);
path = g_module_build_path (PIXBUF_LIBDIR, module_name);
module = g_module_open (path, G_MODULE_BIND_LAZY);
......@@ -220,24 +234,150 @@ gdk_pixbuf_load_module (GdkPixbufModule *image_module)
image_module->module = module;
if (g_module_symbol (module, "image_load", &load_sym))
if (pixbuf_module_symbol (module, name, "image_load", &load_sym))
image_module->load = load_sym;
if (g_module_symbol (module, "image_load_xpm_data", &load_sym))
if (pixbuf_module_symbol (module, name, "image_load_xpm_data", &load_sym))
image_module->load_xpm_data = load_sym;
if (g_module_symbol (module, "image_begin_load", &load_sym))
if (pixbuf_module_symbol (module, name, "image_begin_load", &load_sym))
image_module->begin_load = load_sym;
if (g_module_symbol (module, "image_stop_load", &load_sym))
if (pixbuf_module_symbol (module, name, "image_stop_load", &load_sym))
image_module->stop_load = load_sym;
if (g_module_symbol (module, "image_load_increment", &load_sym))
if (pixbuf_module_symbol (module, name, "image_load_increment", &load_sym))
image_module->load_increment = load_sym;
if (g_module_symbol (module, "image_load_animation", &load_sym))
if (pixbuf_module_symbol (module, name, "image_load_animation", &load_sym))
image_module->load_animation = load_sym;
}
#else
#define mname(type,fn) gdk_pixbuf__ ## type ## _image_ ##fn
#define m_load(type) extern GdkPixbuf * mname(type,load) (FILE *f);
#define m_load_xpm_data(type) extern GdkPixbuf * mname(type,load_xpm_data) (const char **data);
#define m_begin_load(type) \
extern gpointer mname(type,begin_load) (ModulePreparedNotifyFunc prepare_func, \
ModuleUpdatedNotifyFunc update_func, \
ModuleFrameDoneNotifyFunc frame_done_func,\
ModuleAnimationDoneNotifyFunc anim_done_func,\
gpointer user_data);
#define m_stop_load(type) extern void mname(type,stop_load) (gpointer context);
#define m_load_increment(type) extern gboolean mname(type,load_increment) (gpointer context, const guchar *buf, guint size);
#define m_load_animation(type) extern GdkPixbufAnimation * mname(type,load_animation) (FILE *f);
m_load (png);
m_begin_load (png);
m_load_increment (png);
m_stop_load (png);
m_load (bmp);
m_begin_load (bmp);
m_load_increment (bmp);
m_stop_load (bmp);
m_load (gif);
m_begin_load (gif);
m_load_increment (gif);
m_stop_load (gif);
m_load_animation (gif);
m_load (ico);
m_begin_load (ico);
m_load_increment (ico);
m_stop_load (ico);
m_load (jpeg);
m_begin_load (jpeg);
m_load_increment (jpeg);
m_stop_load (jpeg);
m_load (pnm);
m_begin_load (pnm);
m_load_increment (pnm);
m_stop_load (pnm);
m_load (ras);
m_begin_load (ras);
m_load_increment (ras);
m_stop_load (ras);
m_load (tiff);
m_begin_load (tiff);
m_load_increment (tiff);
m_stop_load (tiff);
m_load (xpm);
m_load_xpm_data (xpm);
void
gdk_pixbuf_load_module (GdkPixbufModule *image_module)
{
image_module->module = (void *) 1;
if (strcmp (image_module->module_name, "png") == 0){
image_module->load = mname (png,load);
image_module->begin_load = mname (png,begin_load);
image_module->load_increment = mname (png,load_increment);
image_module->stop_load = mname (png,stop_load);
return;
}
if (strcmp (image_module->module_name, "bmp") == 0){
image_module->load = mname (bmp,load);
image_module->begin_load = mname (bmp,begin_load);
image_module->load_increment = mname (bmp,load_increment);
image_module->stop_load = mname (bmp,stop_load);
return;
}
if (strcmp (image_module->module_name, "gif") == 0){
image_module->load = mname (gif,load);
image_module->begin_load = mname (gif,begin_load);
image_module->load_increment = mname (gif,load_increment);
image_module->stop_load = mname (gif,stop_load);
image_module->load_animation = mname (gif,load_animation);
return;
}
if (strcmp (image_module->module_name, "ico") == 0){
image_module->load = mname (ico,load);
image_module->begin_load = mname (ico,begin_load);
image_module->load_increment = mname (ico,load_increment);
image_module->stop_load = mname (ico,stop_load);
return;
}
if (strcmp (image_module->module_name, "jpeg") == 0){
image_module->load = mname (jpeg,load);
image_module->begin_load = mname (jpeg,begin_load);
image_module->load_increment = mname (jpeg,load_increment);
image_module->stop_load = mname (jpeg,stop_load);
return;
}
if (strcmp (image_module->module_name, "pnm") == 0){
image_module->load = mname (pnm,load);
image_module->begin_load = mname (pnm,begin_load);
image_module->load_increment = mname (pnm,load_increment);
image_module->stop_load = mname (pnm,stop_load);
return;
}
if (strcmp (image_module->module_name, "ras") == 0){
image_module->load = mname (ras,load);
image_module->begin_load = mname (ras,begin_load);
image_module->load_increment = mname (ras,load_increment);
image_module->stop_load = mname (ras,stop_load);
return;
}
if (strcmp (image_module->module_name, "tiff") == 0){
image_module->load = mname (tiff,load);
image_module->begin_load = mname (tiff,begin_load);
image_module->load_increment = mname (tiff,load_increment);
image_module->stop_load = mname (tiff,stop_load);
return;
}
if (strcmp (image_module->module_name, "xpm") == 0){
image_module->load = mname (xpm,load);
image_module->load_xpm_data = mname (xpm,load_xpm_data);
return;
}
}
#endif