16bea0e4fSmrg# Helper functions for option handling.                    -*- Autoconf -*-
26bea0e4fSmrg#
36bea0e4fSmrg#   Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2024 Free
46bea0e4fSmrg#   Software Foundation, Inc.
56bea0e4fSmrg#   Written by Gary V. Vaughan, 2004
66bea0e4fSmrg#
76bea0e4fSmrg# This file is free software; the Free Software Foundation gives
86bea0e4fSmrg# unlimited permission to copy and/or distribute it, with or without
96bea0e4fSmrg# modifications, as long as this notice is preserved.
106bea0e4fSmrg
116bea0e4fSmrg# serial 10 ltoptions.m4
126bea0e4fSmrg
136bea0e4fSmrg# This is to help aclocal find these macros, as it can't see m4_define.
146bea0e4fSmrgAC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
156bea0e4fSmrg
166bea0e4fSmrg
176bea0e4fSmrg# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
186bea0e4fSmrg# ------------------------------------------
196bea0e4fSmrgm4_define([_LT_MANGLE_OPTION],
206bea0e4fSmrg[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
216bea0e4fSmrg
226bea0e4fSmrg
236bea0e4fSmrg# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
246bea0e4fSmrg# ---------------------------------------
256bea0e4fSmrg# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
266bea0e4fSmrg# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
276bea0e4fSmrg# saved as a flag.
286bea0e4fSmrgm4_define([_LT_SET_OPTION],
296bea0e4fSmrg[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
306bea0e4fSmrgm4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
316bea0e4fSmrg        _LT_MANGLE_DEFUN([$1], [$2]),
326bea0e4fSmrg    [m4_warning([Unknown $1 option '$2'])])[]dnl
336bea0e4fSmrg])
346bea0e4fSmrg
356bea0e4fSmrg
366bea0e4fSmrg# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
376bea0e4fSmrg# ------------------------------------------------------------
386bea0e4fSmrg# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
396bea0e4fSmrgm4_define([_LT_IF_OPTION],
406bea0e4fSmrg[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
416bea0e4fSmrg
426bea0e4fSmrg
436bea0e4fSmrg# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
446bea0e4fSmrg# -------------------------------------------------------
456bea0e4fSmrg# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
466bea0e4fSmrg# are set.
476bea0e4fSmrgm4_define([_LT_UNLESS_OPTIONS],
486bea0e4fSmrg[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
496bea0e4fSmrg	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
506bea0e4fSmrg		      [m4_define([$0_found])])])[]dnl
516bea0e4fSmrgm4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
526bea0e4fSmrg])[]dnl
536bea0e4fSmrg])
546bea0e4fSmrg
556bea0e4fSmrg
566bea0e4fSmrg# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
576bea0e4fSmrg# ----------------------------------------
586bea0e4fSmrg# OPTION-LIST is a space-separated list of Libtool options associated
596bea0e4fSmrg# with MACRO-NAME.  If any OPTION has a matching handler declared with
606bea0e4fSmrg# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
616bea0e4fSmrg# the unknown option and exit.
626bea0e4fSmrgm4_defun([_LT_SET_OPTIONS],
636bea0e4fSmrg[# Set options
646bea0e4fSmrgm4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
656bea0e4fSmrg    [_LT_SET_OPTION([$1], _LT_Option)])
666bea0e4fSmrg
676bea0e4fSmrgm4_if([$1],[LT_INIT],[
686bea0e4fSmrg  dnl
696bea0e4fSmrg  dnl Simply set some default values (i.e off) if boolean options were not
706bea0e4fSmrg  dnl specified:
716bea0e4fSmrg  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
726bea0e4fSmrg  ])
736bea0e4fSmrg  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
746bea0e4fSmrg  ])
756bea0e4fSmrg  dnl
766bea0e4fSmrg  dnl If no reference was made to various pairs of opposing options, then
776bea0e4fSmrg  dnl we run the default mode handler for the pair.  For example, if neither
786bea0e4fSmrg  dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
796bea0e4fSmrg  dnl archives by default:
806bea0e4fSmrg  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
816bea0e4fSmrg  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
826bea0e4fSmrg  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
836bea0e4fSmrg  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
846bea0e4fSmrg		   [_LT_ENABLE_FAST_INSTALL])
856bea0e4fSmrg  _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
866bea0e4fSmrg		   [_LT_WITH_AIX_SONAME([aix])])
876bea0e4fSmrg  ])
886bea0e4fSmrg])# _LT_SET_OPTIONS
896bea0e4fSmrg
906bea0e4fSmrg
916bea0e4fSmrg## --------------------------------- ##
926bea0e4fSmrg## Macros to handle LT_INIT options. ##
936bea0e4fSmrg## --------------------------------- ##
946bea0e4fSmrg
956bea0e4fSmrg# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
966bea0e4fSmrg# -----------------------------------------
976bea0e4fSmrgm4_define([_LT_MANGLE_DEFUN],
986bea0e4fSmrg[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
996bea0e4fSmrg
1006bea0e4fSmrg
1016bea0e4fSmrg# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
1026bea0e4fSmrg# -----------------------------------------------
1036bea0e4fSmrgm4_define([LT_OPTION_DEFINE],
1046bea0e4fSmrg[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
1056bea0e4fSmrg])# LT_OPTION_DEFINE
1066bea0e4fSmrg
1076bea0e4fSmrg
1086bea0e4fSmrg# dlopen
1096bea0e4fSmrg# ------
1106bea0e4fSmrgLT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
1116bea0e4fSmrg])
1126bea0e4fSmrg
1136bea0e4fSmrgAU_DEFUN([AC_LIBTOOL_DLOPEN],
1146bea0e4fSmrg[_LT_SET_OPTION([LT_INIT], [dlopen])
1156bea0e4fSmrgAC_DIAGNOSE([obsolete],
1166bea0e4fSmrg[$0: Remove this warning and the call to _LT_SET_OPTION when you
1176bea0e4fSmrgput the 'dlopen' option into LT_INIT's first parameter.])
1186bea0e4fSmrg])
1196bea0e4fSmrg
1206bea0e4fSmrgdnl aclocal-1.4 backwards compatibility:
1216bea0e4fSmrgdnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
1226bea0e4fSmrg
1236bea0e4fSmrg
1246bea0e4fSmrg# win32-dll
1256bea0e4fSmrg# ---------
1266bea0e4fSmrg# Declare package support for building win32 dll's.
1276bea0e4fSmrgLT_OPTION_DEFINE([LT_INIT], [win32-dll],
1286bea0e4fSmrg[enable_win32_dll=yes
1296bea0e4fSmrg
1306bea0e4fSmrgcase $host in
1316bea0e4fSmrg*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-cegcc*)
1326bea0e4fSmrg  AC_CHECK_TOOL(AS, as, false)
1336bea0e4fSmrg  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
1346bea0e4fSmrg  AC_CHECK_TOOL(OBJDUMP, objdump, false)
1356bea0e4fSmrg  ;;
1366bea0e4fSmrgesac
1376bea0e4fSmrg
1386bea0e4fSmrgtest -z "$AS" && AS=as
1396bea0e4fSmrg_LT_DECL([], [AS],      [1], [Assembler program])dnl
1406bea0e4fSmrg
1416bea0e4fSmrgtest -z "$DLLTOOL" && DLLTOOL=dlltool
1426bea0e4fSmrg_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
1436bea0e4fSmrg
1446bea0e4fSmrgtest -z "$OBJDUMP" && OBJDUMP=objdump
1456bea0e4fSmrg_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
1466bea0e4fSmrg])# win32-dll
1476bea0e4fSmrg
1486bea0e4fSmrgAU_DEFUN([AC_LIBTOOL_WIN32_DLL],
1496bea0e4fSmrg[AC_REQUIRE([AC_CANONICAL_HOST])dnl
1506bea0e4fSmrg_LT_SET_OPTION([LT_INIT], [win32-dll])
1516bea0e4fSmrgAC_DIAGNOSE([obsolete],
1526bea0e4fSmrg[$0: Remove this warning and the call to _LT_SET_OPTION when you
1536bea0e4fSmrgput the 'win32-dll' option into LT_INIT's first parameter.])
1546bea0e4fSmrg])
1556bea0e4fSmrg
1566bea0e4fSmrgdnl aclocal-1.4 backwards compatibility:
1576bea0e4fSmrgdnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
1586bea0e4fSmrg
1596bea0e4fSmrg
1606bea0e4fSmrg# _LT_ENABLE_SHARED([DEFAULT])
1616bea0e4fSmrg# ----------------------------
1626bea0e4fSmrg# implement the --enable-shared flag, and supports the 'shared' and
1636bea0e4fSmrg# 'disable-shared' LT_INIT options.
1646bea0e4fSmrg# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
1656bea0e4fSmrgm4_define([_LT_ENABLE_SHARED],
1666bea0e4fSmrg[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
1676bea0e4fSmrgAC_ARG_ENABLE([shared],
1686bea0e4fSmrg    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
1696bea0e4fSmrg	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
1706bea0e4fSmrg    [p=${PACKAGE-default}
1716bea0e4fSmrg    case $enableval in
1726bea0e4fSmrg    yes) enable_shared=yes ;;
1736bea0e4fSmrg    no) enable_shared=no ;;
1746bea0e4fSmrg    *)
1756bea0e4fSmrg      enable_shared=no
1766bea0e4fSmrg      # Look at the argument we got.  We use all the common list separators.
1776bea0e4fSmrg      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
1786bea0e4fSmrg      for pkg in $enableval; do
1796bea0e4fSmrg	IFS=$lt_save_ifs
1806bea0e4fSmrg	if test "X$pkg" = "X$p"; then
1816bea0e4fSmrg	  enable_shared=yes
1826bea0e4fSmrg	fi
1836bea0e4fSmrg      done
1846bea0e4fSmrg      IFS=$lt_save_ifs
1856bea0e4fSmrg      ;;
1866bea0e4fSmrg    esac],
1876bea0e4fSmrg    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
1886bea0e4fSmrg
1896bea0e4fSmrg    _LT_DECL([build_libtool_libs], [enable_shared], [0],
1906bea0e4fSmrg	[Whether or not to build shared libraries])
1916bea0e4fSmrg])# _LT_ENABLE_SHARED
1926bea0e4fSmrg
1936bea0e4fSmrgLT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
1946bea0e4fSmrgLT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
1956bea0e4fSmrg
1966bea0e4fSmrg# Old names:
1976bea0e4fSmrgAC_DEFUN([AC_ENABLE_SHARED],
1986bea0e4fSmrg[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
1996bea0e4fSmrg])
2006bea0e4fSmrg
2016bea0e4fSmrgAC_DEFUN([AC_DISABLE_SHARED],
2026bea0e4fSmrg[_LT_SET_OPTION([LT_INIT], [disable-shared])
2036bea0e4fSmrg])
2046bea0e4fSmrg
2056bea0e4fSmrgAU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
2066bea0e4fSmrgAU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
2076bea0e4fSmrg
2086bea0e4fSmrgdnl aclocal-1.4 backwards compatibility:
2096bea0e4fSmrgdnl AC_DEFUN([AM_ENABLE_SHARED], [])
2106bea0e4fSmrgdnl AC_DEFUN([AM_DISABLE_SHARED], [])
2116bea0e4fSmrg
2126bea0e4fSmrg
2136bea0e4fSmrg
2146bea0e4fSmrg# _LT_ENABLE_STATIC([DEFAULT])
2156bea0e4fSmrg# ----------------------------
2166bea0e4fSmrg# implement the --enable-static flag, and support the 'static' and
2176bea0e4fSmrg# 'disable-static' LT_INIT options.
2186bea0e4fSmrg# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
2196bea0e4fSmrgm4_define([_LT_ENABLE_STATIC],
2206bea0e4fSmrg[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
2216bea0e4fSmrgAC_ARG_ENABLE([static],
2226bea0e4fSmrg    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
2236bea0e4fSmrg	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
2246bea0e4fSmrg    [p=${PACKAGE-default}
2256bea0e4fSmrg    case $enableval in
2266bea0e4fSmrg    yes) enable_static=yes ;;
2276bea0e4fSmrg    no) enable_static=no ;;
2286bea0e4fSmrg    *)
2296bea0e4fSmrg     enable_static=no
2306bea0e4fSmrg      # Look at the argument we got.  We use all the common list separators.
2316bea0e4fSmrg      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
2326bea0e4fSmrg      for pkg in $enableval; do
2336bea0e4fSmrg	IFS=$lt_save_ifs
2346bea0e4fSmrg	if test "X$pkg" = "X$p"; then
2356bea0e4fSmrg	  enable_static=yes
2366bea0e4fSmrg	fi
2376bea0e4fSmrg      done
2386bea0e4fSmrg      IFS=$lt_save_ifs
2396bea0e4fSmrg      ;;
2406bea0e4fSmrg    esac],
2416bea0e4fSmrg    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
2426bea0e4fSmrg
2436bea0e4fSmrg    _LT_DECL([build_old_libs], [enable_static], [0],
2446bea0e4fSmrg	[Whether or not to build static libraries])
2456bea0e4fSmrg])# _LT_ENABLE_STATIC
2466bea0e4fSmrg
2476bea0e4fSmrgLT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
2486bea0e4fSmrgLT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
2496bea0e4fSmrg
2506bea0e4fSmrg# Old names:
2516bea0e4fSmrgAC_DEFUN([AC_ENABLE_STATIC],
2526bea0e4fSmrg[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
2536bea0e4fSmrg])
2546bea0e4fSmrg
2556bea0e4fSmrgAC_DEFUN([AC_DISABLE_STATIC],
2566bea0e4fSmrg[_LT_SET_OPTION([LT_INIT], [disable-static])
2576bea0e4fSmrg])
2586bea0e4fSmrg
2596bea0e4fSmrgAU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
2606bea0e4fSmrgAU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
2616bea0e4fSmrg
2626bea0e4fSmrgdnl aclocal-1.4 backwards compatibility:
2636bea0e4fSmrgdnl AC_DEFUN([AM_ENABLE_STATIC], [])
2646bea0e4fSmrgdnl AC_DEFUN([AM_DISABLE_STATIC], [])
2656bea0e4fSmrg
2666bea0e4fSmrg
2676bea0e4fSmrg
2686bea0e4fSmrg# _LT_ENABLE_FAST_INSTALL([DEFAULT])
2696bea0e4fSmrg# ----------------------------------
2706bea0e4fSmrg# implement the --enable-fast-install flag, and support the 'fast-install'
2716bea0e4fSmrg# and 'disable-fast-install' LT_INIT options.
2726bea0e4fSmrg# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
2736bea0e4fSmrgm4_define([_LT_ENABLE_FAST_INSTALL],
2746bea0e4fSmrg[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
2756bea0e4fSmrgAC_ARG_ENABLE([fast-install],
2766bea0e4fSmrg    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
2776bea0e4fSmrg    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
2786bea0e4fSmrg    [p=${PACKAGE-default}
2796bea0e4fSmrg    case $enableval in
2806bea0e4fSmrg    yes) enable_fast_install=yes ;;
2816bea0e4fSmrg    no) enable_fast_install=no ;;
2826bea0e4fSmrg    *)
2836bea0e4fSmrg      enable_fast_install=no
2846bea0e4fSmrg      # Look at the argument we got.  We use all the common list separators.
2856bea0e4fSmrg      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
2866bea0e4fSmrg      for pkg in $enableval; do
2876bea0e4fSmrg	IFS=$lt_save_ifs
2886bea0e4fSmrg	if test "X$pkg" = "X$p"; then
2896bea0e4fSmrg	  enable_fast_install=yes
2906bea0e4fSmrg	fi
2916bea0e4fSmrg      done
2926bea0e4fSmrg      IFS=$lt_save_ifs
2936bea0e4fSmrg      ;;
2946bea0e4fSmrg    esac],
2956bea0e4fSmrg    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
2966bea0e4fSmrg
2976bea0e4fSmrg_LT_DECL([fast_install], [enable_fast_install], [0],
2986bea0e4fSmrg	 [Whether or not to optimize for fast installation])dnl
2996bea0e4fSmrg])# _LT_ENABLE_FAST_INSTALL
3006bea0e4fSmrg
3016bea0e4fSmrgLT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
3026bea0e4fSmrgLT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
3036bea0e4fSmrg
3046bea0e4fSmrg# Old names:
3056bea0e4fSmrgAU_DEFUN([AC_ENABLE_FAST_INSTALL],
3066bea0e4fSmrg[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
3076bea0e4fSmrgAC_DIAGNOSE([obsolete],
3086bea0e4fSmrg[$0: Remove this warning and the call to _LT_SET_OPTION when you put
3096bea0e4fSmrgthe 'fast-install' option into LT_INIT's first parameter.])
3106bea0e4fSmrg])
3116bea0e4fSmrg
3126bea0e4fSmrgAU_DEFUN([AC_DISABLE_FAST_INSTALL],
3136bea0e4fSmrg[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
3146bea0e4fSmrgAC_DIAGNOSE([obsolete],
3156bea0e4fSmrg[$0: Remove this warning and the call to _LT_SET_OPTION when you put
3166bea0e4fSmrgthe 'disable-fast-install' option into LT_INIT's first parameter.])
3176bea0e4fSmrg])
3186bea0e4fSmrg
3196bea0e4fSmrgdnl aclocal-1.4 backwards compatibility:
3206bea0e4fSmrgdnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
3216bea0e4fSmrgdnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
3226bea0e4fSmrg
3236bea0e4fSmrg
3246bea0e4fSmrg# _LT_WITH_AIX_SONAME([DEFAULT])
3256bea0e4fSmrg# ----------------------------------
3266bea0e4fSmrg# implement the --enable-aix-soname configure option, and support the
3276bea0e4fSmrg# `aix-soname=aix' and `aix-soname=both' and `aix-soname=svr4' LT_INIT options.
3286bea0e4fSmrg# DEFAULT is either `aix', `both', or `svr4'.  If omitted, it defaults to `aix'.
3296bea0e4fSmrgm4_define([_LT_WITH_AIX_SONAME],
3306bea0e4fSmrg[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
3316bea0e4fSmrgshared_archive_member_spec=
3326bea0e4fSmrgcase $host,$enable_shared in
3336bea0e4fSmrgpower*-*-aix[[5-9]]*,yes)
3346bea0e4fSmrg  AC_MSG_CHECKING([which variant of shared library versioning to provide])
3356bea0e4fSmrg  AC_ARG_ENABLE([aix-soname],
3366bea0e4fSmrg    [AS_HELP_STRING([--enable-aix-soname=aix|svr4|both],
3376bea0e4fSmrg      [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
3386bea0e4fSmrg    [case $enableval in
3396bea0e4fSmrg     aix|svr4|both)
3406bea0e4fSmrg       ;;
3416bea0e4fSmrg     *)
3426bea0e4fSmrg       AC_MSG_ERROR([Unknown argument to --enable-aix-soname])
3436bea0e4fSmrg       ;;
3446bea0e4fSmrg     esac
3456bea0e4fSmrg     lt_cv_with_aix_soname=$enable_aix_soname],
3466bea0e4fSmrg    [_AC_ENABLE_IF([with], [aix-soname],
3476bea0e4fSmrg        [case $withval in
3486bea0e4fSmrg         aix|svr4|both)
3496bea0e4fSmrg           ;;
3506bea0e4fSmrg         *)
3516bea0e4fSmrg           AC_MSG_ERROR([Unknown argument to --with-aix-soname])
3526bea0e4fSmrg           ;;
3536bea0e4fSmrg         esac
3546bea0e4fSmrg         lt_cv_with_aix_soname=$with_aix_soname],
3556bea0e4fSmrg        [AC_CACHE_VAL([lt_cv_with_aix_soname],
3566bea0e4fSmrg           [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)])
3576bea0e4fSmrg     enable_aix_soname=$lt_cv_with_aix_soname])
3586bea0e4fSmrg  with_aix_soname=$enable_aix_soname
3596bea0e4fSmrg  AC_MSG_RESULT([$with_aix_soname])
3606bea0e4fSmrg  if test aix != "$with_aix_soname"; then
3616bea0e4fSmrg    # For the AIX way of multilib, we name the shared archive member
3626bea0e4fSmrg    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
3636bea0e4fSmrg    # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
3646bea0e4fSmrg    # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
3656bea0e4fSmrg    # the AIX toolchain works better with OBJECT_MODE set (default 32).
3666bea0e4fSmrg    if test 64 = "${OBJECT_MODE-32}"; then
3676bea0e4fSmrg      shared_archive_member_spec=shr_64
3686bea0e4fSmrg    else
3696bea0e4fSmrg      shared_archive_member_spec=shr
3706bea0e4fSmrg    fi
3716bea0e4fSmrg  fi
3726bea0e4fSmrg  ;;
3736bea0e4fSmrg*)
3746bea0e4fSmrg  with_aix_soname=aix
3756bea0e4fSmrg  ;;
3766bea0e4fSmrgesac
3776bea0e4fSmrg
3786bea0e4fSmrg_LT_DECL([], [shared_archive_member_spec], [0],
3796bea0e4fSmrg    [Shared archive member basename, for filename based shared library versioning on AIX])dnl
3806bea0e4fSmrg])# _LT_WITH_AIX_SONAME
3816bea0e4fSmrg
3826bea0e4fSmrgLT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
3836bea0e4fSmrgLT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
3846bea0e4fSmrgLT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
3856bea0e4fSmrg
3866bea0e4fSmrg
3876bea0e4fSmrg# _LT_WITH_PIC([MODE])
3886bea0e4fSmrg# --------------------
3896bea0e4fSmrg# implement the --enable-pic flag, and support the 'pic-only' and 'no-pic'
3906bea0e4fSmrg# LT_INIT options.
3916bea0e4fSmrg# MODE is either 'yes' or 'no'.  If omitted, it defaults to 'both'.
3926bea0e4fSmrgm4_define([_LT_WITH_PIC],
3936bea0e4fSmrg[AC_ARG_ENABLE([pic],
3946bea0e4fSmrg    [AS_HELP_STRING([--enable-pic@<:@=PKGS@:>@],
3956bea0e4fSmrg	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
3966bea0e4fSmrg    [lt_p=${PACKAGE-default}
3976bea0e4fSmrg     case $enableval in
3986bea0e4fSmrg     yes|no) pic_mode=$enableval ;;
3996bea0e4fSmrg     *)
4006bea0e4fSmrg       pic_mode=default
4016bea0e4fSmrg       # Look at the argument we got.  We use all the common list separators.
4026bea0e4fSmrg       lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
4036bea0e4fSmrg       for lt_pkg in $enableval; do
4046bea0e4fSmrg	 IFS=$lt_save_ifs
4056bea0e4fSmrg	 if test "X$lt_pkg" = "X$lt_p"; then
4066bea0e4fSmrg	   pic_mode=yes
4076bea0e4fSmrg	 fi
4086bea0e4fSmrg       done
4096bea0e4fSmrg       IFS=$lt_save_ifs
4106bea0e4fSmrg       ;;
4116bea0e4fSmrg     esac],
4126bea0e4fSmrg    [dnl Continue to support --with-pic and --without-pic, for backward
4136bea0e4fSmrg     dnl compatibility.
4146bea0e4fSmrg     _AC_ENABLE_IF([with], [pic],
4156bea0e4fSmrg	[lt_p=${PACKAGE-default}
4166bea0e4fSmrg	 case $withval in
4176bea0e4fSmrg	 yes|no) pic_mode=$withval ;;
4186bea0e4fSmrg	 *)
4196bea0e4fSmrg	   pic_mode=default
4206bea0e4fSmrg	   # Look at the argument we got.  We use all the common list separators.
4216bea0e4fSmrg	   lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
4226bea0e4fSmrg	   for lt_pkg in $withval; do
4236bea0e4fSmrg	     IFS=$lt_save_ifs
4246bea0e4fSmrg	     if test "X$lt_pkg" = "X$lt_p"; then
4256bea0e4fSmrg	       pic_mode=yes
4266bea0e4fSmrg	     fi
4276bea0e4fSmrg	   done
4286bea0e4fSmrg	   IFS=$lt_save_ifs
4296bea0e4fSmrg	   ;;
4306bea0e4fSmrg	 esac],
4316bea0e4fSmrg	[pic_mode=m4_default([$1], [default])])]
4326bea0e4fSmrg    )
4336bea0e4fSmrg
4346bea0e4fSmrg_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
4356bea0e4fSmrg])# _LT_WITH_PIC
4366bea0e4fSmrg
4376bea0e4fSmrgLT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
4386bea0e4fSmrgLT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
4396bea0e4fSmrg
4406bea0e4fSmrg# Old name:
4416bea0e4fSmrgAU_DEFUN([AC_LIBTOOL_PICMODE],
4426bea0e4fSmrg[_LT_SET_OPTION([LT_INIT], [pic-only])
4436bea0e4fSmrgAC_DIAGNOSE([obsolete],
4446bea0e4fSmrg[$0: Remove this warning and the call to _LT_SET_OPTION when you
4456bea0e4fSmrgput the 'pic-only' option into LT_INIT's first parameter.])
4466bea0e4fSmrg])
4476bea0e4fSmrg
4486bea0e4fSmrgdnl aclocal-1.4 backwards compatibility:
4496bea0e4fSmrgdnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
4506bea0e4fSmrg
4516bea0e4fSmrg## ----------------- ##
4526bea0e4fSmrg## LTDL_INIT Options ##
4536bea0e4fSmrg## ----------------- ##
4546bea0e4fSmrg
4556bea0e4fSmrgm4_define([_LTDL_MODE], [])
4566bea0e4fSmrgLT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
4576bea0e4fSmrg		 [m4_define([_LTDL_MODE], [nonrecursive])])
4586bea0e4fSmrgLT_OPTION_DEFINE([LTDL_INIT], [recursive],
4596bea0e4fSmrg		 [m4_define([_LTDL_MODE], [recursive])])
4606bea0e4fSmrgLT_OPTION_DEFINE([LTDL_INIT], [subproject],
4616bea0e4fSmrg		 [m4_define([_LTDL_MODE], [subproject])])
4626bea0e4fSmrg
4636bea0e4fSmrgm4_define([_LTDL_TYPE], [])
4646bea0e4fSmrgLT_OPTION_DEFINE([LTDL_INIT], [installable],
4656bea0e4fSmrg		 [m4_define([_LTDL_TYPE], [installable])])
4666bea0e4fSmrgLT_OPTION_DEFINE([LTDL_INIT], [convenience],
4676bea0e4fSmrg		 [m4_define([_LTDL_TYPE], [convenience])])
468