Annotation of embedaddon/curl/m4/xc-lt-iface.m4, revision 1.1
1.1 ! misho 1: #---------------------------------------------------------------------------
! 2: #
! 3: # xc-lt-iface.m4
! 4: #
! 5: # Copyright (c) 2013 - 2020, Daniel Stenberg <daniel@haxx.se>
! 6: #
! 7: # Permission to use, copy, modify, and distribute this software for any
! 8: # purpose with or without fee is hereby granted, provided that the above
! 9: # copyright notice and this permission notice appear in all copies.
! 10: #
! 11: # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
! 12: # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
! 13: # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
! 14: # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
! 15: # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
! 16: # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
! 17: # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
! 18: #
! 19: #---------------------------------------------------------------------------
! 20:
! 21: # serial 1
! 22:
! 23:
! 24: dnl _XC_LIBTOOL_PREAMBLE
! 25: dnl -------------------------------------------------
! 26: dnl Private macro.
! 27: dnl
! 28: dnl Checks some configure script options related with
! 29: dnl libtool and customizes its default behavior before
! 30: dnl libtool code is actually used in script.
! 31:
! 32: m4_define([_XC_LIBTOOL_PREAMBLE],
! 33: [dnl
! 34: # ------------------------------------ #
! 35: # Determine libtool default behavior #
! 36: # ------------------------------------ #
! 37:
! 38: #
! 39: # Default behavior is to enable shared and static libraries on systems
! 40: # where libtool knows how to build both library versions, and does not
! 41: # require separate configuration and build runs for each flavor.
! 42: #
! 43:
! 44: xc_lt_want_enable_shared='yes'
! 45: xc_lt_want_enable_static='yes'
! 46:
! 47: #
! 48: # User may have disabled shared or static libraries.
! 49: #
! 50: case "x$enable_shared" in @%:@ (
! 51: xno)
! 52: xc_lt_want_enable_shared='no'
! 53: ;;
! 54: esac
! 55: case "x$enable_static" in @%:@ (
! 56: xno)
! 57: xc_lt_want_enable_static='no'
! 58: ;;
! 59: esac
! 60: if test "x$xc_lt_want_enable_shared" = 'xno' &&
! 61: test "x$xc_lt_want_enable_static" = 'xno'; then
! 62: AC_MSG_ERROR([can not disable shared and static libraries simultaneously])
! 63: fi
! 64:
! 65: #
! 66: # Default behavior on systems that require independent configuration
! 67: # and build runs for shared and static is to enable shared libraries
! 68: # and disable static ones. On these systems option '--disable-shared'
! 69: # must be used in order to build a proper static library.
! 70: #
! 71:
! 72: if test "x$xc_lt_want_enable_shared" = 'xyes' &&
! 73: test "x$xc_lt_want_enable_static" = 'xyes'; then
! 74: case $host_os in @%:@ (
! 75: pw32* | cegcc* | os2* | aix*)
! 76: xc_lt_want_enable_static='no'
! 77: ;;
! 78: esac
! 79: fi
! 80:
! 81: #
! 82: # Make libtool aware of current shared and static library preferences
! 83: # taking in account that, depending on host characteristics, libtool
! 84: # may modify these option preferences later in this configure script.
! 85: #
! 86:
! 87: enable_shared=$xc_lt_want_enable_shared
! 88: enable_static=$xc_lt_want_enable_static
! 89:
! 90: #
! 91: # Default behavior is to build PIC objects for shared libraries and
! 92: # non-PIC objects for static libraries.
! 93: #
! 94:
! 95: xc_lt_want_with_pic='default'
! 96:
! 97: #
! 98: # User may have specified PIC preference.
! 99: #
! 100:
! 101: case "x$with_pic" in @%:@ ((
! 102: xno)
! 103: xc_lt_want_with_pic='no'
! 104: ;;
! 105: xyes)
! 106: xc_lt_want_with_pic='yes'
! 107: ;;
! 108: esac
! 109:
! 110: #
! 111: # Default behavior on some systems where building a shared library out
! 112: # of non-PIC compiled objects will fail with following linker error
! 113: # "relocation R_X86_64_32 can not be used when making a shared object"
! 114: # is to build PIC objects even for static libraries. This behavior may
! 115: # be overridden using 'configure --disable-shared --without-pic'.
! 116: #
! 117:
! 118: if test "x$xc_lt_want_with_pic" = 'xdefault'; then
! 119: case $host_cpu in @%:@ (
! 120: x86_64 | amd64 | ia64)
! 121: case $host_os in @%:@ (
! 122: linux* | freebsd*)
! 123: xc_lt_want_with_pic='yes'
! 124: ;;
! 125: esac
! 126: ;;
! 127: esac
! 128: fi
! 129:
! 130: #
! 131: # Make libtool aware of current PIC preference taking in account that,
! 132: # depending on host characteristics, libtool may modify PIC default
! 133: # behavior to fit host system idiosyncrasies later in this script.
! 134: #
! 135:
! 136: with_pic=$xc_lt_want_with_pic
! 137: dnl
! 138: m4_define([$0],[])dnl
! 139: ])
! 140:
! 141:
! 142: dnl _XC_LIBTOOL_BODY
! 143: dnl -------------------------------------------------
! 144: dnl Private macro.
! 145: dnl
! 146: dnl This macro performs embedding of libtool code into
! 147: dnl configure script, regardless of libtool version in
! 148: dnl use when generating configure script.
! 149:
! 150: m4_define([_XC_LIBTOOL_BODY],
! 151: [dnl
! 152: ## ----------------------- ##
! 153: ## Start of libtool code ##
! 154: ## ----------------------- ##
! 155: m4_ifdef([LT_INIT],
! 156: [dnl
! 157: LT_INIT([win32-dll])
! 158: ],[dnl
! 159: AC_LIBTOOL_WIN32_DLL
! 160: AC_PROG_LIBTOOL
! 161: ])dnl
! 162: ## --------------------- ##
! 163: ## End of libtool code ##
! 164: ## --------------------- ##
! 165: dnl
! 166: m4_define([$0], [])[]dnl
! 167: ])
! 168:
! 169:
! 170: dnl _XC_CHECK_LT_BUILD_LIBRARIES
! 171: dnl -------------------------------------------------
! 172: dnl Private macro.
! 173: dnl
! 174: dnl Checks whether libtool shared and static libraries
! 175: dnl are finally built depending on user input, default
! 176: dnl behavior and knowledge that libtool has about host
! 177: dnl characteristics.
! 178: dnl Results stored in following shell variables:
! 179: dnl xc_lt_build_shared
! 180: dnl xc_lt_build_static
! 181:
! 182: m4_define([_XC_CHECK_LT_BUILD_LIBRARIES],
! 183: [dnl
! 184: #
! 185: # Verify if finally libtool shared libraries will be built
! 186: #
! 187:
! 188: case "x$enable_shared" in @%:@ ((
! 189: xyes | xno)
! 190: xc_lt_build_shared=$enable_shared
! 191: ;;
! 192: *)
! 193: AC_MSG_ERROR([unexpected libtool enable_shared value: $enable_shared])
! 194: ;;
! 195: esac
! 196:
! 197: #
! 198: # Verify if finally libtool static libraries will be built
! 199: #
! 200:
! 201: case "x$enable_static" in @%:@ ((
! 202: xyes | xno)
! 203: xc_lt_build_static=$enable_static
! 204: ;;
! 205: *)
! 206: AC_MSG_ERROR([unexpected libtool enable_static value: $enable_static])
! 207: ;;
! 208: esac
! 209: dnl
! 210: m4_define([$0],[])dnl
! 211: ])
! 212:
! 213:
! 214: dnl _XC_CHECK_LT_SHLIB_USE_VERSION_INFO
! 215: dnl -------------------------------------------------
! 216: dnl Private macro.
! 217: dnl
! 218: dnl Checks if the -version-info linker flag must be
! 219: dnl provided when building libtool shared libraries.
! 220: dnl Result stored in xc_lt_shlib_use_version_info.
! 221:
! 222: m4_define([_XC_CHECK_LT_SHLIB_USE_VERSION_INFO],
! 223: [dnl
! 224: #
! 225: # Verify if libtool shared libraries should be linked using flag -version-info
! 226: #
! 227:
! 228: AC_MSG_CHECKING([whether to build shared libraries with -version-info])
! 229: xc_lt_shlib_use_version_info='yes'
! 230: if test "x$version_type" = 'xnone'; then
! 231: xc_lt_shlib_use_version_info='no'
! 232: fi
! 233: case $host_os in @%:@ (
! 234: amigaos*)
! 235: xc_lt_shlib_use_version_info='yes'
! 236: ;;
! 237: esac
! 238: AC_MSG_RESULT([$xc_lt_shlib_use_version_info])
! 239: dnl
! 240: m4_define([$0], [])[]dnl
! 241: ])
! 242:
! 243:
! 244: dnl _XC_CHECK_LT_SHLIB_USE_NO_UNDEFINED
! 245: dnl -------------------------------------------------
! 246: dnl Private macro.
! 247: dnl
! 248: dnl Checks if the -no-undefined linker flag must be
! 249: dnl provided when building libtool shared libraries.
! 250: dnl Result stored in xc_lt_shlib_use_no_undefined.
! 251:
! 252: m4_define([_XC_CHECK_LT_SHLIB_USE_NO_UNDEFINED],
! 253: [dnl
! 254: #
! 255: # Verify if libtool shared libraries should be linked using flag -no-undefined
! 256: #
! 257:
! 258: AC_MSG_CHECKING([whether to build shared libraries with -no-undefined])
! 259: xc_lt_shlib_use_no_undefined='no'
! 260: if test "x$allow_undefined" = 'xno'; then
! 261: xc_lt_shlib_use_no_undefined='yes'
! 262: elif test "x$allow_undefined_flag" = 'xunsupported'; then
! 263: xc_lt_shlib_use_no_undefined='yes'
! 264: fi
! 265: case $host_os in @%:@ (
! 266: cygwin* | mingw* | pw32* | cegcc* | os2* | aix*)
! 267: xc_lt_shlib_use_no_undefined='yes'
! 268: ;;
! 269: esac
! 270: AC_MSG_RESULT([$xc_lt_shlib_use_no_undefined])
! 271: dnl
! 272: m4_define([$0], [])[]dnl
! 273: ])
! 274:
! 275:
! 276: dnl _XC_CHECK_LT_SHLIB_USE_MIMPURE_TEXT
! 277: dnl -------------------------------------------------
! 278: dnl Private macro.
! 279: dnl
! 280: dnl Checks if the -mimpure-text linker flag must be
! 281: dnl provided when building libtool shared libraries.
! 282: dnl Result stored in xc_lt_shlib_use_mimpure_text.
! 283:
! 284: m4_define([_XC_CHECK_LT_SHLIB_USE_MIMPURE_TEXT],
! 285: [dnl
! 286: #
! 287: # Verify if libtool shared libraries should be linked using flag -mimpure-text
! 288: #
! 289:
! 290: AC_MSG_CHECKING([whether to build shared libraries with -mimpure-text])
! 291: xc_lt_shlib_use_mimpure_text='no'
! 292: case $host_os in @%:@ (
! 293: solaris2*)
! 294: if test "x$GCC" = 'xyes'; then
! 295: xc_lt_shlib_use_mimpure_text='yes'
! 296: fi
! 297: ;;
! 298: esac
! 299: AC_MSG_RESULT([$xc_lt_shlib_use_mimpure_text])
! 300: dnl
! 301: m4_define([$0], [])[]dnl
! 302: ])
! 303:
! 304:
! 305: dnl _XC_CHECK_LT_BUILD_WITH_PIC
! 306: dnl -------------------------------------------------
! 307: dnl Private macro.
! 308: dnl
! 309: dnl Checks whether libtool shared and static libraries
! 310: dnl would be built with PIC depending on user input,
! 311: dnl default behavior and knowledge that libtool has
! 312: dnl about host characteristics.
! 313: dnl Results stored in following shell variables:
! 314: dnl xc_lt_build_shared_with_pic
! 315: dnl xc_lt_build_static_with_pic
! 316:
! 317: m4_define([_XC_CHECK_LT_BUILD_WITH_PIC],
! 318: [dnl
! 319: #
! 320: # Find out whether libtool libraries would be built wit PIC
! 321: #
! 322:
! 323: case "x$pic_mode" in @%:@ ((((
! 324: xdefault)
! 325: xc_lt_build_shared_with_pic='yes'
! 326: xc_lt_build_static_with_pic='no'
! 327: ;;
! 328: xyes)
! 329: xc_lt_build_shared_with_pic='yes'
! 330: xc_lt_build_static_with_pic='yes'
! 331: ;;
! 332: xno)
! 333: xc_lt_build_shared_with_pic='no'
! 334: xc_lt_build_static_with_pic='no'
! 335: ;;
! 336: *)
! 337: xc_lt_build_shared_with_pic='unknown'
! 338: xc_lt_build_static_with_pic='unknown'
! 339: AC_MSG_WARN([unexpected libtool pic_mode value: $pic_mode])
! 340: ;;
! 341: esac
! 342: AC_MSG_CHECKING([whether to build shared libraries with PIC])
! 343: AC_MSG_RESULT([$xc_lt_build_shared_with_pic])
! 344: AC_MSG_CHECKING([whether to build static libraries with PIC])
! 345: AC_MSG_RESULT([$xc_lt_build_static_with_pic])
! 346: dnl
! 347: m4_define([$0],[])dnl
! 348: ])
! 349:
! 350:
! 351: dnl _XC_CHECK_LT_BUILD_SINGLE_VERSION
! 352: dnl -------------------------------------------------
! 353: dnl Private macro.
! 354: dnl
! 355: dnl Checks whether a libtool shared or static library
! 356: dnl is finally built exclusively without the other.
! 357: dnl Results stored in following shell variables:
! 358: dnl xc_lt_build_shared_only
! 359: dnl xc_lt_build_static_only
! 360:
! 361: m4_define([_XC_CHECK_LT_BUILD_SINGLE_VERSION],
! 362: [dnl
! 363: #
! 364: # Verify if libtool shared libraries will be built while static not built
! 365: #
! 366:
! 367: AC_MSG_CHECKING([whether to build shared libraries only])
! 368: if test "$xc_lt_build_shared" = 'yes' &&
! 369: test "$xc_lt_build_static" = 'no'; then
! 370: xc_lt_build_shared_only='yes'
! 371: else
! 372: xc_lt_build_shared_only='no'
! 373: fi
! 374: AC_MSG_RESULT([$xc_lt_build_shared_only])
! 375:
! 376: #
! 377: # Verify if libtool static libraries will be built while shared not built
! 378: #
! 379:
! 380: AC_MSG_CHECKING([whether to build static libraries only])
! 381: if test "$xc_lt_build_static" = 'yes' &&
! 382: test "$xc_lt_build_shared" = 'no'; then
! 383: xc_lt_build_static_only='yes'
! 384: else
! 385: xc_lt_build_static_only='no'
! 386: fi
! 387: AC_MSG_RESULT([$xc_lt_build_static_only])
! 388: dnl
! 389: m4_define([$0],[])dnl
! 390: ])
! 391:
! 392:
! 393: dnl _XC_LIBTOOL_POSTLUDE
! 394: dnl -------------------------------------------------
! 395: dnl Private macro.
! 396: dnl
! 397: dnl Performs several checks related with libtool that
! 398: dnl can not be done unless libtool code has already
! 399: dnl been executed. See individual check descriptions
! 400: dnl for further info.
! 401:
! 402: m4_define([_XC_LIBTOOL_POSTLUDE],
! 403: [dnl
! 404: _XC_CHECK_LT_BUILD_LIBRARIES
! 405: _XC_CHECK_LT_SHLIB_USE_VERSION_INFO
! 406: _XC_CHECK_LT_SHLIB_USE_NO_UNDEFINED
! 407: _XC_CHECK_LT_SHLIB_USE_MIMPURE_TEXT
! 408: _XC_CHECK_LT_BUILD_WITH_PIC
! 409: _XC_CHECK_LT_BUILD_SINGLE_VERSION
! 410: dnl
! 411: m4_define([$0],[])dnl
! 412: ])
! 413:
! 414:
! 415: dnl XC_LIBTOOL
! 416: dnl -------------------------------------------------
! 417: dnl Public macro.
! 418: dnl
! 419: dnl This macro embeds libtool machinery into configure
! 420: dnl script, regardless of libtool version, and performs
! 421: dnl several additional checks whose results can be used
! 422: dnl later on.
! 423: dnl
! 424: dnl Usage of this macro ensures that generated configure
! 425: dnl script uses equivalent logic irrespective of autoconf
! 426: dnl or libtool version being used to generate configure
! 427: dnl script.
! 428: dnl
! 429: dnl Results stored in following shell variables:
! 430: dnl xc_lt_build_shared
! 431: dnl xc_lt_build_static
! 432: dnl xc_lt_shlib_use_version_info
! 433: dnl xc_lt_shlib_use_no_undefined
! 434: dnl xc_lt_shlib_use_mimpure_text
! 435: dnl xc_lt_build_shared_with_pic
! 436: dnl xc_lt_build_static_with_pic
! 437: dnl xc_lt_build_shared_only
! 438: dnl xc_lt_build_static_only
! 439:
! 440: AC_DEFUN([XC_LIBTOOL],
! 441: [dnl
! 442: AC_PREREQ([2.50])dnl
! 443: dnl
! 444: AC_BEFORE([$0],[LT_INIT])dnl
! 445: AC_BEFORE([$0],[AC_PROG_LIBTOOL])dnl
! 446: AC_BEFORE([$0],[AC_LIBTOOL_WIN32_DLL])dnl
! 447: dnl
! 448: AC_REQUIRE([XC_CHECK_PATH_SEPARATOR])dnl
! 449: AC_REQUIRE([AC_CANONICAL_HOST])dnl
! 450: AC_REQUIRE([AC_PROG_CC])dnl
! 451: dnl
! 452: _XC_LIBTOOL_PREAMBLE
! 453: _XC_LIBTOOL_BODY
! 454: _XC_LIBTOOL_POSTLUDE
! 455: dnl
! 456: m4_ifdef([AC_LIBTOOL_WIN32_DLL],
! 457: [m4_undefine([AC_LIBTOOL_WIN32_DLL])])dnl
! 458: m4_ifdef([AC_PROG_LIBTOOL],
! 459: [m4_undefine([AC_PROG_LIBTOOL])])dnl
! 460: m4_ifdef([LT_INIT],
! 461: [m4_undefine([LT_INIT])])dnl
! 462: dnl
! 463: m4_define([$0],[])dnl
! 464: ])
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>