1 # Helper functions for option handling.                    -*- Autoconf -*-
 
   3 #   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
 
   5 #   Written by Gary V. Vaughan, 2004
 
   7 # This file is free software; the Free Software Foundation gives
 
   8 # unlimited permission to copy and/or distribute it, with or without
 
   9 # modifications, as long as this notice is preserved.
 
  11 # serial 8 ltoptions.m4
 
  13 # This is to help aclocal find these macros, as it can't see m4_define.
 
  14 AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
 
  17 # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
 
  18 # ------------------------------------------
 
  19 m4_define([_LT_MANGLE_OPTION],
 
  20 [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
 
  23 # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
 
  24 # ---------------------------------------
 
  25 # Set option OPTION-NAME for macro MACRO-NAME, and if there is a
 
  26 # matching handler defined, dispatch to it.  Other OPTION-NAMEs are
 
  28 m4_define([_LT_SET_OPTION],
 
  29 [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
 
  30 m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
 
  31         _LT_MANGLE_DEFUN([$1], [$2]),
 
  32     [m4_warning([Unknown $1 option '$2'])])[]dnl
 
  36 # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
 
  37 # ------------------------------------------------------------
 
  38 # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
 
  39 m4_define([_LT_IF_OPTION],
 
  40 [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
 
  43 # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
 
  44 # -------------------------------------------------------
 
  45 # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
 
  47 m4_define([_LT_UNLESS_OPTIONS],
 
  48 [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
 
  49             [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
 
  50                       [m4_define([$0_found])])])[]dnl
 
  51 m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
 
  56 # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
 
  57 # ----------------------------------------
 
  58 # OPTION-LIST is a space-separated list of Libtool options associated
 
  59 # with MACRO-NAME.  If any OPTION has a matching handler declared with
 
  60 # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
 
  61 # the unknown option and exit.
 
  62 m4_defun([_LT_SET_OPTIONS],
 
  64 m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
 
  65     [_LT_SET_OPTION([$1], _LT_Option)])
 
  67 m4_if([$1],[LT_INIT],[
 
  69   dnl Simply set some default values (i.e off) if boolean options were not
 
  71   _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
 
  73   _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
 
  76   dnl If no reference was made to various pairs of opposing options, then
 
  77   dnl we run the default mode handler for the pair.  For example, if neither
 
  78   dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
 
  79   dnl archives by default:
 
  80   _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
 
  81   _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
 
  82   _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
 
  83   _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
 
  84                    [_LT_ENABLE_FAST_INSTALL])
 
  85   _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
 
  86                    [_LT_WITH_AIX_SONAME([aix])])
 
  91 ## --------------------------------- ##
 
  92 ## Macros to handle LT_INIT options. ##
 
  93 ## --------------------------------- ##
 
  95 # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
 
  96 # -----------------------------------------
 
  97 m4_define([_LT_MANGLE_DEFUN],
 
  98 [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
 
 101 # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
 
 102 # -----------------------------------------------
 
 103 m4_define([LT_OPTION_DEFINE],
 
 104 [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
 
 110 LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
 
 113 AU_DEFUN([AC_LIBTOOL_DLOPEN],
 
 114 [_LT_SET_OPTION([LT_INIT], [dlopen])
 
 115 AC_DIAGNOSE([obsolete],
 
 116 [$0: Remove this warning and the call to _LT_SET_OPTION when you
 
 117 put the 'dlopen' option into LT_INIT's first parameter.])
 
 120 dnl aclocal-1.4 backwards compatibility:
 
 121 dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
 
 126 # Declare package support for building win32 dll's.
 
 127 LT_OPTION_DEFINE([LT_INIT], [win32-dll],
 
 128 [enable_win32_dll=yes
 
 131 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
 
 132   AC_CHECK_TOOL(AS, as, false)
 
 133   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
 
 134   AC_CHECK_TOOL(OBJDUMP, objdump, false)
 
 138 test -z "$AS" && AS=as
 
 139 _LT_DECL([], [AS],      [1], [Assembler program])dnl
 
 141 test -z "$DLLTOOL" && DLLTOOL=dlltool
 
 142 _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
 
 144 test -z "$OBJDUMP" && OBJDUMP=objdump
 
 145 _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
 
 148 AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
 
 149 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 
 150 _LT_SET_OPTION([LT_INIT], [win32-dll])
 
 151 AC_DIAGNOSE([obsolete],
 
 152 [$0: Remove this warning and the call to _LT_SET_OPTION when you
 
 153 put the 'win32-dll' option into LT_INIT's first parameter.])
 
 156 dnl aclocal-1.4 backwards compatibility:
 
 157 dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
 
 160 # _LT_ENABLE_SHARED([DEFAULT])
 
 161 # ----------------------------
 
 162 # implement the --enable-shared flag, and supports the 'shared' and
 
 163 # 'disable-shared' LT_INIT options.
 
 164 # DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
 
 165 m4_define([_LT_ENABLE_SHARED],
 
 166 [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
 
 167 AC_ARG_ENABLE([shared],
 
 168     [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
 
 169         [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
 
 170     [p=${PACKAGE-default}
 
 172     yes) enable_shared=yes ;;
 
 173     no) enable_shared=no ;;
 
 176       # Look at the argument we got.  We use all the common list separators.
 
 177       lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
 
 178       for pkg in $enableval; do
 
 180         if test "X$pkg" = "X$p"; then
 
 187     [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
 
 189     _LT_DECL([build_libtool_libs], [enable_shared], [0],
 
 190         [Whether or not to build shared libraries])
 
 191 ])# _LT_ENABLE_SHARED
 
 193 LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
 
 194 LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
 
 197 AC_DEFUN([AC_ENABLE_SHARED],
 
 198 [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
 
 201 AC_DEFUN([AC_DISABLE_SHARED],
 
 202 [_LT_SET_OPTION([LT_INIT], [disable-shared])
 
 205 AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
 
 206 AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
 
 208 dnl aclocal-1.4 backwards compatibility:
 
 209 dnl AC_DEFUN([AM_ENABLE_SHARED], [])
 
 210 dnl AC_DEFUN([AM_DISABLE_SHARED], [])
 
 214 # _LT_ENABLE_STATIC([DEFAULT])
 
 215 # ----------------------------
 
 216 # implement the --enable-static flag, and support the 'static' and
 
 217 # 'disable-static' LT_INIT options.
 
 218 # DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
 
 219 m4_define([_LT_ENABLE_STATIC],
 
 220 [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
 
 221 AC_ARG_ENABLE([static],
 
 222     [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
 
 223         [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
 
 224     [p=${PACKAGE-default}
 
 226     yes) enable_static=yes ;;
 
 227     no) enable_static=no ;;
 
 230       # Look at the argument we got.  We use all the common list separators.
 
 231       lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
 
 232       for pkg in $enableval; do
 
 234         if test "X$pkg" = "X$p"; then
 
 241     [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
 
 243     _LT_DECL([build_old_libs], [enable_static], [0],
 
 244         [Whether or not to build static libraries])
 
 245 ])# _LT_ENABLE_STATIC
 
 247 LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
 
 248 LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
 
 251 AC_DEFUN([AC_ENABLE_STATIC],
 
 252 [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
 
 255 AC_DEFUN([AC_DISABLE_STATIC],
 
 256 [_LT_SET_OPTION([LT_INIT], [disable-static])
 
 259 AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
 
 260 AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
 
 262 dnl aclocal-1.4 backwards compatibility:
 
 263 dnl AC_DEFUN([AM_ENABLE_STATIC], [])
 
 264 dnl AC_DEFUN([AM_DISABLE_STATIC], [])
 
 268 # _LT_ENABLE_FAST_INSTALL([DEFAULT])
 
 269 # ----------------------------------
 
 270 # implement the --enable-fast-install flag, and support the 'fast-install'
 
 271 # and 'disable-fast-install' LT_INIT options.
 
 272 # DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
 
 273 m4_define([_LT_ENABLE_FAST_INSTALL],
 
 274 [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
 
 275 AC_ARG_ENABLE([fast-install],
 
 276     [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
 
 277     [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
 
 278     [p=${PACKAGE-default}
 
 280     yes) enable_fast_install=yes ;;
 
 281     no) enable_fast_install=no ;;
 
 283       enable_fast_install=no
 
 284       # Look at the argument we got.  We use all the common list separators.
 
 285       lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
 
 286       for pkg in $enableval; do
 
 288         if test "X$pkg" = "X$p"; then
 
 289           enable_fast_install=yes
 
 295     [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
 
 297 _LT_DECL([fast_install], [enable_fast_install], [0],
 
 298          [Whether or not to optimize for fast installation])dnl
 
 299 ])# _LT_ENABLE_FAST_INSTALL
 
 301 LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
 
 302 LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
 
 305 AU_DEFUN([AC_ENABLE_FAST_INSTALL],
 
 306 [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
 
 307 AC_DIAGNOSE([obsolete],
 
 308 [$0: Remove this warning and the call to _LT_SET_OPTION when you put
 
 309 the 'fast-install' option into LT_INIT's first parameter.])
 
 312 AU_DEFUN([AC_DISABLE_FAST_INSTALL],
 
 313 [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
 
 314 AC_DIAGNOSE([obsolete],
 
 315 [$0: Remove this warning and the call to _LT_SET_OPTION when you put
 
 316 the 'disable-fast-install' option into LT_INIT's first parameter.])
 
 319 dnl aclocal-1.4 backwards compatibility:
 
 320 dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
 
 321 dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
 
 324 # _LT_WITH_AIX_SONAME([DEFAULT])
 
 325 # ----------------------------------
 
 326 # implement the --with-aix-soname flag, and support the `aix-soname=aix'
 
 327 # and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
 
 328 # is either `aix', `both' or `svr4'.  If omitted, it defaults to `aix'.
 
 329 m4_define([_LT_WITH_AIX_SONAME],
 
 330 [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
 
 331 shared_archive_member_spec=
 
 332 case $host,$enable_shared in
 
 333 power*-*-aix[[5-9]]*,yes)
 
 334   AC_MSG_CHECKING([which variant of shared library versioning to provide])
 
 335   AC_ARG_WITH([aix-soname],
 
 336     [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
 
 337       [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
 
 342       AC_MSG_ERROR([Unknown argument to --with-aix-soname])
 
 345     lt_cv_with_aix_soname=$with_aix_soname],
 
 346     [AC_CACHE_VAL([lt_cv_with_aix_soname],
 
 347       [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
 
 348     with_aix_soname=$lt_cv_with_aix_soname])
 
 349   AC_MSG_RESULT([$with_aix_soname])
 
 350   if test aix != "$with_aix_soname"; then
 
 351     # For the AIX way of multilib, we name the shared archive member
 
 352     # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
 
 353     # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
 
 354     # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
 
 355     # the AIX toolchain works better with OBJECT_MODE set (default 32).
 
 356     if test 64 = "${OBJECT_MODE-32}"; then
 
 357       shared_archive_member_spec=shr_64
 
 359       shared_archive_member_spec=shr
 
 368 _LT_DECL([], [shared_archive_member_spec], [0],
 
 369     [Shared archive member basename, for filename based shared library versioning on AIX])dnl
 
 370 ])# _LT_WITH_AIX_SONAME
 
 372 LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
 
 373 LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
 
 374 LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
 
 377 # _LT_WITH_PIC([MODE])
 
 378 # --------------------
 
 379 # implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
 
 381 # MODE is either 'yes' or 'no'.  If omitted, it defaults to 'both'.
 
 382 m4_define([_LT_WITH_PIC],
 
 384     [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
 
 385         [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
 
 386     [lt_p=${PACKAGE-default}
 
 388     yes|no) pic_mode=$withval ;;
 
 391       # Look at the argument we got.  We use all the common list separators.
 
 392       lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
 
 393       for lt_pkg in $withval; do
 
 395         if test "X$lt_pkg" = "X$lt_p"; then
 
 402     [pic_mode=m4_default([$1], [default])])
 
 404 _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
 
 407 LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
 
 408 LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
 
 411 AU_DEFUN([AC_LIBTOOL_PICMODE],
 
 412 [_LT_SET_OPTION([LT_INIT], [pic-only])
 
 413 AC_DIAGNOSE([obsolete],
 
 414 [$0: Remove this warning and the call to _LT_SET_OPTION when you
 
 415 put the 'pic-only' option into LT_INIT's first parameter.])
 
 418 dnl aclocal-1.4 backwards compatibility:
 
 419 dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
 
 421 ## ----------------- ##
 
 422 ## LTDL_INIT Options ##
 
 423 ## ----------------- ##
 
 425 m4_define([_LTDL_MODE], [])
 
 426 LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
 
 427                  [m4_define([_LTDL_MODE], [nonrecursive])])
 
 428 LT_OPTION_DEFINE([LTDL_INIT], [recursive],
 
 429                  [m4_define([_LTDL_MODE], [recursive])])
 
 430 LT_OPTION_DEFINE([LTDL_INIT], [subproject],
 
 431                  [m4_define([_LTDL_MODE], [subproject])])
 
 433 m4_define([_LTDL_TYPE], [])
 
 434 LT_OPTION_DEFINE([LTDL_INIT], [installable],
 
 435                  [m4_define([_LTDL_TYPE], [installable])])
 
 436 LT_OPTION_DEFINE([LTDL_INIT], [convenience],
 
 437                  [m4_define([_LTDL_TYPE], [convenience])])