SVN revision: 74
This commit is contained in:
Carsten Haitzler 1999-08-23 16:55:16 +00:00
parent 8a957fb01b
commit 8898389aba
24 changed files with 2982 additions and 2408 deletions

View File

@ -70,9 +70,9 @@ LN_S = ln -s
LTLIBOBJS =
MAKEINFO = makeinfo
NM = /usr/bin/nm -B
OBJDUMP =
PACKAGE = imlib
RANLIB = ranlib
USE_SYMBOL_UNDERSCORE = no
VERSION = 2.0
pkglibdir = ${libdir}/loaders
@ -95,7 +95,7 @@ png_la_LDFLAGS = -no-undefined -module -avoid-version
png_la_LIBADD = -lpng -lz -lX11 -lXext
bin_PROGRAMS = imlib2
imlib2_SOURCES = rend.c ximage.c scale.c main.c rgba.c image.c color.c grab.c blend.c file.c rgbadraw.c api.c draw.c
imlib2_SOURCES = rend.c ximage.c scale.c main.c rgba.c image.c color.c grab.c blend.c file.c rgbadraw.c api.c draw.c context.c
imlib2_LDADD = -export-dynamic $(top_builddir)/libltdl/libltdlc.la -lX11 -lXext
@ -115,7 +115,7 @@ png_la_OBJECTS = loader_png.lo
PROGRAMS = $(bin_PROGRAMS)
imlib2_OBJECTS = rend.o ximage.o scale.o main.o rgba.o image.o color.o \
grab.o blend.o file.o rgbadraw.o api.o draw.o
grab.o blend.o file.o rgbadraw.o api.o draw.o context.o
imlib2_DEPENDENCIES = $(top_builddir)/libltdl/libltdlc.la
imlib2_LDFLAGS =
CFLAGS = -O2 -mpentium -mcpu=pentium -march=pentium -malign-loops=2 -malign-jumps=2 -malign-functions=2 -g -W -Wall -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith
@ -132,9 +132,10 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/api.P .deps/blend.P .deps/color.P .deps/draw.P \
.deps/file.P .deps/grab.P .deps/image.P .deps/loader_png.P .deps/main.P \
.deps/rend.P .deps/rgba.P .deps/rgbadraw.P .deps/scale.P .deps/ximage.P
DEP_FILES = .deps/api.P .deps/blend.P .deps/color.P .deps/context.P \
.deps/draw.P .deps/file.P .deps/grab.P .deps/image.P .deps/loader_png.P \
.deps/main.P .deps/rend.P .deps/rgba.P .deps/rgbadraw.P .deps/scale.P \
.deps/ximage.P
SOURCES = $(png_la_SOURCES) $(imlib2_SOURCES)
OBJECTS = $(png_la_OBJECTS) $(imlib2_OBJECTS)

View File

@ -21,7 +21,8 @@ png_la_LIBADD = -lpng -lz -lX11 -lXext
bin_PROGRAMS = imlib2
imlib2_SOURCES = rend.c ximage.c scale.c main.c rgba.c image.c \
color.c grab.c blend.c file.c rgbadraw.c api.c draw.c
color.c grab.c blend.c file.c rgbadraw.c api.c draw.c \
context.c
imlib2_LDADD = @DLLDFLAGS@ $(top_builddir)/libltdl/libltdlc.la -lX11 -lXext
SYS_LOADERS_PATH = @pkglibdir@

19
api.c
View File

