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])])