ImageMagick-6.3.3 / ghostscript-8.54 on Mac OSX

Questions and postings pertaining to the development of ImageMagick, feature enhancements, and ImageMagick internals. ImageMagick source code and algorithms are discussed here. Usage questions which are too arcane for the normal user list should also be posted here.
Post Reply
BuildSmart

ImageMagick-6.3.3 / ghostscript-8.54 on Mac OSX

Post by BuildSmart »

Well, this is starting to look much better however some issues and errors still exist and some cosmetic issues so I'd like to resolve these as quickly as possible so a diff can be generated and applied to head.

I've cleaned up the configure.ac, fixed the errors in it and modified a couple of the macros so I need assistance from someone to regenerate the aclocal.m4 and configure script because I am unable to perform the actions due to version differences.

You can contact me at my aim account (mrdalewalsh@aol.com) and we can proceed with the project.
BuildSmart

Re: ImageMagick-6.3.3 / ghostscript-8.54 on Mac OSX

Post by BuildSmart »

I thought there was some kind of issue with fontconfig and ImageMagick in Darwin / Mac OSX but I just noticed that the version requirement is 2.4.1 so I started going over the fontconfig API's all the way back to 2.0.8 which meets the ImageMagick requirements and anything below this version has one or more required functions missings so I believe it's safe to reduce the version level to 2.1.0 and it will meet the Darwin / Mac OSX 10.3.x and 10.4.x fontconfig version.
User avatar
magick
Site Admin
Posts: 11064
Joined: 2003-05-31T11:32:55-07:00

Re: ImageMagick-6.3.3 / ghostscript-8.54 on Mac OSX

Post by magick »

We patched ImageMagick 6.3.3-1 Beta to validate against fontconf version 2.1.0 and above. Thanks for the problem report and solution.
BuildSmart

Re: ImageMagick-6.3.3 / ghostscript-8.54 on Mac OSX

Post by BuildSmart »

Well it wasn't as simple as expected however a simple solution exists, there are some define differences in newer versions so a little patching is required, I did trace it back to a particular version so we should be able to just test the version and compensate to be OK.

This is what I have so far that seems to work:

Code: Select all

diff -Naur magick/type.c.orig magick/type.c 
--- magick/type.c.orig  2007-02-25 09:33:32.000000000 -0800
+++ magick/type.c       2007-03-08 21:58:34.000000000 -0800
@@ -59,6 +59,38 @@
 #include "magick/xml-tree.h"
 #if defined(HasFONTCONFIG)
 # include "fontconfig/fontconfig.h"
+#ifdef FC_VERSION < 20209
+/* redefine this value without generating an error */
+#undef FC_WEIGHT_LIGHT
+
+/* define the missing values */
+#define FC_WIDTH                  "width"    /* Int */
+#define FC_WIDTH_ULTRACONDENSED    50
+#define FC_WIDTH_EXTRACONDENSED    63
+#define FC_WIDTH_CONDENSED         75
+#define FC_WIDTH_SEMICONDENSED     87
+#define FC_WIDTH_NORMAL            100
+#define FC_WIDTH_SEMIEXPANDED      113
+#define FC_WIDTH_EXPANDED          125
+#define FC_WIDTH_EXTRAEXPANDED     150
+#define FC_WIDTH_ULTRAEXPANDED     200
+
+#define FC_WEIGHT_THIN             0
+#define FC_WEIGHT_EXTRALIGHT       40
+#define FC_WEIGHT_ULTRALIGHT       FC_WEIGHT_EXTRALIGHT
+#define FC_WEIGHT_LIGHT            50
+#define FC_WEIGHT_BOOK             75
+#define FC_WEIGHT_REGULAR          80
+#define FC_WEIGHT_NORMAL           FC_WEIGHT_REGULAR
+#define FC_WEIGHT_MEDIUM           100
+#define FC_WEIGHT_DEMIBOLD         180
+#define FC_WEIGHT_SEMIBOLD         FC_WEIGHT_DEMIBOLD
+#define FC_WEIGHT_BOLD             200
+#define FC_WEIGHT_EXTRABOLD        205
+#define FC_WEIGHT_ULTRABOLD        FC_WEIGHT_EXTRABOLD
+#define FC_WEIGHT_BLACK            210
+#define FC_WEIGHT_HEAVY            FC_WEIGHT_BLACK
+#endif
 #endif
 #if defined(__WINDOWS__)
 # include "magick/nt-feature.h"</pre>
Along with enabling gcov, we need to add an ldflag to the link phase for the building the shared library of libMagick and I believe we can just do:

Code: Select all

diff -Naur magick/Makefile.am.orig magick/Makefile.am 
--- magick/Makefile.am.orig  2007-02-25 09:33:32.000000000 -0800
+++ magick/Makefile.am       2007-03-08 21:58:34.000000000 -0800
@ -30,4 +30,6
   magick/Magick-config.1
 
 LIBMAGICK = magick/libMagick.la
+
+OSX_GCOV_LDFLAG = @OSX_GCOV_LDFLAG@
 
@ -39,7 +40,7
 magick_libMagick_la_LIBADD = $(MAGICK_DEP_LIBS) $(LIBLTDL)
 endif # WITH_MODULES
 magick_libMagick_la_CPPFLAGS = -I$(top_builddir)/ltdl -I$(top_srcdir)/ltdl $(LIBRARY_EXTRA_CPPFLAGS)
-magick_libMagick_la_LDFLAGS = -no-undefined \
+magick_libMagick_la_LDFLAGS = -no-undefined $(OSX_GCOV_LDFLAG) \
 	-version-info $(LIBRARY_CURRENT):$(LIBRARY_REVISION):$(LIBRARY_AGE)
 
 if CONVENIENCE_LTDL
Then near the end of configure.ac we add

Code: Select all

case "$target_os" in
    darwin*)
        OSX_GCOV_LDFLAG="-Wl,-single_module"
    ;;
    *)
        OSX_GCOV_LDFLAG=""
    ;;
esac
AC_SUBST(OSX_GCOV_LDFLAG)
and that should resolve all of the fontconfig issues.

Maybe I can get a test script where it will make use of fontconfig or perform some general graphic manipulations to ensure that all of the features work properly?
User avatar
magick
Site Admin
Posts: 11064
Joined: 2003-05-31T11:32:55-07:00

Re: ImageMagick-6.3.3 / ghostscript-8.54 on Mac OSX

Post by magick »

Ok, got your patches into ImageMagick 6.3.3-1 Beta, available sometime tommorrow. Thanks.
sanket

Re: ImageMagick-6.3.3 / ghostscript-8.54 on Mac OSX

Post by sanket »

Hi,

I have installed IM and Ghost script on MACOSX. When i try to convert an EPS file to JPEG it gives me an exception

convert: no decode delegate for this image format `AAAZASY0.eps'.
convert: missing an image filename `AAAZASY0.jpeg'.

Please help me.
Post Reply