@ -3,6 +3,7 @@
#include "scale.h"
#include "image.h"
#include "rend.h"
#include "context.h"
#include "rgba.h"
#include "color.h"
#include "file.h"
@ -19,7 +20,6 @@ typedef void (*Imlib_Internal_Progress_Function)(ImlibImage*, char,
char
imlib_init(void)
{
__imlib_RGBA_init();
return 1;
}
@ -35,6 +35,12 @@ imlib_set_cache_size(int bytes)
__imlib_SetCacheSize(bytes);
}
int
imlib_get_color_usage(void)
{
return (int)_max_colors;
}
void
imlib_set_color_usage(int max)
{
@ -163,7 +169,7 @@ imlib_image_has_alpha(Imlib_Image image)
}
void
imlib_set_image_never_changes_on_disk(Imlib_Image image)
imlib_image_set_never_changes_on_disk(Imlib_Image image)
{
ImlibImage *im;
@ -210,6 +216,15 @@ imlib_image_format(Imlib_Image image)
return im->format;
}
void
imlib_image_set_has_alpha(Imlib_Image image, char has_alpha)
{
ImlibImage *im;
CAST_IMAGE(im, image);
UNSET_FLAG(im->flags, F_HAS_ALPHA);
}
void
imlib_render_pixmaps_for_whole_image(Imlib_Image image, Display *display,
Drawable drawable, Visual *visual,

37
api.h
View File

@ -25,6 +25,7 @@ typedef void (*Imlib_Progress_Function)(Imlib_Image *im, char percent,
char imlib_init(void);
int imlib_get_cache_size(void);
void imlib_set_cache_size(int bytes);
int imlib_get_color_usage(void);
void imlib_set_color_usage(int max);
/* image loading functions */
@ -47,12 +48,13 @@ void imlib_free_image_and_decache(Imlib_Image image);
int imlib_get_image_width(Imlib_Image image);
int imlib_get_image_height(Imlib_Image image);
DATA32 *imlib_get_image_data(Imlib_Image image);
void imlib_put_back_image_data(Imlib_Image image);
char imlib_image_has_alpha(Imlib_Image image);
void imlib_set_image_never_changes_on_disk(Imlib_Image image);
char *imlib_image_format(Imlib_Image image);
void imlib_put_back_image_data(Imlib_Image image);
void imlib_image_set_has_alpha(Imlib_Image image, char has_alpha);
void imlib_image_set_never_changes_on_disk(Imlib_Image image);
void imlib_image_get_border(Imlib_Image image, Imlib_Border *border);
void imlib_image_set_border(Imlib_Image image, Imlib_Border *border);
char *imlib_image_format(Imlib_Image image);
/* image drawing/rendering functions */
@ -95,6 +97,9 @@ void imlib_blend_image_onto_image(Imlib_Image source_image,
int destination_x, int destination_y,
int destination_width, int destination_height);
/* draw line, polygon, rect - with option of drawing in rgb or alpha or both */
/* apply alpha of one image to another */
/* image creation and grabbing */
Imlib_Image imlib_create_image_using_data(int width, int height,
DATA32 *data);
@ -106,6 +111,30 @@ Imlib_Image imlib_create_image_from_drawable(Display *display,
Colormap colormap, int depth,
int x, int y,
int width, int height);
Imlib_Image imlib_clone_image(Imlib_Image image);
#if 0
Imlib_image imlib_create_cropped_image(Imlib_Image image,
int x, int y, int width, int height);
Imlib_image imlib_create_cropped_scaled_image(Imlib_Image image,
int source_x, int source_y,
int source_width,
int source_height,
int destination_width,
int destination_height);
/* image modification - geometry */
void imlib_create_cropped_image(Imlib_Image image, int x, int y, int width,
int height);
void imlib_cropp_scale_image(Imlib_Image image, int source_x, int source_y,
int source_width, int source_height);
/* image modification - color */
/* image modification - rotation */
/* image modification - blur / sharpen */
/* image modification - special (seamless tile (h, v & both) etc) */
/* image saving functions */
#endif
#endif

153
color.c
View File

@ -1,35 +1,56 @@
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include "common.h"
#include "color.h"
DATA8 _dither_color_lut[256];
DATA8 _pal_type = 0;
DATA16 _max_colors = 256;
void
__imlib_AllocColorTable(Display *d, Colormap cmap)
DATA8 *
__imlib_AllocColorTable(Display *d, Colormap cmap, DATA8 *type_return)
{
if ((_max_colors >= 256) && (__imlib_AllocColors332(d, cmap)))
return;
if ((_max_colors >= 128) &&(__imlib_AllocColors232(d, cmap)))
return;
if ((_max_colors >= 64) &&(__imlib_AllocColors222(d, cmap)))
return;
if ((_max_colors >= 32) &&(__imlib_AllocColors221(d, cmap)))
return;
if ((_max_colors >= 16) &&(__imlib_AllocColors121(d, cmap)))
return;
if ((_max_colors >= 8) &&(__imlib_AllocColors111(d, cmap)))
return;
DATA8 *color_lut = NULL;
if ((_max_colors >= 256) && (color_lut = __imlib_AllocColors332(d, cmap)))
{
*type_return = _pal_type;
return color_lut;
}
if ((_max_colors >= 128) && (color_lut = __imlib_AllocColors232(d, cmap)))
{
*type_return = _pal_type;
return color_lut;
}
if ((_max_colors >= 64) && (color_lut = __imlib_AllocColors222(d, cmap)))
{
*type_return = _pal_type;
return color_lut;
}
if ((_max_colors >= 32) && (color_lut = __imlib_AllocColors221(d, cmap)))
{
*type_return = _pal_type;
return color_lut;
}
if ((_max_colors >= 16) && (color_lut = __imlib_AllocColors121(d, cmap)))
{
*type_return = _pal_type;
return color_lut;
}
if ((_max_colors >= 8) && (color_lut = __imlib_AllocColors111(d, cmap)))
{
*type_return = _pal_type;
return color_lut;
}
__imlib_AllocColors1(d, cmap);
return color_lut;
}
char
DATA8 *
__imlib_AllocColors332(Display *d, Colormap cmap)
{
int r, g, b, i = 0;
DATA8 *color_lut;
color_lut = malloc(256 * sizeof(DATA8));
for (r = 0; r < 8; r++)
{
for (g = 0; g < 8; g++)
@ -53,25 +74,28 @@ __imlib_AllocColors332(Display *d, Colormap cmap)
if (i > 0)
{
for(j = 0; j < i; j++)
pixels[j] = (unsigned long) _dither_color_lut[j];
pixels[j] = (unsigned long) color_lut[j];
XFreeColors(d, cmap, pixels, i, 0);
}
return 0;
free(color_lut);
return NULL;
}
_dither_color_lut[i] = xcl.pixel;
color_lut[i] = xcl.pixel;
i++;
}
}
}
_pal_type = 0;
return 1;
return color_lut;
}
char
DATA8 *
__imlib_AllocColors232(Display *d, Colormap cmap)
{
int r, g, b, i = 0;
DATA8 *color_lut;
color_lut = malloc(128 * sizeof(DATA8));
for (r = 0; r < 4; r++)
{
for (g = 0; g < 8; g++)
@ -95,25 +119,28 @@ __imlib_AllocColors232(Display *d, Colormap cmap)
if (i > 0)
{
for(j = 0; j < i; j++)
pixels[j] = (unsigned long) _dither_color_lut[j];
pixels[j] = (unsigned long) color_lut[j];
XFreeColors(d, cmap, pixels, i, 0);
}
return 0;
free(color_lut);
return NULL;
}
_dither_color_lut[i] = xcl.pixel;
color_lut[i] = xcl.pixel;
i++;
}
}
}
_pal_type = 1;
return 1;
return color_lut;
}
char
DATA8 *
__imlib_AllocColors222(Display *d, Colormap cmap)
{
int r, g, b, i = 0;
DATA8 *color_lut;
color_lut = malloc(64 * sizeof(DATA8));
for (r = 0; r < 4; r++)
{
for (g = 0; g < 4; g++)
@ -137,25 +164,28 @@ __imlib_AllocColors222(Display *d, Colormap cmap)
if (i > 0)
{
for(j = 0; j < i; j++)
pixels[j] = (unsigned long) _dither_color_lut[j];
pixels[j] = (unsigned long) color_lut[j];
XFreeColors(d, cmap, pixels, i, 0);
}
return 0;
free(color_lut);
return NULL;
}
_dither_color_lut[i] = xcl.pixel;
color_lut[i] = xcl.pixel;
i++;
}
}
}
_pal_type = 2;
return 1;
return color_lut;
}
char
DATA8 *
__imlib_AllocColors221(Display *d, Colormap cmap)
{
int r, g, b, i = 0;
DATA8 *color_lut;
color_lut = malloc(32 * sizeof(DATA8));
for (r = 0; r < 4; r++)
{
for (g = 0; g < 4; g++)
@ -179,25 +209,28 @@ __imlib_AllocColors221(Display *d, Colormap cmap)
if (i > 0)
{
for(j = 0; j < i; j++)
pixels[j] = (unsigned long) _dither_color_lut[j];
pixels[j] = (unsigned long) color_lut[j];
XFreeColors(d, cmap, pixels, i, 0);
}
return 0;
free(color_lut);
return NULL;
}
_dither_color_lut[i] = xcl.pixel;
color_lut[i] = xcl.pixel;
i++;
}
}
}
_pal_type = 3;
return 1;
return color_lut;
}
char
DATA8 *
__imlib_AllocColors121(Display *d, Colormap cmap)
{
int r, g, b, i = 0;
DATA8 *color_lut;
color_lut = malloc(16 * sizeof(DATA8));
for (r = 0; r < 2; r++)
{
for (g = 0; g < 4; g++)
@ -221,25 +254,28 @@ __imlib_AllocColors121(Display *d, Colormap cmap)
if (i > 0)
{
for(j = 0; j < i; j++)
pixels[j] = (unsigned long) _dither_color_lut[j];
pixels[j] = (unsigned long) color_lut[j];
XFreeColors(d, cmap, pixels, i, 0);
}
return 0;
free(color_lut);
return NULL;
}
_dither_color_lut[i] = xcl.pixel;
color_lut[i] = xcl.pixel;
i++;
}
}
}
_pal_type = 4;
return 1;
return color_lut;
}
char
DATA8 *
__imlib_AllocColors111(Display *d, Colormap cmap)
{
int r, g, b, i = 0;
DATA8 *color_lut;
color_lut = malloc(8 * sizeof(DATA8));
for (r = 0; r < 2; r++)
{
for (g = 0; g < 2; g++)
@ -263,35 +299,38 @@ __imlib_AllocColors111(Display *d, Colormap cmap)
if (i > 0)
{
for(j = 0; j < i; j++)
pixels[j] = (unsigned long) _dither_color_lut[j];
pixels[j] = (unsigned long) color_lut[j];
XFreeColors(d, cmap, pixels, i, 0);
}
return 0;
free(color_lut);
return NULL;
}
_dither_color_lut[i] = xcl.pixel;
color_lut[i] = xcl.pixel;
i++;
}
}
}
_pal_type = 5;
return 1;
return color_lut;
}
char
DATA8 *
__imlib_AllocColors1(Display *d, Colormap cmap)
{
XColor xcl;
DATA8 *color_lut;
color_lut = malloc(2 * sizeof(DATA8));
xcl.red = (unsigned short)(0x0000);
xcl.green = (unsigned short)(0x0000);
xcl.blue = (unsigned short)(0x0000);
XAllocColor(d, cmap, &xcl);
_dither_color_lut[0] = xcl.pixel;
color_lut[0] = xcl.pixel;
xcl.red = (unsigned short)(0xffff);
xcl.green = (unsigned short)(0xffff);
xcl.blue = (unsigned short)(0xffff);
XAllocColor(d, cmap, &xcl);
_dither_color_lut[1] = xcl.pixel;
color_lut[1] = xcl.pixel;
_pal_type = 6;
return 1;
return color_lut;
}

