File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / curl / m4 / xc-lt-iface.m4
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jun 3 10:01:15 2020 UTC (4 years ago) by misho
Branches: curl, MAIN
CVS tags: v7_70_0p4, HEAD
curl

    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>