xref: /freebsd/contrib/openbsm/m4/ltoptions.m4 (revision 5e386598a6d77973b93c073080f0cc574edda9e2)
1aa772005SRobert Watson# Helper functions for option handling.                    -*- Autoconf -*-
2aa772005SRobert Watson#
3*5e386598SRobert Watson#   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
4*5e386598SRobert Watson#   Foundation, Inc.
5aa772005SRobert Watson#   Written by Gary V. Vaughan, 2004
6aa772005SRobert Watson#
7aa772005SRobert Watson# This file is free software; the Free Software Foundation gives
8aa772005SRobert Watson# unlimited permission to copy and/or distribute it, with or without
9aa772005SRobert Watson# modifications, as long as this notice is preserved.
10aa772005SRobert Watson
11*5e386598SRobert Watson# serial 8 ltoptions.m4
12aa772005SRobert Watson
13aa772005SRobert Watson# This is to help aclocal find these macros, as it can't see m4_define.
14aa772005SRobert WatsonAC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
15aa772005SRobert Watson
16aa772005SRobert Watson
17aa772005SRobert Watson# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
18aa772005SRobert Watson# ------------------------------------------
19aa772005SRobert Watsonm4_define([_LT_MANGLE_OPTION],
20aa772005SRobert Watson[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
21aa772005SRobert Watson
22aa772005SRobert Watson
23aa772005SRobert Watson# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
24aa772005SRobert Watson# ---------------------------------------
25aa772005SRobert Watson# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
26aa772005SRobert Watson# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
27aa772005SRobert Watson# saved as a flag.
28aa772005SRobert Watsonm4_define([_LT_SET_OPTION],
29aa772005SRobert Watson[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
30aa772005SRobert Watsonm4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
31aa772005SRobert Watson        _LT_MANGLE_DEFUN([$1], [$2]),
32*5e386598SRobert Watson    [m4_warning([Unknown $1 option '$2'])])[]dnl
33aa772005SRobert Watson])
34aa772005SRobert Watson
35aa772005SRobert Watson
36aa772005SRobert Watson# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
37aa772005SRobert Watson# ------------------------------------------------------------
38aa772005SRobert Watson# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
39aa772005SRobert Watsonm4_define([_LT_IF_OPTION],
40aa772005SRobert Watson[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
41aa772005SRobert Watson
42aa772005SRobert Watson
43aa772005SRobert Watson# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
44aa772005SRobert Watson# -------------------------------------------------------
45aa772005SRobert Watson# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
46aa772005SRobert Watson# are set.
47aa772005SRobert Watsonm4_define([_LT_UNLESS_OPTIONS],
48aa772005SRobert Watson[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
49aa772005SRobert Watson	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
50aa772005SRobert Watson		      [m4_define([$0_found])])])[]dnl
51aa772005SRobert Watsonm4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
52aa772005SRobert Watson])[]dnl
53aa772005SRobert Watson])
54aa772005SRobert Watson
55aa772005SRobert Watson
56aa772005SRobert Watson# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
57aa772005SRobert Watson# ----------------------------------------
58aa772005SRobert Watson# OPTION-LIST is a space-separated list of Libtool options associated
59aa772005SRobert Watson# with MACRO-NAME.  If any OPTION has a matching handler declared with
60aa772005SRobert Watson# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
61aa772005SRobert Watson# the unknown option and exit.
62aa772005SRobert Watsonm4_defun([_LT_SET_OPTIONS],
63aa772005SRobert Watson[# Set options
64aa772005SRobert Watsonm4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
65aa772005SRobert Watson    [_LT_SET_OPTION([$1], _LT_Option)])
66aa772005SRobert Watson
67aa772005SRobert Watsonm4_if([$1],[LT_INIT],[
68aa772005SRobert Watson  dnl
69aa772005SRobert Watson  dnl Simply set some default values (i.e off) if boolean options were not
70aa772005SRobert Watson  dnl specified:
71aa772005SRobert Watson  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
72aa772005SRobert Watson  ])
73aa772005SRobert Watson  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
74aa772005SRobert Watson  ])
75aa772005SRobert Watson  dnl
76aa772005SRobert Watson  dnl If no reference was made to various pairs of opposing options, then
77aa772005SRobert Watson  dnl we run the default mode handler for the pair.  For example, if neither
78*5e386598SRobert Watson  dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
79aa772005SRobert Watson  dnl archives by default:
80aa772005SRobert Watson  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
81aa772005SRobert Watson  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
82aa772005SRobert Watson  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
83aa772005SRobert Watson  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
84aa772005SRobert Watson		   [_LT_ENABLE_FAST_INSTALL])
85*5e386598SRobert Watson  _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
86*5e386598SRobert Watson		   [_LT_WITH_AIX_SONAME([aix])])
87aa772005SRobert Watson  ])
88aa772005SRobert Watson])# _LT_SET_OPTIONS
89aa772005SRobert Watson
90aa772005SRobert Watson
91aa772005SRobert Watson## --------------------------------- ##
92aa772005SRobert Watson## Macros to handle LT_INIT options. ##
93aa772005SRobert Watson## --------------------------------- ##
94aa772005SRobert Watson
95aa772005SRobert Watson# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
96aa772005SRobert Watson# -----------------------------------------
97aa772005SRobert Watsonm4_define([_LT_MANGLE_DEFUN],
98aa772005SRobert Watson[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
99aa772005SRobert Watson
100aa772005SRobert Watson
101aa772005SRobert Watson# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
102aa772005SRobert Watson# -----------------------------------------------
103aa772005SRobert Watsonm4_define([LT_OPTION_DEFINE],
104aa772005SRobert Watson[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
105aa772005SRobert Watson])# LT_OPTION_DEFINE
106aa772005SRobert Watson
107aa772005SRobert Watson
108aa772005SRobert Watson# dlopen
109aa772005SRobert Watson# ------
110aa772005SRobert WatsonLT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
111aa772005SRobert Watson])
112aa772005SRobert Watson
113aa772005SRobert WatsonAU_DEFUN([AC_LIBTOOL_DLOPEN],
114aa772005SRobert Watson[_LT_SET_OPTION([LT_INIT], [dlopen])
115aa772005SRobert WatsonAC_DIAGNOSE([obsolete],
116aa772005SRobert Watson[$0: Remove this warning and the call to _LT_SET_OPTION when you
117*5e386598SRobert Watsonput the 'dlopen' option into LT_INIT's first parameter.])
118aa772005SRobert Watson])
119aa772005SRobert Watson
120aa772005SRobert Watsondnl aclocal-1.4 backwards compatibility:
121aa772005SRobert Watsondnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
122aa772005SRobert Watson
123aa772005SRobert Watson
124aa772005SRobert Watson# win32-dll
125aa772005SRobert Watson# ---------
126aa772005SRobert Watson# Declare package support for building win32 dll's.
127aa772005SRobert WatsonLT_OPTION_DEFINE([LT_INIT], [win32-dll],
128aa772005SRobert Watson[enable_win32_dll=yes
129aa772005SRobert Watson
130aa772005SRobert Watsoncase $host in
131aa772005SRobert Watson*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
132aa772005SRobert Watson  AC_CHECK_TOOL(AS, as, false)
133aa772005SRobert Watson  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
134aa772005SRobert Watson  AC_CHECK_TOOL(OBJDUMP, objdump, false)
135aa772005SRobert Watson  ;;
136aa772005SRobert Watsonesac
137aa772005SRobert Watson
138aa772005SRobert Watsontest -z "$AS" && AS=as
139aa772005SRobert Watson_LT_DECL([], [AS],      [1], [Assembler program])dnl
140aa772005SRobert Watson
141aa772005SRobert Watsontest -z "$DLLTOOL" && DLLTOOL=dlltool
142aa772005SRobert Watson_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
143aa772005SRobert Watson
144aa772005SRobert Watsontest -z "$OBJDUMP" && OBJDUMP=objdump
145aa772005SRobert Watson_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
146aa772005SRobert Watson])# win32-dll
147aa772005SRobert Watson
148aa772005SRobert WatsonAU_DEFUN([AC_LIBTOOL_WIN32_DLL],
149aa772005SRobert Watson[AC_REQUIRE([AC_CANONICAL_HOST])dnl
150aa772005SRobert Watson_LT_SET_OPTION([LT_INIT], [win32-dll])
151aa772005SRobert WatsonAC_DIAGNOSE([obsolete],
152aa772005SRobert Watson[$0: Remove this warning and the call to _LT_SET_OPTION when you
153*5e386598SRobert Watsonput the 'win32-dll' option into LT_INIT's first parameter.])
154aa772005SRobert Watson])
155aa772005SRobert Watson
156aa772005SRobert Watsondnl aclocal-1.4 backwards compatibility:
157aa772005SRobert Watsondnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
158aa772005SRobert Watson
159aa772005SRobert Watson
160aa772005SRobert Watson# _LT_ENABLE_SHARED([DEFAULT])
161aa772005SRobert Watson# ----------------------------
162*5e386598SRobert Watson# implement the --enable-shared flag, and supports the 'shared' and
163*5e386598SRobert Watson# 'disable-shared' LT_INIT options.
164*5e386598SRobert Watson# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
165aa772005SRobert Watsonm4_define([_LT_ENABLE_SHARED],
166aa772005SRobert Watson[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
167aa772005SRobert WatsonAC_ARG_ENABLE([shared],
168aa772005SRobert Watson    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
169aa772005SRobert Watson	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
170aa772005SRobert Watson    [p=${PACKAGE-default}
171aa772005SRobert Watson    case $enableval in
172aa772005SRobert Watson    yes) enable_shared=yes ;;
173aa772005SRobert Watson    no) enable_shared=no ;;
174aa772005SRobert Watson    *)
175aa772005SRobert Watson      enable_shared=no
176aa772005SRobert Watson      # Look at the argument we got.  We use all the common list separators.
177*5e386598SRobert Watson      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
178aa772005SRobert Watson      for pkg in $enableval; do
179*5e386598SRobert Watson	IFS=$lt_save_ifs
180aa772005SRobert Watson	if test "X$pkg" = "X$p"; then
181aa772005SRobert Watson	  enable_shared=yes
182aa772005SRobert Watson	fi
183aa772005SRobert Watson      done
184*5e386598SRobert Watson      IFS=$lt_save_ifs
185aa772005SRobert Watson      ;;
186aa772005SRobert Watson    esac],
187aa772005SRobert Watson    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
188aa772005SRobert Watson
189aa772005SRobert Watson    _LT_DECL([build_libtool_libs], [enable_shared], [0],
190aa772005SRobert Watson	[Whether or not to build shared libraries])
191aa772005SRobert Watson])# _LT_ENABLE_SHARED
192aa772005SRobert Watson
193aa772005SRobert WatsonLT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
194aa772005SRobert WatsonLT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
195aa772005SRobert Watson
196aa772005SRobert Watson# Old names:
197aa772005SRobert WatsonAC_DEFUN([AC_ENABLE_SHARED],
198aa772005SRobert Watson[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
199aa772005SRobert Watson])
200aa772005SRobert Watson
201aa772005SRobert WatsonAC_DEFUN([AC_DISABLE_SHARED],
202aa772005SRobert Watson[_LT_SET_OPTION([LT_INIT], [disable-shared])
203aa772005SRobert Watson])
204aa772005SRobert Watson
205aa772005SRobert WatsonAU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
206aa772005SRobert WatsonAU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
207aa772005SRobert Watson
208aa772005SRobert Watsondnl aclocal-1.4 backwards compatibility:
209aa772005SRobert Watsondnl AC_DEFUN([AM_ENABLE_SHARED], [])
210aa772005SRobert Watsondnl AC_DEFUN([AM_DISABLE_SHARED], [])
211aa772005SRobert Watson
212aa772005SRobert Watson
213aa772005SRobert Watson
214aa772005SRobert Watson# _LT_ENABLE_STATIC([DEFAULT])
215aa772005SRobert Watson# ----------------------------
216*5e386598SRobert Watson# implement the --enable-static flag, and support the 'static' and
217*5e386598SRobert Watson# 'disable-static' LT_INIT options.
218*5e386598SRobert Watson# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
219aa772005SRobert Watsonm4_define([_LT_ENABLE_STATIC],
220aa772005SRobert Watson[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
221aa772005SRobert WatsonAC_ARG_ENABLE([static],
222aa772005SRobert Watson    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
223aa772005SRobert Watson	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
224aa772005SRobert Watson    [p=${PACKAGE-default}
225aa772005SRobert Watson    case $enableval in
226aa772005SRobert Watson    yes) enable_static=yes ;;
227aa772005SRobert Watson    no) enable_static=no ;;
228aa772005SRobert Watson    *)
229aa772005SRobert Watson     enable_static=no
230aa772005SRobert Watson      # Look at the argument we got.  We use all the common list separators.
231*5e386598SRobert Watson      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
232aa772005SRobert Watson      for pkg in $enableval; do
233*5e386598SRobert Watson	IFS=$lt_save_ifs
234aa772005SRobert Watson	if test "X$pkg" = "X$p"; then
235aa772005SRobert Watson	  enable_static=yes
236aa772005SRobert Watson	fi
237aa772005SRobert Watson      done
238*5e386598SRobert Watson      IFS=$lt_save_ifs
239aa772005SRobert Watson      ;;
240aa772005SRobert Watson    esac],
241aa772005SRobert Watson    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
242aa772005SRobert Watson
243aa772005SRobert Watson    _LT_DECL([build_old_libs], [enable_static], [0],
244aa772005SRobert Watson	[Whether or not to build static libraries])
245aa772005SRobert Watson])# _LT_ENABLE_STATIC
246aa772005SRobert Watson
247aa772005SRobert WatsonLT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
248aa772005SRobert WatsonLT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
249aa772005SRobert Watson
250aa772005SRobert Watson# Old names:
251aa772005SRobert WatsonAC_DEFUN([AC_ENABLE_STATIC],
252aa772005SRobert Watson[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
253aa772005SRobert Watson])
254aa772005SRobert Watson
255aa772005SRobert WatsonAC_DEFUN([AC_DISABLE_STATIC],
256aa772005SRobert Watson[_LT_SET_OPTION([LT_INIT], [disable-static])
257aa772005SRobert Watson])
258aa772005SRobert Watson
259aa772005SRobert WatsonAU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
260aa772005SRobert WatsonAU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
261aa772005SRobert Watson
262aa772005SRobert Watsondnl aclocal-1.4 backwards compatibility:
263aa772005SRobert Watsondnl AC_DEFUN([AM_ENABLE_STATIC], [])
264aa772005SRobert Watsondnl AC_DEFUN([AM_DISABLE_STATIC], [])
265aa772005SRobert Watson
266aa772005SRobert Watson
267aa772005SRobert Watson
268aa772005SRobert Watson# _LT_ENABLE_FAST_INSTALL([DEFAULT])
269aa772005SRobert Watson# ----------------------------------
270*5e386598SRobert Watson# implement the --enable-fast-install flag, and support the 'fast-install'
271*5e386598SRobert Watson# and 'disable-fast-install' LT_INIT options.
272*5e386598SRobert Watson# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
273aa772005SRobert Watsonm4_define([_LT_ENABLE_FAST_INSTALL],
274aa772005SRobert Watson[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
275aa772005SRobert WatsonAC_ARG_ENABLE([fast-install],
276aa772005SRobert Watson    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
277aa772005SRobert Watson    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
278aa772005SRobert Watson    [p=${PACKAGE-default}
279aa772005SRobert Watson    case $enableval in
280aa772005SRobert Watson    yes) enable_fast_install=yes ;;
281aa772005SRobert Watson    no) enable_fast_install=no ;;
282aa772005SRobert Watson    *)
283aa772005SRobert Watson      enable_fast_install=no
284aa772005SRobert Watson      # Look at the argument we got.  We use all the common list separators.
285*5e386598SRobert Watson      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
286aa772005SRobert Watson      for pkg in $enableval; do
287*5e386598SRobert Watson	IFS=$lt_save_ifs
288aa772005SRobert Watson	if test "X$pkg" = "X$p"; then
289aa772005SRobert Watson	  enable_fast_install=yes
290aa772005SRobert Watson	fi
291aa772005SRobert Watson      done
292*5e386598SRobert Watson      IFS=$lt_save_ifs
293aa772005SRobert Watson      ;;
294aa772005SRobert Watson    esac],
295aa772005SRobert Watson    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
296aa772005SRobert Watson
297aa772005SRobert Watson_LT_DECL([fast_install], [enable_fast_install], [0],
298aa772005SRobert Watson	 [Whether or not to optimize for fast installation])dnl
299aa772005SRobert Watson])# _LT_ENABLE_FAST_INSTALL
300aa772005SRobert Watson
301aa772005SRobert WatsonLT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
302aa772005SRobert WatsonLT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
303aa772005SRobert Watson
304aa772005SRobert Watson# Old names:
305aa772005SRobert WatsonAU_DEFUN([AC_ENABLE_FAST_INSTALL],
306aa772005SRobert Watson[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
307aa772005SRobert WatsonAC_DIAGNOSE([obsolete],
308aa772005SRobert Watson[$0: Remove this warning and the call to _LT_SET_OPTION when you put
309*5e386598SRobert Watsonthe 'fast-install' option into LT_INIT's first parameter.])
310aa772005SRobert Watson])
311aa772005SRobert Watson
312aa772005SRobert WatsonAU_DEFUN([AC_DISABLE_FAST_INSTALL],
313aa772005SRobert Watson[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
314aa772005SRobert WatsonAC_DIAGNOSE([obsolete],
315aa772005SRobert Watson[$0: Remove this warning and the call to _LT_SET_OPTION when you put
316*5e386598SRobert Watsonthe 'disable-fast-install' option into LT_INIT's first parameter.])
317aa772005SRobert Watson])
318aa772005SRobert Watson
319aa772005SRobert Watsondnl aclocal-1.4 backwards compatibility:
320aa772005SRobert Watsondnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
321aa772005SRobert Watsondnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
322aa772005SRobert Watson
323aa772005SRobert Watson
324*5e386598SRobert Watson# _LT_WITH_AIX_SONAME([DEFAULT])
325*5e386598SRobert Watson# ----------------------------------
326*5e386598SRobert Watson# implement the --with-aix-soname flag, and support the `aix-soname=aix'
327*5e386598SRobert Watson# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
328*5e386598SRobert Watson# is either `aix', `both' or `svr4'.  If omitted, it defaults to `aix'.
329*5e386598SRobert Watsonm4_define([_LT_WITH_AIX_SONAME],
330*5e386598SRobert Watson[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
331*5e386598SRobert Watsonshared_archive_member_spec=
332*5e386598SRobert Watsoncase $host,$enable_shared in
333*5e386598SRobert Watsonpower*-*-aix[[5-9]]*,yes)
334*5e386598SRobert Watson  AC_MSG_CHECKING([which variant of shared library versioning to provide])
335*5e386598SRobert Watson  AC_ARG_WITH([aix-soname],
336*5e386598SRobert Watson    [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
337*5e386598SRobert Watson      [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
338*5e386598SRobert Watson    [case $withval in
339*5e386598SRobert Watson    aix|svr4|both)
340*5e386598SRobert Watson      ;;
341*5e386598SRobert Watson    *)
342*5e386598SRobert Watson      AC_MSG_ERROR([Unknown argument to --with-aix-soname])
343*5e386598SRobert Watson      ;;
344*5e386598SRobert Watson    esac
345*5e386598SRobert Watson    lt_cv_with_aix_soname=$with_aix_soname],
346*5e386598SRobert Watson    [AC_CACHE_VAL([lt_cv_with_aix_soname],
347*5e386598SRobert Watson      [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
348*5e386598SRobert Watson    with_aix_soname=$lt_cv_with_aix_soname])
349*5e386598SRobert Watson  AC_MSG_RESULT([$with_aix_soname])
350*5e386598SRobert Watson  if test aix != "$with_aix_soname"; then
351*5e386598SRobert Watson    # For the AIX way of multilib, we name the shared archive member
352*5e386598SRobert Watson    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
353*5e386598SRobert Watson    # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
354*5e386598SRobert Watson    # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
355*5e386598SRobert Watson    # the AIX toolchain works better with OBJECT_MODE set (default 32).
356*5e386598SRobert Watson    if test 64 = "${OBJECT_MODE-32}"; then
357*5e386598SRobert Watson      shared_archive_member_spec=shr_64
358*5e386598SRobert Watson    else
359*5e386598SRobert Watson      shared_archive_member_spec=shr
360*5e386598SRobert Watson    fi
361*5e386598SRobert Watson  fi
362*5e386598SRobert Watson  ;;
363*5e386598SRobert Watson*)
364*5e386598SRobert Watson  with_aix_soname=aix
365*5e386598SRobert Watson  ;;
366*5e386598SRobert Watsonesac
367*5e386598SRobert Watson
368*5e386598SRobert Watson_LT_DECL([], [shared_archive_member_spec], [0],
369*5e386598SRobert Watson    [Shared archive member basename, for filename based shared library versioning on AIX])dnl
370*5e386598SRobert Watson])# _LT_WITH_AIX_SONAME
371*5e386598SRobert Watson
372*5e386598SRobert WatsonLT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
373*5e386598SRobert WatsonLT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
374*5e386598SRobert WatsonLT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
375*5e386598SRobert Watson
376*5e386598SRobert Watson
377aa772005SRobert Watson# _LT_WITH_PIC([MODE])
378aa772005SRobert Watson# --------------------
379*5e386598SRobert Watson# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
380aa772005SRobert Watson# LT_INIT options.
381*5e386598SRobert Watson# MODE is either 'yes' or 'no'.  If omitted, it defaults to 'both'.
382aa772005SRobert Watsonm4_define([_LT_WITH_PIC],
383aa772005SRobert Watson[AC_ARG_WITH([pic],
384aa772005SRobert Watson    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
385aa772005SRobert Watson	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
386aa772005SRobert Watson    [lt_p=${PACKAGE-default}
387aa772005SRobert Watson    case $withval in
388aa772005SRobert Watson    yes|no) pic_mode=$withval ;;
389aa772005SRobert Watson    *)
390aa772005SRobert Watson      pic_mode=default
391aa772005SRobert Watson      # Look at the argument we got.  We use all the common list separators.
392*5e386598SRobert Watson      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
393aa772005SRobert Watson      for lt_pkg in $withval; do
394*5e386598SRobert Watson	IFS=$lt_save_ifs
395aa772005SRobert Watson	if test "X$lt_pkg" = "X$lt_p"; then
396aa772005SRobert Watson	  pic_mode=yes
397aa772005SRobert Watson	fi
398aa772005SRobert Watson      done
399*5e386598SRobert Watson      IFS=$lt_save_ifs
400aa772005SRobert Watson      ;;
401aa772005SRobert Watson    esac],
402*5e386598SRobert Watson    [pic_mode=m4_default([$1], [default])])
403aa772005SRobert Watson
404aa772005SRobert Watson_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
405aa772005SRobert Watson])# _LT_WITH_PIC
406aa772005SRobert Watson
407aa772005SRobert WatsonLT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
408aa772005SRobert WatsonLT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
409aa772005SRobert Watson
410aa772005SRobert Watson# Old name:
411aa772005SRobert WatsonAU_DEFUN([AC_LIBTOOL_PICMODE],
412aa772005SRobert Watson[_LT_SET_OPTION([LT_INIT], [pic-only])
413aa772005SRobert WatsonAC_DIAGNOSE([obsolete],
414aa772005SRobert Watson[$0: Remove this warning and the call to _LT_SET_OPTION when you
415*5e386598SRobert Watsonput the 'pic-only' option into LT_INIT's first parameter.])
416aa772005SRobert Watson])
417aa772005SRobert Watson
418aa772005SRobert Watsondnl aclocal-1.4 backwards compatibility:
419aa772005SRobert Watsondnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
420aa772005SRobert Watson
421aa772005SRobert Watson## ----------------- ##
422aa772005SRobert Watson## LTDL_INIT Options ##
423aa772005SRobert Watson## ----------------- ##
424aa772005SRobert Watson
425aa772005SRobert Watsonm4_define([_LTDL_MODE], [])
426aa772005SRobert WatsonLT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
427aa772005SRobert Watson		 [m4_define([_LTDL_MODE], [nonrecursive])])
428aa772005SRobert WatsonLT_OPTION_DEFINE([LTDL_INIT], [recursive],
429aa772005SRobert Watson		 [m4_define([_LTDL_MODE], [recursive])])
430aa772005SRobert WatsonLT_OPTION_DEFINE([LTDL_INIT], [subproject],
431aa772005SRobert Watson		 [m4_define([_LTDL_MODE], [subproject])])
432aa772005SRobert Watson
433aa772005SRobert Watsonm4_define([_LTDL_TYPE], [])
434aa772005SRobert WatsonLT_OPTION_DEFINE([LTDL_INIT], [installable],
435aa772005SRobert Watson		 [m4_define([_LTDL_TYPE], [installable])])
436aa772005SRobert WatsonLT_OPTION_DEFINE([LTDL_INIT], [convenience],
437aa772005SRobert Watson		 [m4_define([_LTDL_TYPE], [convenience])])
438