From e80f9cbd9638c347a62b243cbc7dc60f305c4994 Mon Sep 17 00:00:00 2001 From: cristy Date: Wed, 9 Jan 2013 01:09:31 +0000 Subject: [PATCH] --- MagickCore/MagickCore.h | 1 + MagickCore/Makefile.am | 5 + MagickCore/cache-private.h | 17 +-- MagickCore/cache.c | 125 ---------------- MagickCore/cache.h | 1 - MagickCore/distribute-cache-private.h | 38 +++++ MagickCore/distribute-cache.c | 185 ++++++++++++++++++++++++ MagickCore/distribute-cache.h | 32 +++++ MagickCore/magick-baseconfig.h | 3 + MagickCore/version.h | 2 +- MagickWand/mogrify.c | 4 +- Makefile.in | 21 ++- config/config.h.in | 3 + configure | 196 ++++++++++++++++++++------ 14 files changed, 445 insertions(+), 188 deletions(-) create mode 100644 MagickCore/distribute-cache-private.h create mode 100644 MagickCore/distribute-cache.c create mode 100644 MagickCore/distribute-cache.h diff --git a/MagickCore/MagickCore.h b/MagickCore/MagickCore.h index e38dc64cd..4621d7636 100644 --- a/MagickCore/MagickCore.h +++ b/MagickCore/MagickCore.h @@ -87,6 +87,7 @@ extern "C" { #include "MagickCore/deprecate.h" #include "MagickCore/display.h" #include "MagickCore/distort.h" +#include "MagickCore/distribute-cache.h" #include "MagickCore/draw.h" #include "MagickCore/effect.h" #include "MagickCore/enhance.h" diff --git a/MagickCore/Makefile.am b/MagickCore/Makefile.am index 473b7b6d0..16e919e54 100644 --- a/MagickCore/Makefile.am +++ b/MagickCore/Makefile.am @@ -123,6 +123,9 @@ MAGICKCORE_BASE_SRCS = \ MagickCore/display-private.h \ MagickCore/distort.c \ MagickCore/distort.h \ + MagickCore/distribute-cache.c \ + MagickCore/distribute-cache.h \ + MagickCore/distribute-cache-private.h \ MagickCore/draw.c \ MagickCore/draw.h \ MagickCore/draw-private.h \ @@ -332,6 +335,7 @@ MAGICKCORE_INCLUDE_HDRS = \ MagickCore/deprecate.h \ MagickCore/display.h \ MagickCore/distort.h \ + MagickCore/distribute-cache.h \ MagickCore/draw.h \ MagickCore/effect.h \ MagickCore/enhance.h \ @@ -416,6 +420,7 @@ MAGICKCORE_NOINST_HDRS = \ MagickCore/delegate-private.h \ MagickCore/delegate-private.h \ MagickCore/display-private.h \ + MagickCore/distribute-cache-private.h \ MagickCore/draw-private.h \ MagickCore/exception-private.h \ MagickCore/fx-private.h \ diff --git a/MagickCore/cache-private.h b/MagickCore/cache-private.h index cb2b3ec0e..6ebe15547 100644 --- a/MagickCore/cache-private.h +++ b/MagickCore/cache-private.h @@ -24,13 +24,13 @@ extern "C" { #include #include "MagickCore/cache.h" +#include "MagickCore/distribute-cache.h" +#include "MagickCore/distribute-cache-private.h" #include "MagickCore/pixel.h" #include "MagickCore/random_.h" #include "MagickCore/thread-private.h" #include "MagickCore/semaphore.h" -#define MaxNumberDistributedCacheClients 32 - typedef void *Cache; @@ -102,17 +102,6 @@ typedef struct _CacheMethods destroy_pixel_handler; } CacheMethods; -typedef struct _DistributedCacheInfo -{ -#if defined(MAGICKCORE_HAVE_SOCKET) - int - server; -#endif - - size_t - session; -} DistributedCacheInfo; - typedef struct _NexusInfo NexusInfo; @@ -190,7 +179,7 @@ typedef struct _CacheInfo ssize_t number_connections; - DistributedCacheInfo + DistributeCacheInfo connection[MaxNumberDistributedCacheClients]; MagickBooleanType diff --git a/MagickCore/cache.c b/MagickCore/cache.c index c4aac1dc6..0a44b11a6 100644 --- a/MagickCore/cache.c +++ b/MagickCore/cache.c @@ -1112,131 +1112,6 @@ MagickPrivate void ClonePixelCacheMethods(Cache clone,const Cache cache) % % % % % % -+ D i s t r i b u t e d P i x e l C a c h e % -% % -% % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% DistributedPixelCache() waits on the specified port for commands to -% create, read, update, or destroy a pixel cache. -% -% The format of the DistributedPixelCache() method is: -% -% void DistributedPixelCache(const size_t port) -% -% A description of each parameter follows: -% -% o port: connect the distributed pixel cache at this port. -% -*/ -MagickExport void DistributedPixelCache(const size_t port) -{ -#if defined(MAGICKCORE_HAVE_SOCKET) - char - buffer[MaxTextExtent]; - - int - cache_socket, - cache_client, - status; - - socklen_t - length, - one; - - ssize_t - count; - - struct sockaddr_in - address; - - cache_socket=socket(AF_INET,SOCK_STREAM,0); - if (cache_socket == -1) - { - perror("Distributed pixel cache: server socket"); - exit(1); - } - one=1; - status=setsockopt(cache_socket,SOL_SOCKET,SO_REUSEADDR,&one,(socklen_t) - sizeof(one)); - if (status == -1) - { - perror("Distributed pixel cache: server setsockopt"); - exit(1); - } - (void) ResetMagickMemory(&address,0,sizeof(address)); - address.sin_family=AF_INET; - address.sin_port=htons(port); - address.sin_addr.s_addr=INADDR_ANY; - status=bind(cache_socket,(struct sockaddr *) &address,(socklen_t) - sizeof(address)); - if (status == -1) - { - perror("Distributed pixel cache: server bind"); - exit(1); - } - status=listen(cache_socket,5); - if (status == -1) - { - perror("Distributed pixel cache: server listen"); - exit(1); - } - (void) fprintf(stdout, - "Distributed pixel cache server: waiting for client on port %d\n",(int) - port); - (void) fflush(stdout); - for ( ; ; ) - { - length=(socklen_t) sizeof(address); - cache_client=accept(cache_socket,(struct sockaddr *) &address,&length); - (void) fprintf(stdout,"Connection from (%s, %d)\n", - inet_ntoa(address.sin_addr),(int) ntohs(address.sin_port)); - count=recv(cache_client,buffer,1,0); - buffer[count]='\0'; - switch (*buffer) - { - case 'c': - { - /* - Create cache. - */ - break; - } - case 'r': - { - /* - Rad cache. - */ - break; - } - case 'u': - { - /* - Update cache. - */ - break; - } - case 'd': - { - /* - Delete cache. - */ - break; - } - } - } -#else - (void) ThrowMagickException(exception,GetMagickModule(),MissingDelegateError, - "DelegateLibrarySupportNotBuiltIn","'%s' (socket)",image_info->filename); -#endif -} - -/* -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% % -% % + D e s t r o y I m a g e P i x e l C a c h e % % % % % diff --git a/MagickCore/cache.h b/MagickCore/cache.h index c2f5ad6fe..8c2311c94 100644 --- a/MagickCore/cache.h +++ b/MagickCore/cache.h @@ -67,7 +67,6 @@ extern MagickExport Quantum const size_t,ExceptionInfo *) magick_hot_spot; extern MagickExport void - DistributedPixelCache(const size_t), *GetAuthenticMetacontent(const Image *); #if defined(__cplusplus) || defined(c_plusplus) diff --git a/MagickCore/distribute-cache-private.h b/MagickCore/distribute-cache-private.h new file mode 100644 index 000000000..fc87da685 --- /dev/null +++ b/MagickCore/distribute-cache-private.h @@ -0,0 +1,38 @@ +/* + Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + http://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore distributed cache private methods. +*/ +#ifndef _MAGICKCORE_DISTRIBUTE_CACHE_PRIVATE_H +#define _MAGICKCORE_DISTRIBUTE_CACHE_PRIVATE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define MaxNumberDistributedCacheClients 32 + +typedef struct _DistributeCacheInfo +{ +#if defined(MAGICKCORE_HAVE_SOCKET) + int + server; +#endif + + size_t + session; +} DistributeCacheInfo; + +#endif diff --git a/MagickCore/distribute-cache.c b/MagickCore/distribute-cache.c new file mode 100644 index 000000000..15a20118f --- /dev/null +++ b/MagickCore/distribute-cache.c @@ -0,0 +1,185 @@ +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% DDDD IIIII SSSSS TTTTT RRRR IIIII BBBB U U TTTTT EEEEE % +% D D I SS T R R I B B U U T E % +% D D I SSS T RRRR I BBBB U U T EEE % +% D D I SS T R R I B B U U T E % +% DDDDA IIIII SSSSS T R R IIIII BBBB UUU T EEEEE % +% % +% CCCC AAA CCCC H H EEEEE % +% C A A C H H E % +% C AAAAA C HHHHH EEE % +% C A A C H H E % +% CCCC A A CCCC H H EEEEE % +% % +% % +% MagickCore Distributed Pixel Cache Methods % +% % +% Software Design % +% John Cristy % +% January 2013 % +% % +% % +% Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization % +% dedicated to making software imaging solutions freely available. % +% % +% You may not use this file except in compliance with the License. You may % +% obtain a copy of the License at % +% % +% http://www.imagemagick.org/script/license.php % +% % +% Unless required by applicable law or agreed to in writing, software % +% distributed under the License is distributed on an "AS IS" BASIS, % +% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. % +% See the License for the specific language governing permissions and % +% limitations under the License. % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% A distributed pixel cache is an extension of the traditional pixel cache +% available on a single host. The distributed pixel cache may span multiple +% servers so that it can grow in size and transactional capacity to support +% very large images. Start up the pixel cache server on one or more machines. +% When you read or operate on an image and the local pixel cache resources are +% exhausted, ImageMagick contacts one or more of these remote pixel servers to +% store or retrieve pixels. +% +*/ + +/* + Include declarations. +*/ +#include "MagickCore/studio.h" +#include "MagickCore/memory_.h" +#if defined(MAGICKCORE_HAVE_SOCKET) +#include +#include +#include +#endif + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % ++ P i x e l C a c h e S e r v e r % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% PixelCacheServer() waits on the specified port for commands to create, read, +% update, or destroy a pixel cache. +% +% The format of the PixelCacheServer() method is: +% +% void PixelCacheServer(const size_t port) +% +% A description of each parameter follows: +% +% o port: connect the distributed pixel cache at this port. +% +*/ +MagickExport void PixelCacheServer(const size_t port) +{ +#if defined(MAGICKCORE_HAVE_SOCKET) + char + buffer[MaxTextExtent]; + + int + cache_socket, + cache_client, + status; + + socklen_t + length, + one; + + ssize_t + count; + + struct sockaddr_in + address; + + cache_socket=socket(AF_INET,SOCK_STREAM,0); + if (cache_socket == -1) + { + perror("Distributed pixel cache: server socket"); + exit(1); + } + one=1; + status=setsockopt(cache_socket,SOL_SOCKET,SO_REUSEADDR,&one,(socklen_t) + sizeof(one)); + if (status == -1) + { + perror("Distributed pixel cache: server setsockopt"); + exit(1); + } + (void) ResetMagickMemory(&address,0,sizeof(address)); + address.sin_family=AF_INET; + address.sin_port=htons(port); + address.sin_addr.s_addr=INADDR_ANY; + status=bind(cache_socket,(struct sockaddr *) &address,(socklen_t) + sizeof(address)); + if (status == -1) + { + perror("Distributed pixel cache: server bind"); + exit(1); + } + status=listen(cache_socket,5); + if (status == -1) + { + perror("Distributed pixel cache: server listen"); + exit(1); + } + (void) fprintf(stdout, + "Distributed pixel cache server: waiting for client on port %d\n",(int) + port); + (void) fflush(stdout); + for ( ; ; ) + { + length=(socklen_t) sizeof(address); + cache_client=accept(cache_socket,(struct sockaddr *) &address,&length); + (void) fprintf(stdout,"Connection from (%s, %d)\n", + inet_ntoa(address.sin_addr),(int) ntohs(address.sin_port)); + count=recv(cache_client,buffer,1,0); + buffer[count]='\0'; + switch (*buffer) + { + case 'c': + { + /* + Create cache. + */ + break; + } + case 'r': + { + /* + Read cache. + */ + break; + } + case 'u': + { + /* + Update cache. + */ + break; + } + case 'd': + { + /* + Delete cache. + */ + break; + } + } + } +#else + (void) ThrowMagickException(exception,GetMagickModule(),MissingDelegateError, + "DelegateLibrarySupportNotBuiltIn","'%s' (socket)",image_info->filename); +#endif +} diff --git a/MagickCore/distribute-cache.h b/MagickCore/distribute-cache.h new file mode 100644 index 000000000..6838e4d0a --- /dev/null +++ b/MagickCore/distribute-cache.h @@ -0,0 +1,32 @@ +/* + Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization + dedicated to making software imaging solutions freely available. + + You may not use this file except in compliance with the License. + obtain a copy of the License at + + http://www.imagemagick.org/script/license.php + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + MagickCore distributed cache methods. +*/ +#ifndef _MAGICKCORE_DISTRIBUTE_CACHE_H +#define _MAGICKCORE_DISTRIBUTE_CACHE_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +extern MagickExport void + PixelCacheServer(const size_t); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif + +#endif diff --git a/MagickCore/magick-baseconfig.h b/MagickCore/magick-baseconfig.h index 79034570b..77969af4f 100644 --- a/MagickCore/magick-baseconfig.h +++ b/MagickCore/magick-baseconfig.h @@ -1524,6 +1524,9 @@ /* Define to appropriate substitue if compiler does not have __func__ */ /* #undef __func__ */ +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + /* Define to `int' if doesn't define. */ /* #undef gid_t */ diff --git a/MagickCore/version.h b/MagickCore/version.h index 8847b2249..bfc731c9c 100644 --- a/MagickCore/version.h +++ b/MagickCore/version.h @@ -27,7 +27,7 @@ extern "C" { */ #define MagickPackageName "ImageMagick" #define MagickCopyright "Copyright (C) 1999-2013 ImageMagick Studio LLC" -#define MagickSVNRevision "10535:10562" +#define MagickSVNRevision "10572:10583M" #define MagickLibVersion 0x700 #define MagickLibVersionText "7.0.0" #define MagickLibVersionNumber 8,0,0 diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c index 241482938..0d3ebe357 100644 --- a/MagickWand/mogrify.c +++ b/MagickWand/mogrify.c @@ -46,8 +46,8 @@ */ #include "MagickWand/studio.h" #include "MagickWand/MagickWand.h" -#include "MagickCore/image-private.h" #include "MagickWand/mogrify-private.h" +#include "MagickCore/image-private.h" #include "MagickCore/monitor-private.h" #include "MagickCore/string-private.h" #include "MagickCore/thread-private.h" @@ -152,7 +152,7 @@ WandExport MagickBooleanType MagickCommandGenesis(ImageInfo *image_info, (void) SetLogEventMask(argv[++i]); if (LocaleCompare("-distribute-cache",option) == 0) { - DistributedPixelCache(StringToUnsignedLong(argv[++i])); + PixelCacheServer(StringToUnsignedLong(argv[++i])); exit(0); } if (LocaleCompare("-duration",option) == 0) diff --git a/Makefile.in b/Makefile.in index 24d043a68..12354e9d3 100644 --- a/Makefile.in +++ b/Makefile.in @@ -432,7 +432,9 @@ am__MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_SOURCES_DIST = \ MagickCore/delegate-private.h MagickCore/deprecate.c \ MagickCore/deprecate.h MagickCore/display.c \ MagickCore/display.h MagickCore/display-private.h \ - MagickCore/distort.c MagickCore/distort.h MagickCore/draw.c \ + MagickCore/distort.c MagickCore/distort.h \ + MagickCore/distribute-cache.c MagickCore/distribute-cache.h \ + MagickCore/distribute-cache-private.h MagickCore/draw.c \ MagickCore/draw.h MagickCore/draw-private.h \ MagickCore/effect.c MagickCore/effect.h MagickCore/enhance.c \ MagickCore/enhance.h MagickCore/exception.c \ @@ -561,6 +563,7 @@ am__objects_1 = MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-accel MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-deprecate.lo \ MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-display.lo \ MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distort.lo \ + MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo \ MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo \ MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-effect.lo \ MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-enhance.lo \ @@ -4077,6 +4080,9 @@ MAGICKCORE_BASE_SRCS = \ MagickCore/display-private.h \ MagickCore/distort.c \ MagickCore/distort.h \ + MagickCore/distribute-cache.c \ + MagickCore/distribute-cache.h \ + MagickCore/distribute-cache-private.h \ MagickCore/draw.c \ MagickCore/draw.h \ MagickCore/draw-private.h \ @@ -4281,6 +4287,7 @@ MAGICKCORE_INCLUDE_HDRS = \ MagickCore/deprecate.h \ MagickCore/display.h \ MagickCore/distort.h \ + MagickCore/distribute-cache.h \ MagickCore/draw.h \ MagickCore/effect.h \ MagickCore/enhance.h \ @@ -4365,6 +4372,7 @@ MAGICKCORE_NOINST_HDRS = \ MagickCore/delegate-private.h \ MagickCore/delegate-private.h \ MagickCore/display-private.h \ + MagickCore/distribute-cache-private.h \ MagickCore/draw-private.h \ MagickCore/exception-private.h \ MagickCore/fx-private.h \ @@ -5343,6 +5351,9 @@ MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-display.lo: \ MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distort.lo: \ MagickCore/$(am__dirstamp) \ MagickCore/$(DEPDIR)/$(am__dirstamp) +MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo: \ + MagickCore/$(am__dirstamp) \ + MagickCore/$(DEPDIR)/$(am__dirstamp) MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo: \ MagickCore/$(am__dirstamp) \ MagickCore/$(DEPDIR)/$(am__dirstamp) @@ -6740,6 +6751,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-deprecate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-display.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distort.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-effect.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-enhance.Plo@am__quote@ @@ -7285,6 +7297,13 @@ MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distort.lo: MagickCor @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distort.lo `test -f 'MagickCore/distort.c' || echo '$(srcdir)/'`MagickCore/distort.c +MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo: MagickCore/distribute-cache.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo -MD -MP -MF MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.Tpo -c -o MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo `test -f 'MagickCore/distribute-cache.c' || echo '$(srcdir)/'`MagickCore/distribute-cache.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.Tpo MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='MagickCore/distribute-cache.c' object='MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-distribute-cache.lo `test -f 'MagickCore/distribute-cache.c' || echo '$(srcdir)/'`MagickCore/distribute-cache.c + MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo: MagickCore/draw.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo -MD -MP -MF MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.Tpo -c -o MagickCore/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.lo `test -f 'MagickCore/draw.c' || echo '$(srcdir)/'`MagickCore/draw.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.Tpo MagickCore/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_ABI_SUFFIX@_la-draw.Plo diff --git a/config/config.h.in b/config/config.h.in index 4bc387309..f3b4e1cf9 100644 --- a/config/config.h.in +++ b/config/config.h.in @@ -1043,6 +1043,9 @@ /* Define to appropriate substitue if compiler does not have __func__ */ #undef __func__ +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + /* Define to `int' if doesn't define. */ #undef gid_t diff --git a/configure b/configure index cfe36e497..235a68482 100755 --- a/configure +++ b/configure @@ -3650,7 +3650,7 @@ MAGICK_LIBRARY_CURRENT_MIN=`expr $MAGICK_LIBRARY_CURRENT - $MAGICK_LIBRARY_AGE` MAGICK_LIBRARY_VERSION_INFO=$MAGICK_LIBRARY_CURRENT:$MAGICK_LIBRARY_REVISION:$MAGICK_LIBRARY_AGE -MAGICK_SVN_REVISION=10535:10562 +MAGICK_SVN_REVISION=10572:10583M @@ -21884,9 +21884,123 @@ $as_echo "$ac_cv_sys_interpreter" >&6; } interpval=$ac_cv_sys_interpreter -# If the C compiler supports the keyword inline, do nothing. Otherwise -# define inline to __inline__ or __inline if it accepts one of those, -# otherwise define inline to be empty. +# +# Checks for language qualifiers and semantics. +# +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5 +$as_echo_n "checking whether char is unsigned... " >&6; } +if ${ac_cv_c_char_unsigned+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((char) -1) < 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_char_unsigned=no +else + ac_cv_c_char_unsigned=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5 +$as_echo "$ac_cv_c_char_unsigned" >&6; } +if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then + $as_echo "#define __CHAR_UNSIGNED__ 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if ${ac_cv_c_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + +#ifndef __cplusplus + /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; + const charset cs = { 0, 0 }; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_const=yes +else + ac_cv_c_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +$as_echo "#define const /**/" >>confdefs.h + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : @@ -21929,10 +22043,6 @@ _ACEOF ;; esac - -# If the C compiler supports the keyword restrict, do nothing. Otherwise -# define restrict to __restrict__ or __restrict if it accepts one of those, -# otherwise define restrict to be empty. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 $as_echo_n "checking for C/C++ restrict keyword... " >&6; } if ${ac_cv_c_restrict+:} false; then : @@ -21979,6 +22089,40 @@ _ACEOF ;; esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5 +$as_echo_n "checking for working volatile... " >&6; } +if ${ac_cv_c_volatile+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + +volatile int x; +int * volatile y = (int *) 0; +return !x && !y; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_volatile=yes +else + ac_cv_c_volatile=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5 +$as_echo "$ac_cv_c_volatile" >&6; } +if test $ac_cv_c_volatile = no; then + +$as_echo "#define volatile /**/" >>confdefs.h + +fi + # If words are stored with the most significant byte first (like # Motorola and SPARC CPUs), define `WORDS_BIGENDIAN'. @@ -22866,42 +23010,6 @@ $as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h fi -# If the C type char is unsigned, define __CHAR_UNSIGNED__, unless the -# C compiler predefines it. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5 -$as_echo_n "checking whether char is unsigned... " >&6; } -if ${ac_cv_c_char_unsigned+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((char) -1) < 0)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_char_unsigned=no -else - ac_cv_c_char_unsigned=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5 -$as_echo "$ac_cv_c_char_unsigned" >&6; } -if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then - $as_echo "#define __CHAR_UNSIGNED__ 1" >>confdefs.h - -fi - - # Float_t and double_t are intended to be the the most efficient type. ac_fn_c_check_type "$LINENO" "float_t" "ac_cv_type_float_t" "#include " -- 2.40.0