e14743d1 |
1 | ############################################################################## |
2 | # Helper functions for option handling. -*- Autoconf -*- |
3 | # |
4 | # Copyright (C) 2004, 2005, 2007, 2008 Free Software 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 6 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], [0], [Assembler program])dnl |
138 | |
139 | test -z "$DLLTOOL" && DLLTOOL=dlltool |
140 | _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl |
141 | |
142 | test -z "$OBJDUMP" && OBJDUMP=objdump |
143 | _LT_DECL([], [OBJDUMP], [0], [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], |
330 | [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], |
331 | [pic_mode="$withval"], |
332 | [pic_mode=default]) |
333 | |
334 | test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) |
335 | |
336 | _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl |
337 | ])# _LT_WITH_PIC |
338 | |
339 | LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) |
340 | LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) |
341 | |
342 | # Old name: |
343 | AU_DEFUN([AC_LIBTOOL_PICMODE], |
344 | [_LT_SET_OPTION([LT_INIT], [pic-only]) |
345 | AC_DIAGNOSE([obsolete], |
346 | [$0: Remove this warning and the call to _LT_SET_OPTION when you |
347 | put the `pic-only' option into LT_INIT's first parameter.]) |
348 | ]) |
349 | |
350 | dnl aclocal-1.4 backwards compatibility: |
351 | dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) |
352 | |
353 | ## ----------------- ## |
354 | ## LTDL_INIT Options ## |
355 | ## ----------------- ## |
356 | |
357 | m4_define([_LTDL_MODE], []) |
358 | LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], |
359 | [m4_define([_LTDL_MODE], [nonrecursive])]) |
360 | LT_OPTION_DEFINE([LTDL_INIT], [recursive], |
361 | [m4_define([_LTDL_MODE], [recursive])]) |
362 | LT_OPTION_DEFINE([LTDL_INIT], [subproject], |
363 | [m4_define([_LTDL_MODE], [subproject])]) |
364 | |
365 | m4_define([_LTDL_TYPE], []) |
366 | LT_OPTION_DEFINE([LTDL_INIT], [installable], |
367 | [m4_define([_LTDL_TYPE], [installable])]) |
368 | LT_OPTION_DEFINE([LTDL_INIT], [convenience], |
369 | [m4_define([_LTDL_TYPE], [convenience])]) |
370 | |