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>