20
color.h
View File

@ -1,24 +1,22 @@
#ifndef __COLOR
#define __COLOR 1
/* FIXME: DATA32 must become DATA8 */
extern DATA8 _dither_color_lut[256];
extern DATA8 _pal_type;
extern DATA16 _max_colors;
void
__imlib_AllocColorTable(Display *d, Colormap cmap);
char
DATA8 *
__imlib_AllocColorTable(Display *d, Colormap cmap, DATA8 *type_return);
DATA8 *
__imlib_AllocColors332(Display *d, Colormap cmap);
char
DATA8 *
__imlib_AllocColors232(Display *d, Colormap cmap);
char
DATA8 *
__imlib_AllocColors222(Display *d, Colormap cmap);
char
DATA8 *
__imlib_AllocColors221(Display *d, Colormap cmap);
char
DATA8 *
__imlib_AllocColors121(Display *d, Colormap cmap);
char
DATA8 *
__imlib_AllocColors111(Display *d, Colormap cmap);
char
DATA8 *
__imlib_AllocColors1(Display *d, Colormap cmap);
#endif

196
context.c Normal file
View File

@ -0,0 +1,196 @@
#include <X11/Xlib.h>
#include "common.h"
#include "image.h"
#include "context.h"
#include "color.h"
#include "rgba.h"
static Context *context = NULL;
static int max_context_count = 128;
static int context_counter = 0;
void
__imlib_SetMaxContexts(int num)
{
max_context_count = num;
__imlib_FlushContexts();
}
int
__imlib_GetMaxContexts(void)
{
return max_context_count;
}
void
__imlib_FlushContexts(void)
{
Context *ct, *pct, *ctt;
ct = context;
pct = NULL;
while (ct)
{
ctt = ct;
ct = ct->next;
/* it hasnt been referenced in the last max_context_count refernces */
/* thus old and getrid of it */
if (ctt->last_use < (context_counter - max_context_count))
{
if (pct)
context = ctt->next;
else
pct->next = ctt->next;
if (ctt->palette)
{
free(ctt->palette);
free(ctt->r_dither);
free(ctt->g_dither);
free(ctt->b_dither);
}
else if (ctt->r_dither)
{
free(ctt->r_dither);
free(ctt->g_dither);
free(ctt->b_dither);
}
free(ctt);
}
else
pct = ctt;
}
}
void
__imlib_FreeContextForDisplay(Display *d)
{
Context *ct;
ct = context;
while (ct)
{
if (ct->display == d)
ct->last_use = - (max_context_count * 2);
ct = ct->next;
}
__imlib_FlushContexts();
}
void
__imlib_FreeContextForColormap(Display *d, Colormap cm)
{
Context *ct;
ct = context;
while (ct)
{
if ((ct->display == d) && (ct->colormap == cm))
ct->last_use = - (max_context_count * 2);
ct = ct->next;
}
__imlib_FlushContexts();
}
void
__imlib_FreeContextForVisual(Display *d, Visual *v)
{
Context *ct;
ct = context;
while (ct)
{
if ((ct->display == d) && (ct->visual == v))
ct->last_use = - (max_context_count * 2);
ct = ct->next;
}
__imlib_FlushContexts();
}
Context *
__imlib_FindContext(Display *d, Visual *v, Colormap c, int depth)
{
Context *ct, *pct;
pct = NULL;
ct = context;
while (ct)
{
if ((ct->display == d) && (ct->visual == v) &&
(ct->colormap == c) && (ct->depth == depth))
{
if (pct)
{
pct->next = ct->next;
ct->next = context;
context = ct;
}
return ct;
}
pct = ct;
ct = ct->next;
}
return NULL;
}
Context *
__imlib_NewContext(Display *d, Visual *v, Colormap c, int depth)
{
Context *ct;
context_counter++;
ct = malloc(sizeof(Context));
ct->last_use = context_counter;
ct->display = d;
ct->visual = v;
ct->colormap = c;
ct->depth = depth;
ct->next = NULL;
if (depth <= 8)
{
ct->palette = __imlib_AllocColorTable(d, c, &(ct->palette_type));
ct->r_dither = malloc(sizeof(DATA8) * 8 * 8 * 256);
ct->g_dither = malloc(sizeof(DATA8) * 8 * 8 * 256);
ct->b_dither = malloc(sizeof(DATA8) * 8 * 8 * 256);
__imlib_RGBA_init((void *)ct->r_dither, (void *)ct->g_dither,
(void *)ct->b_dither, depth, ct->palette_type);
}
else
{
ct->palette = NULL;
ct->palette_type = 0;
if ((depth > 8) && (depth <= 16))
{
ct->r_dither = malloc(sizeof(DATA16) * 4 * 4 * 256);
ct->g_dither = malloc(sizeof(DATA16) * 4 * 4 * 256);
ct->b_dither = malloc(sizeof(DATA16) * 4 * 4 * 256);
__imlib_RGBA_init((void *)ct->r_dither, (void *)ct->g_dither,
(void *)ct->b_dither, depth, 0);
}
else
{
ct->r_dither = NULL;
ct->g_dither = NULL;
ct->b_dither = NULL;
}
}
return ct;
}
Context *
__imlib_GetContext(Display *d, Visual *v, Colormap c, int depth)
{
Context *ct;
ct = __imlib_FindContext(d, v, c, depth);
if (ct)
{
ct->last_use = context_counter;
return ct;
}
ct = __imlib_NewContext(d, v, c, depth);
ct->next = context;
context = ct;
__imlib_FlushContexts();
return ct;
}

