| OLD | NEW |
| (Empty) |
| 1 # | |
| 2 # This offers a nice overview how to build shared libraries on all platforms | |
| 3 # http://www.fortran-2000.com/ArnaudRecipes/sharedlib.html | |
| 4 # | |
| 5 | |
| 6 AC_DEFUN([AC_LIBREPLACE_STLD], | |
| 7 [ | |
| 8 AC_PATH_PROG(PROG_AR, ar) | |
| 9 | |
| 10 STLD=${PROG_AR} | |
| 11 | |
| 12 AC_SUBST(STLD) | |
| 13 ]) | |
| 14 | |
| 15 AC_DEFUN([AC_LIBREPLACE_STLD_FLAGS], | |
| 16 [ | |
| 17 STLD_FLAGS="-rcs" | |
| 18 AC_SUBST(STLD_FLAGS) | |
| 19 ]) | |
| 20 | |
| 21 AC_DEFUN([AC_LD_EXPORT_DYNAMIC], | |
| 22 [ | |
| 23 saved_LDFLAGS="$LDFLAGS" | |
| 24 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -Wl,--version 2>&1 | grep "GNU ld" >/dev/nul
l]); then | |
| 25 LD_EXPORT_DYNAMIC="-Wl,-export-dynamic" | |
| 26 else | |
| 27 case "$host_os" in | |
| 28 hpux* ) | |
| 29 LD_EXPORT_DYNAMIC="-Wl,-E" | |
| 30 ;; | |
| 31 *) | |
| 32 LD_EXPORT_DYNAMIC="" | |
| 33 ;; | |
| 34 esac | |
| 35 fi | |
| 36 AC_SUBST(LD_EXPORT_DYNAMIC) | |
| 37 LDFLAGS="$saved_LDFLAGS" | |
| 38 ]) | |
| 39 | |
| 40 AC_DEFUN([AC_LD_PICFLAG], | |
| 41 [ | |
| 42 case "$host_os" in | |
| 43 *linux*|*gnu*) | |
| 44 PICFLAG="-fPIC" | |
| 45 ;; | |
| 46 *solaris*) | |
| 47 if test "${GCC}" = "yes"; then | |
| 48 PICFLAG="-fPIC" | |
| 49 else | |
| 50 PICFLAG="-KPIC" | |
| 51 fi | |
| 52 ;; | |
| 53 *sunos*) | |
| 54 PICFLAG="-KPIC" # Is this correct for SunOS | |
| 55 ;; | |
| 56 *netbsd* | *freebsd* | *dragonfly* ) | |
| 57 PICFLAG="-fPIC -DPIC" | |
| 58 ;; | |
| 59 *openbsd*) | |
| 60 PICFLAG="-fPIC" | |
| 61 ;; | |
| 62 *irix*) | |
| 63 if test "${GCC}" = "yes"; then | |
| 64 PICFLAG="-fPIC" | |
| 65 else | |
| 66 PICFLAG="-KPIC" | |
| 67 fi | |
| 68 ;; | |
| 69 *aix*) | |
| 70 # as AIX code is always position independent... | |
| 71 PICFLAG="-O2" | |
| 72 ;; | |
| 73 *hpux*) | |
| 74 if test "${GCC}" = "yes"; then | |
| 75 PICFLAG="-fPIC" | |
| 76 elif test "$host_cpu" = "ia64"; then | |
| 77 PICFLAG="+z" | |
| 78 elif test $ac_cv_prog_cc_Ae = yes; then | |
| 79 PICFLAG="+z +ESnolit" | |
| 80 fi | |
| 81 ;; | |
| 82 *osf*) | |
| 83 PICFLAG="-fPIC" | |
| 84 ;; | |
| 85 *unixware*) | |
| 86 PICFLAG="-KPIC" | |
| 87 ;; | |
| 88 *darwin*) | |
| 89 PICFLAG="-fno-common" | |
| 90 ;; | |
| 91 esac | |
| 92 AC_SUBST(PICFLAG) | |
| 93 ]) | |
| 94 | |
| 95 AC_DEFUN([AC_LIBREPLACE_LD_SHLIB_LINKER], | |
| 96 [ | |
| 97 LD_SHLIB_LINKER="${CC}" | |
| 98 | |
| 99 case "$host_os" in | |
| 100 *irix*) | |
| 101 LD_SHLIB_LINKER="${PROG_LD}" | |
| 102 ;; | |
| 103 esac | |
| 104 | |
| 105 AC_SUBST(LD_SHLIB_LINKER) | |
| 106 ]) | |
| 107 | |
| 108 AC_DEFUN([AC_LIBREPLACE_LD_SHLIB_FLAGS], | |
| 109 [ | |
| 110 LD_SHLIB_FLAGS="-shared" | |
| 111 | |
| 112 case "$host_os" in | |
| 113 *linux*|*gnu*) | |
| 114 LD_SHLIB_FLAGS="-shared -Wl,-Bsymbolic" | |
| 115 ;; | |
| 116 *solaris*) | |
| 117 LD_SHLIB_FLAGS="-G" | |
| 118 if test "${GCC}" = "no"; then | |
| 119 ## ${CFLAGS} added for building 64-bit shared | |
| 120 ## libs using Sun's Compiler | |
| 121 LD_SHLIB_FLAGS="-G \${CFLAGS}" | |
| 122 fi | |
| 123 ;; | |
| 124 *sunos*) | |
| 125 LD_SHLIB_FLAGS="-G" | |
| 126 ;; | |
| 127 *irix*) | |
| 128 LD_SHLIB_FLAGS="-shared" | |
| 129 ;; | |
| 130 *aix*) | |
| 131 LD_SHLIB_FLAGS="-Wl,-G,-bexpall,-bbigtoc" | |
| 132 ;; | |
| 133 *hpux*) | |
| 134 if test "${GCC}" = "yes"; then | |
| 135 LD_SHLIB_FLAGS="-shared" | |
| 136 else | |
| 137 LD_SHLIB_FLAGS="-b" | |
| 138 fi | |
| 139 ;; | |
| 140 *osf*) | |
| 141 LD_SHLIB_FLAGS="-shared" | |
| 142 ;; | |
| 143 *darwin*) | |
| 144 LD_SHLIB_FLAGS="-dynamiclib -Wl,-search_paths_first" | |
| 145 ;; | |
| 146 esac | |
| 147 | |
| 148 AC_SUBST(LD_SHLIB_FLAGS) | |
| 149 ]) | |
| 150 | |
| 151 AC_DEFUN([AC_LIBREPLACE_LD_SHLIB_DISALLOW_UNDEF_FLAG], | |
| 152 [ | |
| 153 LD_SHLIB_DISALLOW_UNDEF_FLAG="" | |
| 154 | |
| 155 # | |
| 156 # TODO: enforce error not only warnings | |
| 157 # | |
| 158 # NOTE: -Wl,--no-allow-shlib-undefined isn't what we want... | |
| 159 # as it bails out on broken system libraries | |
| 160 # | |
| 161 case "$host_os" in | |
| 162 *osf*) | |
| 163 LD_SHLIB_DISALLOW_UNDEF_FLAG="-warning_unresolved" | |
| 164 ;; | |
| 165 *darwin*) | |
| 166 LD_SHLIB_DISALLOW_UNDEF_FLAG="-undefined error" | |
| 167 ;; | |
| 168 esac | |
| 169 | |
| 170 AC_SUBST(LD_SHLIB_DISALLOW_UNDEF_FLAG) | |
| 171 ]) | |
| 172 | |
| 173 AC_DEFUN([AC_LIBREPLACE_SHLD], | |
| 174 [ | |
| 175 AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_LINKER]) | |
| 176 SHLD="$LD_SHLIB_LINKER" | |
| 177 AC_SUBST(SHLD) | |
| 178 ]) | |
| 179 | |
| 180 AC_DEFUN([AC_LIBREPLACE_SHLD_FLAGS], | |
| 181 [ | |
| 182 AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_FLAGS]) | |
| 183 AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_DISALLOW_UNDEF_FLAG]) | |
| 184 SHLD_FLAGS="$LD_SHLIB_FLAGS $LD_SHLIB_DISALLOW_UNDEF_FLAG" | |
| 185 AC_SUBST(SHLD_FLAGS) | |
| 186 ]) | |
| 187 | |
| 188 AC_DEFUN([AC_LD_SHLIBEXT], | |
| 189 [ | |
| 190 SHLIBEXT="so" | |
| 191 case "$host_os" in | |
| 192 *hpux*) | |
| 193 if test "$host_cpu" = "ia64"; then | |
| 194 SHLIBEXT="so" | |
| 195 else | |
| 196 SHLIBEXT="sl" | |
| 197 fi | |
| 198 ;; | |
| 199 *darwin*) | |
| 200 SHLIBEXT="dylib" | |
| 201 ;; | |
| 202 esac | |
| 203 AC_SUBST(SHLIBEXT) | |
| 204 ]) | |
| 205 | |
| 206 AC_DEFUN([AC_LD_SONAMEFLAG], | |
| 207 [ | |
| 208 AC_SUBST(SONAMEFLAG) | |
| 209 SONAMEFLAG="" | |
| 210 case "$host_os" in | |
| 211 *linux*|*gnu*|*qnx*) | |
| 212 SONAMEFLAG="-Wl,-soname=" | |
| 213 ;; | |
| 214 *solaris*) | |
| 215 SONAMEFLAG="-h " | |
| 216 if test "${GCC}" = "yes"; then | |
| 217 SONAMEFLAG="-Wl,-soname=" | |
| 218 fi | |
| 219 ;; | |
| 220 *sunos*) | |
| 221 SONAMEFLAG="-Wl,-h," | |
| 222 ;; | |
| 223 *netbsd* | *freebsd* | *dragonfly* ) | |
| 224 SONAMEFLAG="-Wl,-soname," | |
| 225 ;; | |
| 226 *openbsd*) | |
| 227 SONAMEFLAG="-Wl,-soname," | |
| 228 ;; | |
| 229 *irix*) | |
| 230 SONAMEFLAG="-Wl,-soname," | |
| 231 ;; | |
| 232 *hpux*) | |
| 233 SONAMEFLAG="-Wl,+h," | |
| 234 ;; | |
| 235 *osf*) | |
| 236 SONAMEFLAG="-Wl,-soname," | |
| 237 ;; | |
| 238 *unixware*) | |
| 239 SONAMEFLAG="-Wl,-soname," | |
| 240 ;; | |
| 241 *darwin*) | |
| 242 SONAMEFLAG="#" | |
| 243 ;; | |
| 244 *aix*) | |
| 245 # Not supported | |
| 246 SONAMEFLAG="#" | |
| 247 ;; | |
| 248 esac | |
| 249 ]) | |
| 250 | |
| 251 AC_DEFUN([AC_LD_VERSIONSCRIPT], | |
| 252 [ | |
| 253 AC_SUBST(VERSIONSCRIPT) | |
| 254 VERSIONSCRIPT="" | |
| 255 case "$host_os" in | |
| 256 *linux*|*gnu*) | |
| 257 VERSIONSCRIPT="-Wl,--version-script" | |
| 258 ;; | |
| 259 *solaris*) | |
| 260 if test "${GCC}" = "yes"; then | |
| 261 VERSIONSCRIPT="-Wl,--version-script" | |
| 262 fi | |
| 263 ;; | |
| 264 esac | |
| 265 ]) | |
| 266 | |
| 267 AC_DEFUN([AC_LIBREPLACE_MDLD], | |
| 268 [ | |
| 269 AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_LINKER]) | |
| 270 MDLD="$LD_SHLIB_LINKER" | |
| 271 AC_SUBST(MDLD) | |
| 272 ]) | |
| 273 | |
| 274 AC_DEFUN([AC_LIBREPLACE_LD_SHLIB_ALLOW_UNDEF_FLAG], | |
| 275 [ | |
| 276 LD_ALLOW_SHLIB_UNDEF_FLAG="" | |
| 277 | |
| 278 case "$host_os" in | |
| 279 *linux*|*gnu*) | |
| 280 LD_SHLIB_ALLOW_UNDEF_FLAG="-Wl,--allow-shlib-undefined" | |
| 281 ;; | |
| 282 *osf*) | |
| 283 LD_SHLIB_ALLOW_UNDEF_FLAG="-Wl,-expect_unresolved,\"*\"" | |
| 284 ;; | |
| 285 *darwin*) | |
| 286 LD_SHLIB_ALLOW_UNDEF_FLAG="-undefined dynamic_lookup" | |
| 287 ;; | |
| 288 *aix*) | |
| 289 LD_SHLIB_ALLOW_UNDEF_FLAG="-Wl,-bnoentry" | |
| 290 ;; | |
| 291 esac | |
| 292 | |
| 293 AC_SUBST(LD_SHLIB_ALLOW_UNDEF_FLAG) | |
| 294 ]) | |
| 295 | |
| 296 AC_DEFUN([AC_LIBREPLACE_MDLD_FLAGS], | |
| 297 [ | |
| 298 AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_FLAGS]) | |
| 299 AC_REQUIRE([AC_LIBREPLACE_LD_SHLIB_ALLOW_UNDEF_FLAG]) | |
| 300 MDLD_FLAGS="$LD_SHLIB_FLAGS $LD_SHLIB_ALLOW_UNDEF_FLAG" | |
| 301 AC_SUBST(MDLD_FLAGS) | |
| 302 ]) | |
| 303 | |
| 304 AC_DEFUN([AC_LIBREPLACE_RUNTIME_LIB_PATH_VAR], | |
| 305 [ | |
| 306 case "$host_os" in | |
| 307 *linux*|*gnu*) | |
| 308 LIB_PATH_VAR=LD_LIBRARY_PATH | |
| 309 ;; | |
| 310 *bsd*) | |
| 311 LIB_PATH_VAR=LD_LIBRARY_PATH | |
| 312 ;; | |
| 313 *solaris*) | |
| 314 LIB_PATH_VAR=LD_LIBRARY_PATH | |
| 315 ;; | |
| 316 *hpux*) | |
| 317 LIB_PATH_VAR=SHLIB_PATH | |
| 318 ;; | |
| 319 *osf*) | |
| 320 LIB_PATH_VAR=LD_LIBRARY_PATH | |
| 321 ;; | |
| 322 *aix*) | |
| 323 LIB_PATH_VAR=LIBPATH | |
| 324 ;; | |
| 325 *irix*) | |
| 326 LIB_PATH_VAR=LD_LIBRARY_PATH | |
| 327 ;; | |
| 328 *darwin*) | |
| 329 LIB_PATH_VAR=DYLD_LIBRARY_PATH | |
| 330 ;; | |
| 331 *) | |
| 332 LIB_PATH_VAR=LD_LIBRARY_PATH | |
| 333 ;; | |
| 334 esac | |
| 335 | |
| 336 AC_SUBST(LIB_PATH_VAR) | |
| 337 ]) | |
| OLD | NEW |