]> git.saurik.com Git - cycript.git/blame - m4/ltoptions.m4
Upgrade to a more recent build of libtool in Fink.
[cycript.git] / m4 / ltoptions.m4
CommitLineData
413251da
JF
1# Helper functions for option handling. -*- Autoconf -*-
2#
9d54db95
JF
3# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
4# Foundation, Inc.
413251da
JF
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
9d54db95 11# serial 8 ltoptions.m4
413251da
JF
12
13# This is to help aclocal find these macros, as it can't see m4_define.
14AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
15
16
17# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
18# ------------------------------------------
19m4_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.
28m4_define([_LT_SET_OPTION],
29[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
30m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
31 _LT_MANGLE_DEFUN([$1], [$2]),
9d54db95 32 [m4_warning([Unknown $1 option '$2'])])[]dnl
413251da
JF
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.
39m4_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.
47m4_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
51m4_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.
62m4_defun([_LT_SET_OPTIONS],
63[# Set options
64m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
65 [_LT_SET_OPTION([$1], _LT_Option)])
66
67m4_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
9d54db95 78 dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
413251da
JF
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],
9d54db95
JF
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])])
413251da
JF
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# -----------------------------------------
97m4_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# -----------------------------------------------
103m4_define([LT_OPTION_DEFINE],
104[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
105])# LT_OPTION_DEFINE
106
107
108# dlopen
109# ------
110LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
111])
112
113AU_DEFUN([AC_LIBTOOL_DLOPEN],
114[_LT_SET_OPTION([LT_INIT], [dlopen])
115AC_DIAGNOSE([obsolete],
116[$0: Remove this warning and the call to _LT_SET_OPTION when you
9d54db95 117put the 'dlopen' option into LT_INIT's first parameter.])
413251da
JF
118])
119
120dnl aclocal-1.4 backwards compatibility:
121dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
122
123
124# win32-dll
125# ---------
126# Declare package support for building win32 dll's.
127LT_OPTION_DEFINE([LT_INIT], [win32-dll],
128[enable_win32_dll=yes
129
130case $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 ;;
136esac
137
138test -z "$AS" && AS=as
139_LT_DECL([], [AS], [1], [Assembler program])dnl
140
141test -z "$DLLTOOL" && DLLTOOL=dlltool
142_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
143
144test -z "$OBJDUMP" && OBJDUMP=objdump
145_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
146])# win32-dll
147
148AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
149[AC_REQUIRE([AC_CANONICAL_HOST])dnl
150_LT_SET_OPTION([LT_INIT], [win32-dll])
151AC_DIAGNOSE([obsolete],
152[$0: Remove this warning and the call to _LT_SET_OPTION when you
9d54db95 153put the 'win32-dll' option into LT_INIT's first parameter.])
413251da
JF
154])
155
156dnl aclocal-1.4 backwards compatibility:
157dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
158
159
160# _LT_ENABLE_SHARED([DEFAULT])
161# ----------------------------
9d54db95
JF
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'.
413251da
JF
165m4_define([_LT_ENABLE_SHARED],
166[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
167AC_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.
9d54db95 177 lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
413251da 178 for pkg in $enableval; do
9d54db95 179 IFS=$lt_save_ifs
413251da
JF
180 if test "X$pkg" = "X$p"; then
181 enable_shared=yes
182 fi
183 done
9d54db95 184 IFS=$lt_save_ifs
413251da
JF
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
193LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
194LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
195
196# Old names:
197AC_DEFUN([AC_ENABLE_SHARED],
198[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
199])
200
201AC_DEFUN([AC_DISABLE_SHARED],
202[_LT_SET_OPTION([LT_INIT], [disable-shared])
203])
204
205AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
206AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
207
208dnl aclocal-1.4 backwards compatibility:
209dnl AC_DEFUN([AM_ENABLE_SHARED], [])
210dnl AC_DEFUN([AM_DISABLE_SHARED], [])
211
212
213
214# _LT_ENABLE_STATIC([DEFAULT])
215# ----------------------------
9d54db95
JF
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'.
413251da
JF
219m4_define([_LT_ENABLE_STATIC],
220[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
221AC_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.
9d54db95 231 lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
413251da 232 for pkg in $enableval; do
9d54db95 233 IFS=$lt_save_ifs
413251da
JF
234 if test "X$pkg" = "X$p"; then
235 enable_static=yes
236 fi
237 done
9d54db95 238 IFS=$lt_save_ifs
413251da
JF
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
247LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
248LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
249
250# Old names:
251AC_DEFUN([AC_ENABLE_STATIC],
252[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
253])
254
255AC_DEFUN([AC_DISABLE_STATIC],
256[_LT_SET_OPTION([LT_INIT], [disable-static])
257])
258
259AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
260AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
261
262dnl aclocal-1.4 backwards compatibility:
263dnl AC_DEFUN([AM_ENABLE_STATIC], [])
264dnl AC_DEFUN([AM_DISABLE_STATIC], [])
265
266
267
268# _LT_ENABLE_FAST_INSTALL([DEFAULT])
269# ----------------------------------
9d54db95
JF
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'.
413251da
JF
273m4_define([_LT_ENABLE_FAST_INSTALL],
274[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
275AC_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.
9d54db95 285 lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
413251da 286 for pkg in $enableval; do
9d54db95 287 IFS=$lt_save_ifs
413251da
JF
288 if test "X$pkg" = "X$p"; then
289 enable_fast_install=yes
290 fi
291 done
9d54db95 292 IFS=$lt_save_ifs
413251da
JF
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
301LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
302LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
303
304# Old names:
305AU_DEFUN([AC_ENABLE_FAST_INSTALL],
306[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
307AC_DIAGNOSE([obsolete],
308[$0: Remove this warning and the call to _LT_SET_OPTION when you put
9d54db95 309the 'fast-install' option into LT_INIT's first parameter.])
413251da
JF
310])
311
312AU_DEFUN([AC_DISABLE_FAST_INSTALL],
313[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
314AC_DIAGNOSE([obsolete],
315[$0: Remove this warning and the call to _LT_SET_OPTION when you put
9d54db95 316the 'disable-fast-install' option into LT_INIT's first parameter.])
413251da
JF
317])
318
319dnl aclocal-1.4 backwards compatibility:
320dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
321dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
322
323
9d54db95
JF
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'.
329m4_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
331shared_archive_member_spec=
332case $host,$enable_shared in
333power*-*-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 ;;
366esac
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
372LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
373LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
374LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
375
376
413251da
JF
377# _LT_WITH_PIC([MODE])
378# --------------------
9d54db95 379# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
413251da 380# LT_INIT options.
9d54db95 381# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
413251da
JF
382m4_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.
9d54db95 392 lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
413251da 393 for lt_pkg in $withval; do
9d54db95 394 IFS=$lt_save_ifs
413251da
JF
395 if test "X$lt_pkg" = "X$lt_p"; then
396 pic_mode=yes
397 fi
398 done
9d54db95 399 IFS=$lt_save_ifs
413251da
JF
400 ;;
401 esac],
9d54db95 402 [pic_mode=m4_default([$1], [default])])
413251da
JF
403
404_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
405])# _LT_WITH_PIC
406
407LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
408LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
409
410# Old name:
411AU_DEFUN([AC_LIBTOOL_PICMODE],
412[_LT_SET_OPTION([LT_INIT], [pic-only])
413AC_DIAGNOSE([obsolete],
414[$0: Remove this warning and the call to _LT_SET_OPTION when you
9d54db95 415put the 'pic-only' option into LT_INIT's first parameter.])
413251da
JF
416])
417
418dnl aclocal-1.4 backwards compatibility:
419dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
420
421## ----------------- ##
422## LTDL_INIT Options ##
423## ----------------- ##
424
425m4_define([_LTDL_MODE], [])
426LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
427 [m4_define([_LTDL_MODE], [nonrecursive])])
428LT_OPTION_DEFINE([LTDL_INIT], [recursive],
429 [m4_define([_LTDL_MODE], [recursive])])
430LT_OPTION_DEFINE([LTDL_INIT], [subproject],
431 [m4_define([_LTDL_MODE], [subproject])])
432
433m4_define([_LTDL_TYPE], [])
434LT_OPTION_DEFINE([LTDL_INIT], [installable],
435 [m4_define([_LTDL_TYPE], [installable])])
436LT_OPTION_DEFINE([LTDL_INIT], [convenience],
437 [m4_define([_LTDL_TYPE], [convenience])])