New upstream version 1.0.3
[sven/exfatprogs.git] / m4 / ltoptions.m4
1 # Helper functions for option handling.                    -*- Autoconf -*-
2 #
3 #   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
4 #   Foundation, Inc.
5 #   Written by Gary V. Vaughan, 2004
6 #
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.
10
11 # serial 8 ltoptions.m4
12
13 # This is to help aclocal find these macros, as it can't see m4_define.
14 AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
15
16
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_]], [_])])
21
22
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
27 # saved as a flag.
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
33 ])
34
35
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])])
41
42
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
46 # are set.
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
52 ])[]dnl
53 ])
54
55
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],
63 [# Set options
64 m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
65     [_LT_SET_OPTION([$1], _LT_Option)])
66
67 m4_if([$1],[LT_INIT],[
68   dnl
69   dnl Simply set some default values (i.e off) if boolean options were not
70   dnl specified:
71   _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
72   ])
73   _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
74   ])
75   dnl
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])])
87   ])
88 ])# _LT_SET_OPTIONS
89
90
91 ## --------------------------------- ##
92 ## Macros to handle LT_INIT options. ##
93 ## --------------------------------- ##
94
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_]], [_])])
99
100
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
105 ])# LT_OPTION_DEFINE
106
107
108 # dlopen
109 # ------
110 LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
111 ])
112
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.])
118 ])
119
120 dnl aclocal-1.4 backwards compatibility:
121 dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
122
123
124 # win32-dll
125 # ---------
126 # Declare package support for building win32 dll's.
127 LT_OPTION_DEFINE([LT_INIT], [win32-dll],
128 [enable_win32_dll=yes
129
130 case $host in
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)
135   ;;
136 esac
137
138 test -z "$AS" && AS=as
139 _LT_DECL([], [AS],      [1], [Assembler program])dnl
140
141 test -z "$DLLTOOL" && DLLTOOL=dlltool
142 _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
143
144 test -z "$OBJDUMP" && OBJDUMP=objdump
145 _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
146 ])# win32-dll
147
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.])
154 ])
155
156 dnl aclocal-1.4 backwards compatibility:
157 dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
158
159
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}
171     case $enableval in
172     yes) enable_shared=yes ;;
173     no) enable_shared=no ;;
174     *)
175       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
179         IFS=$lt_save_ifs
180         if test "X$pkg" = "X$p"; then
181           enable_shared=yes
182         fi
183       done
184       IFS=$lt_save_ifs
185       ;;
186     esac],
187     [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
188
189     _LT_DECL([build_libtool_libs], [enable_shared], [0],
190         [Whether or not to build shared libraries])
191 ])# _LT_ENABLE_SHARED
192
193 LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
194 LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
195
196 # Old names:
197 AC_DEFUN([AC_ENABLE_SHARED],
198 [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
199 ])
200
201 AC_DEFUN([AC_DISABLE_SHARED],
202 [_LT_SET_OPTION([LT_INIT], [disable-shared])
203 ])
204
205 AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
206 AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
207
208 dnl aclocal-1.4 backwards compatibility:
209 dnl AC_DEFUN([AM_ENABLE_SHARED], [])
210 dnl AC_DEFUN([AM_DISABLE_SHARED], [])
211
212
213
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}
225     case $enableval in
226     yes) enable_static=yes ;;
227     no) enable_static=no ;;
228     *)
229      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
233         IFS=$lt_save_ifs
234         if test "X$pkg" = "X$p"; then
235           enable_static=yes
236         fi
237       done
238       IFS=$lt_save_ifs
239       ;;
240     esac],
241     [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
242
243     _LT_DECL([build_old_libs], [enable_static], [0],
244         [Whether or not to build static libraries])
245 ])# _LT_ENABLE_STATIC
246
247 LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
248 LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
249
250 # Old names:
251 AC_DEFUN([AC_ENABLE_STATIC],
252 [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
253 ])
254
255 AC_DEFUN([AC_DISABLE_STATIC],
256 [_LT_SET_OPTION([LT_INIT], [disable-static])
257 ])
258
259 AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
260 AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
261
262 dnl aclocal-1.4 backwards compatibility:
263 dnl AC_DEFUN([AM_ENABLE_STATIC], [])
264 dnl AC_DEFUN([AM_DISABLE_STATIC], [])
265
266
267
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}
279     case $enableval in
280     yes) enable_fast_install=yes ;;
281     no) enable_fast_install=no ;;
282     *)
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
287         IFS=$lt_save_ifs
288         if test "X$pkg" = "X$p"; then
289           enable_fast_install=yes
290         fi
291       done
292       IFS=$lt_save_ifs
293       ;;
294     esac],
295     [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
296
297 _LT_DECL([fast_install], [enable_fast_install], [0],
298          [Whether or not to optimize for fast installation])dnl
299 ])# _LT_ENABLE_FAST_INSTALL
300
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])])
303
304 # Old names:
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.])
310 ])
311
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.])
317 ])
318
319 dnl aclocal-1.4 backwards compatibility:
320 dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
321 dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
322
323
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[@:>@.])],
338     [case $withval in
339     aix|svr4|both)
340       ;;
341     *)
342       AC_MSG_ERROR([Unknown argument to --with-aix-soname])
343       ;;
344     esac
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
358     else
359       shared_archive_member_spec=shr
360     fi
361   fi
362   ;;
363 *)
364   with_aix_soname=aix
365   ;;
366 esac
367
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
371
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])])
375
376
377 # _LT_WITH_PIC([MODE])
378 # --------------------
379 # implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
380 # LT_INIT options.
381 # MODE is either 'yes' or 'no'.  If omitted, it defaults to 'both'.
382 m4_define([_LT_WITH_PIC],
383 [AC_ARG_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}
387     case $withval in
388     yes|no) pic_mode=$withval ;;
389     *)
390       pic_mode=default
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
394         IFS=$lt_save_ifs
395         if test "X$lt_pkg" = "X$lt_p"; then
396           pic_mode=yes
397         fi
398       done
399       IFS=$lt_save_ifs
400       ;;
401     esac],
402     [pic_mode=m4_default([$1], [default])])
403
404 _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
405 ])# _LT_WITH_PIC
406
407 LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
408 LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
409
410 # Old name:
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.])
416 ])
417
418 dnl aclocal-1.4 backwards compatibility:
419 dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
420
421 ## ----------------- ##
422 ## LTDL_INIT Options ##
423 ## ----------------- ##
424
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])])
432
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])])