Janis Streib
30.03.22 05ec5b8c5dad9c296be7bf4b53c44762ced85e96
Commit | Autor | Alter
0a10d5 1 # Helper functions for option handling.                    -*- Autoconf -*-
JS 2 #
3 #   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
4 #   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 7 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   ])
86 ])# _LT_SET_OPTIONS
87
88
89 ## --------------------------------- ##
90 ## Macros to handle LT_INIT options. ##
91 ## --------------------------------- ##
92
93 # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
94 # -----------------------------------------
95 m4_define([_LT_MANGLE_DEFUN],
96 [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
97
98
99 # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
100 # -----------------------------------------------
101 m4_define([LT_OPTION_DEFINE],
102 [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
103 ])# LT_OPTION_DEFINE
104
105
106 # dlopen
107 # ------
108 LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
109 ])
110
111 AU_DEFUN([AC_LIBTOOL_DLOPEN],
112 [_LT_SET_OPTION([LT_INIT], [dlopen])
113 AC_DIAGNOSE([obsolete],
114 [$0: Remove this warning and the call to _LT_SET_OPTION when you
115 put the `dlopen' option into LT_INIT's first parameter.])
116 ])
117
118 dnl aclocal-1.4 backwards compatibility:
119 dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
120
121
122 # win32-dll
123 # ---------
124 # Declare package support for building win32 dll's.
125 LT_OPTION_DEFINE([LT_INIT], [win32-dll],
126 [enable_win32_dll=yes
127
128 case $host in
129 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
130   AC_CHECK_TOOL(AS, as, false)
131   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
132   AC_CHECK_TOOL(OBJDUMP, objdump, false)
133   ;;
134 esac
135
136 test -z "$AS" && AS=as
137 _LT_DECL([], [AS],      [1], [Assembler program])dnl
138
139 test -z "$DLLTOOL" && DLLTOOL=dlltool
140 _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
141
142 test -z "$OBJDUMP" && OBJDUMP=objdump
143 _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
144 ])# win32-dll
145
146 AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
147 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
148 _LT_SET_OPTION([LT_INIT], [win32-dll])
149 AC_DIAGNOSE([obsolete],
150 [$0: Remove this warning and the call to _LT_SET_OPTION when you
151 put the `win32-dll' option into LT_INIT's first parameter.])
152 ])
153
154 dnl aclocal-1.4 backwards compatibility:
155 dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
156
157
158 # _LT_ENABLE_SHARED([DEFAULT])
159 # ----------------------------
160 # implement the --enable-shared flag, and supports the `shared' and
161 # `disable-shared' LT_INIT options.
162 # DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
163 m4_define([_LT_ENABLE_SHARED],
164 [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
165 AC_ARG_ENABLE([shared],
166     [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
167     [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
168     [p=${PACKAGE-default}
169     case $enableval in
170     yes) enable_shared=yes ;;
171     no) enable_shared=no ;;
172     *)
173       enable_shared=no
174       # Look at the argument we got.  We use all the common list separators.
175       lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
176       for pkg in $enableval; do
177     IFS="$lt_save_ifs"
178     if test "X$pkg" = "X$p"; then
179       enable_shared=yes
180     fi
181       done
182       IFS="$lt_save_ifs"
183       ;;
184     esac],
185     [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
186
187     _LT_DECL([build_libtool_libs], [enable_shared], [0],
188     [Whether or not to build shared libraries])
189 ])# _LT_ENABLE_SHARED
190
191 LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
192 LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
193
194 # Old names:
195 AC_DEFUN([AC_ENABLE_SHARED],
196 [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
197 ])
198
199 AC_DEFUN([AC_DISABLE_SHARED],
200 [_LT_SET_OPTION([LT_INIT], [disable-shared])
201 ])
202
203 AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
204 AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
205
206 dnl aclocal-1.4 backwards compatibility:
207 dnl AC_DEFUN([AM_ENABLE_SHARED], [])
208 dnl AC_DEFUN([AM_DISABLE_SHARED], [])
209
210
211
212 # _LT_ENABLE_STATIC([DEFAULT])
213 # ----------------------------
214 # implement the --enable-static flag, and support the `static' and
215 # `disable-static' LT_INIT options.
216 # DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
217 m4_define([_LT_ENABLE_STATIC],
218 [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
219 AC_ARG_ENABLE([static],
220     [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
221     [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
222     [p=${PACKAGE-default}
223     case $enableval in
224     yes) enable_static=yes ;;
225     no) enable_static=no ;;
226     *)
227      enable_static=no
228       # Look at the argument we got.  We use all the common list separators.
229       lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
230       for pkg in $enableval; do
231     IFS="$lt_save_ifs"
232     if test "X$pkg" = "X$p"; then
233       enable_static=yes
234     fi
235       done
236       IFS="$lt_save_ifs"
237       ;;
238     esac],
239     [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
240
241     _LT_DECL([build_old_libs], [enable_static], [0],
242     [Whether or not to build static libraries])
243 ])# _LT_ENABLE_STATIC
244
245 LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
246 LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
247
248 # Old names:
249 AC_DEFUN([AC_ENABLE_STATIC],
250 [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
251 ])
252
253 AC_DEFUN([AC_DISABLE_STATIC],
254 [_LT_SET_OPTION([LT_INIT], [disable-static])
255 ])
256
257 AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
258 AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
259
260 dnl aclocal-1.4 backwards compatibility:
261 dnl AC_DEFUN([AM_ENABLE_STATIC], [])
262 dnl AC_DEFUN([AM_DISABLE_STATIC], [])
263
264
265
266 # _LT_ENABLE_FAST_INSTALL([DEFAULT])
267 # ----------------------------------
268 # implement the --enable-fast-install flag, and support the `fast-install'
269 # and `disable-fast-install' LT_INIT options.
270 # DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
271 m4_define([_LT_ENABLE_FAST_INSTALL],
272 [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
273 AC_ARG_ENABLE([fast-install],
274     [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
275     [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
276     [p=${PACKAGE-default}
277     case $enableval in
278     yes) enable_fast_install=yes ;;
279     no) enable_fast_install=no ;;
280     *)
281       enable_fast_install=no
282       # Look at the argument we got.  We use all the common list separators.
283       lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
284       for pkg in $enableval; do
285     IFS="$lt_save_ifs"
286     if test "X$pkg" = "X$p"; then
287       enable_fast_install=yes
288     fi
289       done
290       IFS="$lt_save_ifs"
291       ;;
292     esac],
293     [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
294
295 _LT_DECL([fast_install], [enable_fast_install], [0],
296      [Whether or not to optimize for fast installation])dnl
297 ])# _LT_ENABLE_FAST_INSTALL
298
299 LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
300 LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
301
302 # Old names:
303 AU_DEFUN([AC_ENABLE_FAST_INSTALL],
304 [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
305 AC_DIAGNOSE([obsolete],
306 [$0: Remove this warning and the call to _LT_SET_OPTION when you put
307 the `fast-install' option into LT_INIT's first parameter.])
308 ])
309
310 AU_DEFUN([AC_DISABLE_FAST_INSTALL],
311 [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
312 AC_DIAGNOSE([obsolete],
313 [$0: Remove this warning and the call to _LT_SET_OPTION when you put
314 the `disable-fast-install' option into LT_INIT's first parameter.])
315 ])
316
317 dnl aclocal-1.4 backwards compatibility:
318 dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
319 dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
320
321
322 # _LT_WITH_PIC([MODE])
323 # --------------------
324 # implement the --with-pic flag, and support the `pic-only' and `no-pic'
325 # LT_INIT options.
326 # MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
327 m4_define([_LT_WITH_PIC],
328 [AC_ARG_WITH([pic],
329     [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
330     [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
331     [lt_p=${PACKAGE-default}
332     case $withval in
333     yes|no) pic_mode=$withval ;;
334     *)
335       pic_mode=default
336       # Look at the argument we got.  We use all the common list separators.
337       lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
338       for lt_pkg in $withval; do
339     IFS="$lt_save_ifs"
340     if test "X$lt_pkg" = "X$lt_p"; then
341       pic_mode=yes
342     fi
343       done
344       IFS="$lt_save_ifs"
345       ;;
346     esac],
347     [pic_mode=default])
348
349 test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
350
351 _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
352 ])# _LT_WITH_PIC
353
354 LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
355 LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
356
357 # Old name:
358 AU_DEFUN([AC_LIBTOOL_PICMODE],
359 [_LT_SET_OPTION([LT_INIT], [pic-only])
360 AC_DIAGNOSE([obsolete],
361 [$0: Remove this warning and the call to _LT_SET_OPTION when you
362 put the `pic-only' option into LT_INIT's first parameter.])
363 ])
364
365 dnl aclocal-1.4 backwards compatibility:
366 dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
367
368 ## ----------------- ##
369 ## LTDL_INIT Options ##
370 ## ----------------- ##
371
372 m4_define([_LTDL_MODE], [])
373 LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
374          [m4_define([_LTDL_MODE], [nonrecursive])])
375 LT_OPTION_DEFINE([LTDL_INIT], [recursive],
376          [m4_define([_LTDL_MODE], [recursive])])
377 LT_OPTION_DEFINE([LTDL_INIT], [subproject],
378          [m4_define([_LTDL_MODE], [subproject])])
379
380 m4_define([_LTDL_TYPE], [])
381 LT_OPTION_DEFINE([LTDL_INIT], [installable],
382          [m4_define([_LTDL_TYPE], [installable])])
383 LT_OPTION_DEFINE([LTDL_INIT], [convenience],
384          [m4_define([_LTDL_TYPE], [convenience])])