Annotation of parser3/src/lib/ltdl/m4/ltoptions.m4, revision 1.2
1.1 moko 1: # Helper functions for option handling. -*- Autoconf -*-
2: #
1.2 ! moko 3: # Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2024 Free
! 4: # Software Foundation, Inc.
1.1 moko 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:
1.2 ! moko 11: # serial 10 ltoptions.m4
1.1 moko 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]),
1.2 ! moko 32: [m4_warning([Unknown $1 option '$2'])])[]dnl
1.1 moko 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
1.2 ! moko 78: dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
1.1 moko 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],
1.2 ! moko 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])])
1.1 moko 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
1.2 ! moko 117: put the 'dlopen' option into LT_INIT's first parameter.])
1.1 moko 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
1.2 ! moko 131: *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-cegcc*)
1.1 moko 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
1.2 ! moko 153: put the 'win32-dll' option into LT_INIT's first parameter.])
1.1 moko 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: # ----------------------------
1.2 ! moko 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'.
1.1 moko 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.
1.2 ! moko 177: lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
1.1 moko 178: for pkg in $enableval; do
1.2 ! moko 179: IFS=$lt_save_ifs
1.1 moko 180: if test "X$pkg" = "X$p"; then
181: enable_shared=yes
182: fi
183: done
1.2 ! moko 184: IFS=$lt_save_ifs
1.1 moko 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: # ----------------------------
1.2 ! moko 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'.
1.1 moko 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.
1.2 ! moko 231: lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
1.1 moko 232: for pkg in $enableval; do
1.2 ! moko 233: IFS=$lt_save_ifs
1.1 moko 234: if test "X$pkg" = "X$p"; then
235: enable_static=yes
236: fi
237: done
1.2 ! moko 238: IFS=$lt_save_ifs
1.1 moko 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: # ----------------------------------
1.2 ! moko 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'.
1.1 moko 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.
1.2 ! moko 285: lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
1.1 moko 286: for pkg in $enableval; do
1.2 ! moko 287: IFS=$lt_save_ifs
1.1 moko 288: if test "X$pkg" = "X$p"; then
289: enable_fast_install=yes
290: fi
291: done
1.2 ! moko 292: IFS=$lt_save_ifs
1.1 moko 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
1.2 ! moko 309: the 'fast-install' option into LT_INIT's first parameter.])
1.1 moko 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
1.2 ! moko 316: the 'disable-fast-install' option into LT_INIT's first parameter.])
1.1 moko 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:
1.2 ! moko 324: # _LT_WITH_AIX_SONAME([DEFAULT])
! 325: # ----------------------------------
! 326: # implement the --enable-aix-soname configure option, and support the
! 327: # `aix-soname=aix' and `aix-soname=both' and `aix-soname=svr4' LT_INIT options.
! 328: # DEFAULT 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_ENABLE([aix-soname],
! 336: [AS_HELP_STRING([--enable-aix-soname=aix|svr4|both],
! 337: [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
! 338: [case $enableval in
! 339: aix|svr4|both)
! 340: ;;
! 341: *)
! 342: AC_MSG_ERROR([Unknown argument to --enable-aix-soname])
! 343: ;;
! 344: esac
! 345: lt_cv_with_aix_soname=$enable_aix_soname],
! 346: [_AC_ENABLE_IF([with], [aix-soname],
! 347: [case $withval in
! 348: aix|svr4|both)
! 349: ;;
! 350: *)
! 351: AC_MSG_ERROR([Unknown argument to --with-aix-soname])
! 352: ;;
! 353: esac
! 354: lt_cv_with_aix_soname=$with_aix_soname],
! 355: [AC_CACHE_VAL([lt_cv_with_aix_soname],
! 356: [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)])
! 357: enable_aix_soname=$lt_cv_with_aix_soname])
! 358: with_aix_soname=$enable_aix_soname
! 359: AC_MSG_RESULT([$with_aix_soname])
! 360: if test aix != "$with_aix_soname"; then
! 361: # For the AIX way of multilib, we name the shared archive member
! 362: # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
! 363: # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
! 364: # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
! 365: # the AIX toolchain works better with OBJECT_MODE set (default 32).
! 366: if test 64 = "${OBJECT_MODE-32}"; then
! 367: shared_archive_member_spec=shr_64
! 368: else
! 369: shared_archive_member_spec=shr
! 370: fi
! 371: fi
! 372: ;;
! 373: *)
! 374: with_aix_soname=aix
! 375: ;;
! 376: esac
! 377:
! 378: _LT_DECL([], [shared_archive_member_spec], [0],
! 379: [Shared archive member basename, for filename based shared library versioning on AIX])dnl
! 380: ])# _LT_WITH_AIX_SONAME
! 381:
! 382: LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
! 383: LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
! 384: LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
! 385:
! 386:
1.1 moko 387: # _LT_WITH_PIC([MODE])
388: # --------------------
1.2 ! moko 389: # implement the --enable-pic flag, and support the 'pic-only' and 'no-pic'
1.1 moko 390: # LT_INIT options.
1.2 ! moko 391: # MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
1.1 moko 392: m4_define([_LT_WITH_PIC],
1.2 ! moko 393: [AC_ARG_ENABLE([pic],
! 394: [AS_HELP_STRING([--enable-pic@<:@=PKGS@:>@],
1.1 moko 395: [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
396: [lt_p=${PACKAGE-default}
1.2 ! moko 397: case $enableval in
! 398: yes|no) pic_mode=$enableval ;;
! 399: *)
! 400: pic_mode=default
! 401: # Look at the argument we got. We use all the common list separators.
! 402: lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
! 403: for lt_pkg in $enableval; do
! 404: IFS=$lt_save_ifs
! 405: if test "X$lt_pkg" = "X$lt_p"; then
! 406: pic_mode=yes
! 407: fi
! 408: done
! 409: IFS=$lt_save_ifs
! 410: ;;
! 411: esac],
! 412: [dnl Continue to support --with-pic and --without-pic, for backward
! 413: dnl compatibility.
! 414: _AC_ENABLE_IF([with], [pic],
! 415: [lt_p=${PACKAGE-default}
! 416: case $withval in
! 417: yes|no) pic_mode=$withval ;;
! 418: *)
! 419: pic_mode=default
! 420: # Look at the argument we got. We use all the common list separators.
! 421: lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
! 422: for lt_pkg in $withval; do
! 423: IFS=$lt_save_ifs
! 424: if test "X$lt_pkg" = "X$lt_p"; then
! 425: pic_mode=yes
! 426: fi
! 427: done
! 428: IFS=$lt_save_ifs
! 429: ;;
! 430: esac],
! 431: [pic_mode=m4_default([$1], [default])])]
! 432: )
1.1 moko 433:
434: _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
435: ])# _LT_WITH_PIC
436:
437: LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
438: LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
439:
440: # Old name:
441: AU_DEFUN([AC_LIBTOOL_PICMODE],
442: [_LT_SET_OPTION([LT_INIT], [pic-only])
443: AC_DIAGNOSE([obsolete],
444: [$0: Remove this warning and the call to _LT_SET_OPTION when you
1.2 ! moko 445: put the 'pic-only' option into LT_INIT's first parameter.])
1.1 moko 446: ])
447:
448: dnl aclocal-1.4 backwards compatibility:
449: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
450:
451: ## ----------------- ##
452: ## LTDL_INIT Options ##
453: ## ----------------- ##
454:
455: m4_define([_LTDL_MODE], [])
456: LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
457: [m4_define([_LTDL_MODE], [nonrecursive])])
458: LT_OPTION_DEFINE([LTDL_INIT], [recursive],
459: [m4_define([_LTDL_MODE], [recursive])])
460: LT_OPTION_DEFINE([LTDL_INIT], [subproject],
461: [m4_define([_LTDL_MODE], [subproject])])
462:
463: m4_define([_LTDL_TYPE], [])
464: LT_OPTION_DEFINE([LTDL_INIT], [installable],
465: [m4_define([_LTDL_TYPE], [installable])])
466: LT_OPTION_DEFINE([LTDL_INIT], [convenience],
467: [m4_define([_LTDL_TYPE], [convenience])])
E-mail: