1This file provides platform specific portability notes which don't 2belong in README.txt. Usually ImageMagick compiles fine according to the 3procedures described in README.txt, but sometimes a platform related 4oddity causes a failure. 5 6Cygwin 7====== 8 9 Problem 10 11 PerlMagick fails to link. 12 13 Indications 14 15 libperl.a is not found. 16 17 Solution 18 19 Configure like 20 21 ./configure --enable-shared 22 23 or 24 25 ./configure --enable-shared --with-modules 26 27 Cygwin doesn't normally come with a libperl.a but it does come with the 28 equivalent DLL. Using a shared build gets PerlMagick over the hurdle. 29 30 31SGI Irix 32========= 33 34 Problem 35 36 How to successfully configure ImageMagick using SGI's commercial 37 compiler (e.g. IRIX C/C++ v7.3.1.X)? 38 39 Indications 40 41 Compiling C++ code fails with the error: 42 #error directive: This header file requires the -LANG:std option 43 44 Solution 45 46 Configure like 47 48 CC=cc CFLAGS="-O2 -OPT:Olimit=0" CXX=CC \ 49 CXXFLAGS="-LANG:std -Wl,-woff,84 -O2" CXXCPP="CC -LANG:std -E" \ 50 ./configure --with-modules --with-threads ... 51 52 with the following in /etc/compiler.defaults 53 54 -DEFAULT:abi=n32:isa=mips3 55 56 57Linux 6.1 58========= 59 60 Problem 61 62 When '-rpath /somedir' is added to LDFLAGS in order to tell the 63 linker to apply a run-time linker path, configure fails. 64 65 Indications 66 67 The configure script prints the error message 68 69 checking for executable suffix... 70 configure: error: cannot compute EXEEXT: 71 72 and the error message 73 74 gcc: unrecognized option `-rpath' 75 76 is written to config.log 77 78 Solution 79 80 Use 'LDFLAGS=-Wl,-rpath,/somedir' instead to pass the options through 81 to the linker. 82 83 84FreeBSD 3.X and 4.X 85=================== 86 87 Problem 88 89 ImageMagick does not run after it is installed. The system does not 90 see an installed shared library until the 'ldconfig' command has 91 been executed (as root) using the correct options. 92 93 Indications 94 95 System fails to find shared library needed by ImageMagick. 96 97 Solution 98 99 Either reboot the system (which automatically runs ldconfig) or 100 execute 101 102 /sbin/ldconfig -m ${PREFIX}/lib 103 104 where ${PREFIX} is the prefix used when configuring ImageMagick 105 (default /usr/local). 106 107 108Digital Unix and OSF/1 109====================== 110 111 Problem 112 113 Digital Unix provides an outdated JPEG shared library as part of the 114 system. 115 116 Indications 117 118 ImageMagick fails to link. 119 120 Solution 121 122 Ensure that the JPEG library you installed is used. Be sure to 123 install the JPEG library as a shared library. 124 125 126Solaris 2.X 127============ 128 129 Problem 130 131 An outdated delegate library is used rather than the one just 132 installed. 133 134 Indications 135 136 o Failure to link due to unresolved symbols 137 o Failure to run properly 138 o The command 'ldd `which convert`' lists the wrong library. 139 140 Solution 141 142 If the problem library is a shared library (.so extension) then 143 install your own library as a shared library. Then add the required 144 -L and -R options to find your shared library at both link and run 145 time. For example, if your library is installed in /usr/local/lib: 146 147 configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib' 148 149 Problem 150 151 An outdated libtiff.so (libtiff.so.3) is installed in 152 /usr/openwin/lib. This library may be used by accident rather than 153 the intended libtiff.so, or libtiff.a. In particular, the linker 154 generally considers linking against a shared library before it 155 considers static libraries, so the system libtiff.so may be used 156 even though there is an installed libtiff.a earlier in the linker 157 search path. 158 159 Indications 160 161 ImageMagick fails to link or load TIFF files. 162 163 Solution 164 165 o Install libtiff as a shared library, and make sure that LDFLAGS 166 contains the required -L and -R options to find your shared 167 library at both link and run time. For example, if libtiff.so is 168 installed in /usr/local/lib: 169 170 configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib' 171 172 or 173 174 o Remove /usr/openwin/lib/libtiff.so.3. Note that if you take this 175 step, some tools like 'imagetool' and 'pageview' will stop working. 176 177 Problem 178 179 When using gcc 3.0.X, configure decides that the compiler is insufficient 180 to compile Magick++. 181 182 Indications 183 184 Fails ISO C++ test. 185 186 Solution 187 188 The problem is due to gcc provided headers undefining 189 Solaris-provided defines for 64-bit versions of stdio functions. The 190 solution is to either configure with --disable-largefile or edit the 191 installed g++-v3/bits/std_cstdio.h to bracket the offending undefs 192 (for fgetpos, fopen, freopen, fsetpos, & tmpfile) like: 193 194 #if _FILE_OFFSET_BITS != 64 195 #undef fopen 196 #endif 197 198 or 199 200 Install gcc 3.1 (or later) instead. 201 202 Problem 203 204 A static library was used in a shared library build. 205 206 Indications 207 208 Linker prints a warning similar to: 209 210 "ld: fatal: relocations remain against allocatable but non-writable 211 sections" 212 213 Solution 214 215 All libraries used in a shared library build *must* also be shared 216 libraries. Check all libraries referenced in the libtool link 217 command line and verify that all of the referenced libraries are 218 indeed shared libraries. All system libraries are available as 219 shared libraries so it is likely that any static library is locally 220 installed. 221 222AIX 5.X 223============ 224 225 Problem 226 227 The builkd dependacy files are not created. 228 229 Indications 230 231 The build fails with missing .deps/source.PLO errors. 232 233 Solution 234 235 Add --disable-dependency-tracking to your configure command line. 236 237