32
context.h Normal file
View File

@ -0,0 +1,32 @@
#ifndef __CONTEXT
#define __CONTEXT 1
typedef struct _context Context;
struct _context
{
int last_use;
Display *display;
Visual *visual;
Colormap colormap;
int depth;
Context *next;
DATA8 *palette;
DATA8 palette_type;
void *r_dither;
void *g_dither;
void *b_dither;
};
void __imlib_SetMaxContexts(int num);
int __imlib_GetMaxContexts(void);
void __imlib_FlushContexts(void);
void __imlib_FreeContextForDisplay(Display *d);
void __imlib_FreeContextForColormap(Display *d, Colormap cm);
void __imlib_FreeContextForVisual(Display *d, Visual *v);
Context *__imlib_FindContext(Display *d, Visual *v, Colormap c, int depth);
Context *__imlib_NewContext(Display *d, Visual *v, Colormap c, int depth);
Context *__imlib_GetContext(Display *d, Visual *v, Colormap c, int depth);
#endif

View File

@ -161,6 +161,7 @@ __imlib_CurrentCacheSize(void)
}
ip = ip->next;
}
return current_cache;
}
void
@ -300,7 +301,7 @@ __imlib_RemoveImagePixmapFromCache(ImlibImagePixmap *ip)
}
void
__imlib_CleanupImagePixmapCache()
__imlib_CleanupImagePixmapCache(void)
{
ImlibImagePixmap *ip, *ip_last;
int current_cache;
@ -348,9 +349,8 @@ LTDL_Init(void)
{
static int errors = LOADERS_UNINITIALISED;
/* Do this only once! */
if (errors = LOADERS_UNINITIALISED)
if ((errors = LOADERS_UNINITIALISED))
{
errors = lt_dlinit();
@ -614,6 +614,7 @@ __imlib_CreateImage(int w, int h, DATA32 *data)
im->data = data;
im->references = 1;
SET_FLAG(im->flags, F_UNCACHEABLE);
return im;
}
ImlibImage *

View File

@ -92,7 +92,7 @@ ImlibImagePixmap *__imlib_FindCachedImagePixmap(ImlibImage *im, int w, int h,
char aa, char hiq, char dmask);
void __imlib_AddImagePixmapToCache(ImlibImagePixmap *ip);
void __imlib_RemoveImagePixmapFromCache(ImlibImagePixmap *ip);
void __imlib_CleanupImagePixmapCache();
void __imlib_CleanupImagePixmapCache(void);
ImlibLoader *__imlib_ProduceLoader(char *file);
char **__imlib_ListLoaders(int *num_ret);
void __imlib_ConsumeLoader(ImlibLoader *l);

View File

@ -1,5 +1,5 @@
## Process this file with automake to produce Makefile.in
# A brief demonstration of using Automake with Libtool. -*-Makefile-*-
#
AUTOMAKE_OPTIONS = no-dependencies foreign
if INSTALL_LTDL
@ -20,25 +20,6 @@ libltdl_la_LIBADD = $(LIBADD_DL)
libltdlc_la_SOURCES = ltdl.c
libltdlc_la_LIBADD = $(LIBADD_DL)
## Because we do not have automatic dependency tracking:
ltdl.lo: ltdl.h config.h
$(OBJECTS): libtool
libtool: $(LIBTOOL_DEPS)
$(SHELL) ./config.status --recheck
## This allows us to install libltdl without using ln and without creating
## a world writeable directory.
## FIXME: Removed this rule once automake can do this properly by itself.
local-install-files: $(DISTFILES)
-rm -rf $(DESTDIR)$(datadir)/libtool/libltdl
$(mkinstalldirs) $(DESTDIR)$(datadir)/libtool/libltdl
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file; \
else \
test -f $(DESTDIR)$(datadir)/libtool/libltdl/$$file \
|| cp -p $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file || :; \
fi; \
done

View File

@ -10,6 +10,9 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
# A brief demonstration of using Automake with Libtool. -*-Makefile-*-
#
SHELL = @SHELL@
@ -70,9 +73,9 @@ LN_S = @LN_S@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
NM = @NM@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
USE_SYMBOL_UNDERSCORE = @USE_SYMBOL_UNDERSCORE@
VERSION = @VERSION@
AUTOMAKE_OPTIONS = no-dependencies foreign
@ -112,8 +115,8 @@ CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
HEADERS = $(include_HEADERS) $(noinst_HEADERS)
DIST_COMMON = README ./stamp-h.in COPYING.LIB Makefile.am Makefile.in \
acconfig.h acinclude.m4 aclocal.m4 config.h.in configure configure.in
DIST_COMMON = README ./stamp-h.in Makefile.am Makefile.in acinclude.m4 \
aclocal.m4 config.h.in configure configure.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
@ -156,7 +159,7 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/stamp-h.in
rm -f $(srcdir)/stamp-h.in; \
$(MAKE) $(srcdir)/stamp-h.in; \
else :; fi
$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOHEADER)
@echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null
@ -430,25 +433,10 @@ mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
ltdl.lo: ltdl.h config.h
$(OBJECTS): libtool
libtool: $(LIBTOOL_DEPS)
$(SHELL) ./config.status --recheck
local-install-files: $(DISTFILES)
-rm -rf $(DESTDIR)$(datadir)/libtool/libltdl
$(mkinstalldirs) $(DESTDIR)$(datadir)/libtool/libltdl
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file; \
else \
test -f $(DESTDIR)$(datadir)/libtool/libltdl/$$file \
|| cp -p $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file || :; \
fi; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,6 +1,6 @@
## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
## Copyright (C) 1996-1999 Free Software Foundation, Inc.
## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
## Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@ -21,7 +21,7 @@
## configuration script generated by Autoconf, you may include it under
## the same distribution terms that you use for the rest of that program.
# serial 40 AC_PROG_LIBTOOL
# serial 35 AC_PROG_LIBTOOL
AC_DEFUN(AC_PROG_LIBTOOL,
[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
@ -30,9 +30,8 @@ AC_CACHE_SAVE
# Actually configure libtool. ac_aux_dir is where install-sh is found.
CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
DLLTOOL="$DLLTOOL" AS="$AS" \
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
|| AC_MSG_ERROR([libtool configure failed])
@ -63,24 +62,25 @@ AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AC_PROG_LD])dnl
AC_REQUIRE([AC_PROG_NM])dnl
AC_REQUIRE([AC_SYS_NM_PARSE])dnl
AC_REQUIRE([AC_SYS_SYMBOL_UNDERSCORE])dnl
AC_REQUIRE([AC_PROG_LN_S])dnl
dnl
# Check for any special flags to pass to ltconfig.
libtool_flags="--cache-file=$cache_file"
#
# the following will cause an existing older ltconfig to fail, so
# we ignore this at the expense of the cache file... Checking this
# will just take longer ... bummer!
#libtool_flags="--cache-file=$cache_file"
#
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
test "$lt_dlopen" = yes && libtool_flags="$libtool_flags --enable-dlopen"
test "$silent" = yes && libtool_flags="$libtool_flags --silent"
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
[libtool_flags="$libtool_flags --enable-dlopen"])
ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
[libtool_flags="$libtool_flags --enable-win32-dll"])
AC_ARG_ENABLE(libtool-lock,
[ --disable-libtool-lock avoid locking (might break parallel builds)])
test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
@ -116,28 +116,33 @@ case "$host" in
fi
;;
ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
[*-*-cygwin* | *-*-mingw*)
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(AS, as, false)
AC_CHECK_TOOL(OBJDUMP, objdump, false)
*-*-cygwin*)
AC_SYS_LIBTOOL_CYGWIN
;;
])
esac
# enable the --disable-libtool-lock switch
AC_ARG_ENABLE(libtool-lock,
[ --disable-libtool-lock force libtool not to do file locking],
need_locks=$enableval,
need_locks=yes)
if test x"$need_locks" = xno; then
libtool_flags="$libtool_flags --disable-lock"
fi
])
# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
# AC_LIBTOOL_DLOPEN - check for dlopen support
AC_DEFUN(AC_LIBTOOL_DLOPEN, [lt_dlopen=yes])
# AC_ENABLE_SHARED - implement the --enable-shared flag
# Usage: AC_ENABLE_SHARED[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
AC_DEFUN(AC_ENABLE_SHARED, [dnl
define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
AC_DEFUN(AC_ENABLE_SHARED,
[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(shared,
changequote(<<, >>)dnl
<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
@ -162,15 +167,15 @@ enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
])
# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
AC_ENABLE_SHARED(no)])
AC_DEFUN(AC_DISABLE_SHARED,
[AC_ENABLE_SHARED(no)])
# AC_ENABLE_STATIC - implement the --enable-static flag
# Usage: AC_ENABLE_STATIC[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
AC_DEFUN(AC_ENABLE_STATIC, [dnl
define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
AC_DEFUN(AC_ENABLE_STATIC,
[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(static,
changequote(<<, >>)dnl
<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
@ -195,16 +200,16 @@ enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
])
# AC_DISABLE_STATIC - set the default static flag to --disable-static
AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
AC_ENABLE_STATIC(no)])
AC_DEFUN(AC_DISABLE_STATIC,
[AC_ENABLE_STATIC(no)])
# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
AC_DEFUN(AC_ENABLE_FAST_INSTALL,
[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(fast-install,
changequote(<<, >>)dnl
<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
@ -229,8 +234,9 @@ enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
])
# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
AC_ENABLE_FAST_INSTALL(no)])
AC_DEFUN(AC_DISABLE_FAST_INSTALL,
[AC_ENABLE_FAST_INSTALL(no)])
# AC_PROG_LD - find the path to the GNU or non-GNU linker
AC_DEFUN(AC_PROG_LD,
@ -248,7 +254,7 @@ if test "$ac_cv_prog_gcc" = yes; then
case "$ac_prog" in
# Accept absolute paths.
changequote(,)dnl
[\\/]* | [A-Za-z]:[\\/]*)
/* | [A-Za-z]:[\\/]*)
re_direlt='/[^/][^/]*/\.\./'
changequote([,])dnl
# Canonicalize the path of ld
@ -274,10 +280,10 @@ else
fi
AC_CACHE_VAL(ac_cv_path_LD,
[if test -z "$LD"; then
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
if test -f "$ac_dir/$ac_prog"; then
ac_cv_path_LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v.
@ -322,10 +328,10 @@ AC_CACHE_VAL(ac_cv_path_NM,
# Let the user override the test.
ac_cv_path_NM="$NM"
else
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
if test -f $ac_dir/nm; then
# Check to see if the nm accepts a BSD-compat flag.
# Adding the `sed 1q' prevents false positives on HP-UX, which says:
# nm: unknown option "B" ignored
@ -349,22 +355,227 @@ AC_MSG_RESULT([$NM])
AC_SUBST(NM)
])
# AC_CHECK_LIBM - check for math library
AC_DEFUN(AC_CHECK_LIBM,
# AC_SYS_NM_PARSE - Check for command to grab the raw symbol name followed
# by C symbol name from nm.
AC_DEFUN(AC_SYS_NM_PARSE,
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
LIBM=
case "$host" in
*-*-beos* | *-*-cygwin*)
# These system don't have libm
AC_REQUIRE([AC_PROG_NM])dnl
# Check for command to grab the raw symbol name followed by C symbol from nm.
AC_MSG_CHECKING([command to parse $NM output])
AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe,
[# These are sane defaults that work on at least a few old systems.
# {They come from Ultrix. What could be older than Ultrix?!! ;)}
changequote(,)dnl
# Character class describing NM global symbol codes.
ac_symcode='[BCDEGRST]'
# Regexp to match symbols that can be accessed directly from C.
ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
# Transform the above into a raw symbol and a C symbol.
ac_symxfrm='\1 \2\3 \3'
# Transform an extracted symbol line into a proper C declaration
ac_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
# Define system-specific variables.
case "$host_os" in
aix*)
ac_symcode='[BCDT]'
;;
*-ncr-sysv4.3*)
AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
cygwin* | mingw*)
ac_symcode='[ABCDGISTW]'
;;
*)
AC_CHECK_LIB(m, main, LIBM="-lm")
hpux*)
ac_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
;;
irix*)
ac_symcode='[BCDEGRST]'
;;
solaris*)
ac_symcode='[BDT]'
;;
esac
# If we're using GNU nm, then use its standard symbol codes.
if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
ac_symcode='[ABCDGISTW]'
fi
changequote([,])dnl
# Try without a prefix undercore, then with it.
for ac_symprfx in "" "_"; do
ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($ac_symcode\)[ ][ ]*\($ac_symprfx\)$ac_sympat$/$ac_symxfrm/p'"
# Check to see that the pipe works correctly.
ac_pipe_works=no
rm -f conftest.$ac_ext
cat > conftest.$ac_ext <<EOF
#ifdef __cplusplus
extern "C" {
#endif
char nm_test_var;
void nm_test_func(){}
#ifdef __cplusplus
}
#endif
int main(){nm_test_var='a';nm_test_func;return 0;}
EOF
if AC_TRY_EVAL(ac_compile); then
# Now try to grab the symbols.
ac_nlist=conftest.nm
if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
# Try sorting and uniquifying the output.
if sort "$ac_nlist" | uniq > "$ac_nlist"T; then
mv -f "$ac_nlist"T "$ac_nlist"
else
rm -f "$ac_nlist"T
fi
# Make sure that we snagged all the symbols we need.
if egrep ' nm_test_var$' "$ac_nlist" >/dev/null; then
if egrep ' nm_test_func$' "$ac_nlist" >/dev/null; then
cat <<EOF > conftest.c
#ifdef __cplusplus
extern "C" {
#endif
EOF
# Now generate the symbol file.
eval "$ac_global_symbol_to_cdecl"' < "$ac_nlist" >> conftest.c'
cat <<EOF >> conftest.c
#if defined (__STDC__) && __STDC__
# define lt_ptr_t void *
#else
# define lt_ptr_t char *
# define const
#endif
/* The mapping between symbol names and symbols. */
const struct {
const char *name;
lt_ptr_t address;
}
changequote(,)dnl
lt_preloaded_symbols[] =
changequote([,])dnl
{
EOF
sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c
cat <<\EOF >> conftest.c
{0, (lt_ptr_t) 0}
};
#ifdef __cplusplus
}
#endif
EOF
# Now try linking the two files.
mv conftest.$ac_objext conftestm.$ac_objext
ac_save_LIBS="$LIBS"
ac_save_CFLAGS="$CFLAGS"
LIBS="conftestm.$ac_objext"
CFLAGS="$CFLAGS$no_builtin_flag"
if AC_TRY_EVAL(ac_link) && test -s conftest; then
ac_pipe_works=yes
else
echo "configure: failed program was:" >&AC_FD_CC
cat conftest.c >&AC_FD_CC
fi
LIBS="$ac_save_LIBS"
CFLAGS="$ac_save_CFLAGS"
else
echo "cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
fi
else
echo "cannot find nm_test_var in $ac_nlist" >&AC_FD_CC
fi
else
echo "cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC
fi
else
echo "$progname: failed program was:" >&AC_FD_CC
cat conftest.c >&AC_FD_CC
fi
rm -rf conftest*
# Do not use the global_symbol_pipe unless it works.
if test "$ac_pipe_works" = yes; then
if test x"$ac_symprfx" = x"_"; then
ac_cv_sys_symbol_underscore=yes
else
ac_cv_sys_symbol_underscore=no
fi
break
else
ac_cv_sys_global_symbol_pipe=
fi
done
])
ac_result=yes
if test -z "$ac_cv_sys_global_symbol_pipe"; then
ac_result=no
fi
AC_MSG_RESULT($ac_result)
])
# AC_SYS_LIBTOOL_CYGWIN - find tools needed on cygwin
AC_DEFUN(AC_SYS_LIBTOOL_CYGWIN,
[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(AS, as, false)
])
# AC_SYS_SYMBOL_UNDERSCORE - does the compiler prefix global symbols
# with an underscore?
AC_DEFUN(AC_SYS_SYMBOL_UNDERSCORE,
[AC_REQUIRE([AC_PROG_NM])dnl
AC_REQUIRE([AC_SYS_NM_PARSE])dnl
AC_MSG_CHECKING([for _ prefix in compiled symbols])
AC_CACHE_VAL(ac_cv_sys_symbol_underscore,
[ac_cv_sys_symbol_underscore=no
cat > conftest.$ac_ext <<EOF
void nm_test_func(){}
int main(){nm_test_func;return 0;}
EOF
if AC_TRY_EVAL(ac_compile); then
# Now try to grab the symbols.
ac_nlist=conftest.nm
if AC_TRY_EVAL(NM conftest.$ac_objext \| $ac_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
# See whether the symbols have a leading underscore.
if egrep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
ac_cv_sys_symbol_underscore=yes
else
if egrep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
:
else
echo "configure: cannot find nm_test_func in $ac_nlist" >&AC_FD_CC
fi
fi
else
echo "configure: cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC
fi
else
echo "configure: failed program was:" >&AC_FD_CC
cat conftest.c >&AC_FD_CC
fi
rm -rf conftest*
])
AC_MSG_RESULT($ac_cv_sys_symbol_underscore)
USE_SYMBOL_UNDERSCORE=${ac_cv_sys_symbol_underscore=no}
AC_SUBST(USE_SYMBOL_UNDERSCORE)dnl
])
# AC_CHECK_LIBM - check for math library
AC_DEFUN(AC_CHECK_LIBM, [
AC_CHECK_LIB(mw, _mwvalidcheckl)
AC_CHECK_LIB(m, cos)
])
# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
@ -375,14 +586,13 @@ esac
# '${top_builddir}/' (note the single quotes!) if your package is not
# flat, and, if you're not using automake, define top_builddir as
# appropriate in the Makefiles.
AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [
case "$enable_ltdl_convenience" in
no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
"") enable_ltdl_convenience=yes
ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
esac
LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
])
# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
@ -394,23 +604,16 @@ AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
# flat, and, if you're not using automake, define top_builddir as
# appropriate in the Makefiles.
# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
AC_CHECK_LIB(ltdl, main,
[test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
[if test x"$enable_ltdl_install" = xno; then
AC_MSG_WARN([libltdl not installed, but installation disabled])
else
enable_ltdl_install=yes
fi
AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [
AC_CHECK_LIB(ltdl, main, LIBLTDL="-lltdl", [
case "$enable_ltdl_install" in
no) AC_MSG_WARN([libltdl not installed, but installation disabled]) ;;
"") enable_ltdl_install=yes
ac_configure_args="$ac_configure_args --enable-ltdl-install" ;;
esac
])
if test x"$enable_ltdl_install" = x"yes"; then
ac_configure_args="$ac_configure_args --enable-ltdl-install"
if test x"$enable_ltdl_install" != x"no"; then
LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
else
ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
LIBLTDL="-lltdl"
INCLTDL=
fi
])
@ -422,6 +625,6 @@ AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
dnl This is just to silence aclocal about the macro not being used
ifelse([AC_DISABLE_FAST_INSTALL])dnl
AC_DEFUN(AM_SYS_NM_PARSE, [indir([AC_SYS_NM_PARSE])])dnl
AC_DEFUN(AM_SYS_SYMBOL_UNDERSCORE, [indir([AC_SYS_SYMBOL_UNDERSCORE])])dnl
AC_DEFUN(AM_SYS_LIBTOOL_CYGWIN, [indir([AC_SYS_LIBTOOL_CYGWIN])])dnl

