quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

xc-lt-iface.m4 (12255B)


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