340
libltdl/aclocal.m4 vendored
View File

@ -11,7 +11,7 @@ dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE.
# serial 40 AC_PROG_LIBTOOL
# serial 35 AC_PROG_LIBTOOL
AC_DEFUN(AC_PROG_LIBTOOL,
[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
@ -20,9 +20,8 @@ AC_CACHE_SAVE
# Actually configure libtool. ac_aux_dir is where install-sh is found.
CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
DLLTOOL="$DLLTOOL" AS="$AS" \
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
|| AC_MSG_ERROR([libtool configure failed])
@ -53,6 +52,8 @@ AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AC_PROG_LD])dnl
AC_REQUIRE([AC_PROG_NM])dnl
AC_REQUIRE([AC_SYS_NM_PARSE])dnl
AC_REQUIRE([AC_SYS_SYMBOL_UNDERSCORE])dnl
AC_REQUIRE([AC_PROG_LN_S])dnl
dnl
@ -61,16 +62,10 @@ libtool_flags="--cache-file=$cache_file"
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
test "$lt_dlopen" = yes && libtool_flags="$libtool_flags --enable-dlopen"
test "$silent" = yes && libtool_flags="$libtool_flags --silent"
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
[libtool_flags="$libtool_flags --enable-dlopen"])
ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
[libtool_flags="$libtool_flags --enable-win32-dll"])
AC_ARG_ENABLE(libtool-lock,
[ --disable-libtool-lock avoid locking (might break parallel builds)])
test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
@ -106,28 +101,33 @@ case "$host" in
fi
;;
ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
[*-*-cygwin* | *-*-mingw*)
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(AS, as, false)
AC_CHECK_TOOL(OBJDUMP, objdump, false)
*-*-cygwin*)
AC_SYS_LIBTOOL_CYGWIN
;;
])
esac
# enable the --disable-libtool-lock switch
AC_ARG_ENABLE(libtool-lock,
[ --disable-libtool-lock force libtool not to do file locking],
need_locks=$enableval,
need_locks=yes)
if test x"$need_locks" = xno; then