/ m4 / ltoptions.m4
ltoptions.m4
  1  # Helper functions for option handling.                    -*- Autoconf -*-
  2  #
  3  #   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
  4  #   Written by Gary V. Vaughan, 2004
  5  #
  6  # This file is free software; the Free Software Foundation gives
  7  # unlimited permission to copy and/or distribute it, with or without
  8  # modifications, as long as this notice is preserved.
  9  
 10  # serial 6 ltoptions.m4
 11  
 12  # This is to help aclocal find these macros, as it can't see m4_define.
 13  AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
 14  
 15  
 16  # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
 17  # ------------------------------------------
 18  m4_define([_LT_MANGLE_OPTION],
 19  [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
 20  
 21  
 22  # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
 23  # ---------------------------------------
 24  # Set option OPTION-NAME for macro MACRO-NAME, and if there is a
 25  # matching handler defined, dispatch to it.  Other OPTION-NAMEs are
 26  # saved as a flag.
 27  m4_define([_LT_SET_OPTION],
 28  [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
 29  m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
 30          _LT_MANGLE_DEFUN([$1], [$2]),
 31      [m4_warning([Unknown $1 option `$2'])])[]dnl
 32  ])
 33  
 34  
 35  # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
 36  # ------------------------------------------------------------
 37  # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
 38  m4_define([_LT_IF_OPTION],
 39  [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
 40  
 41  
 42  # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
 43  # -------------------------------------------------------
 44  # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
 45  # are set.
 46  m4_define([_LT_UNLESS_OPTIONS],
 47  [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
 48  	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
 49  		      [m4_define([$0_found])])])[]dnl
 50  m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
 51  ])[]dnl
 52  ])
 53  
 54  
 55  # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
 56  # ----------------------------------------
 57  # OPTION-LIST is a space-separated list of Libtool options associated
 58  # with MACRO-NAME.  If any OPTION has a matching handler declared with
 59  # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
 60  # the unknown option and exit.
 61  m4_defun([_LT_SET_OPTIONS],
 62  [# Set options
 63  m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
 64      [_LT_SET_OPTION([$1], _LT_Option)])
 65  
 66  m4_if([$1],[LT_INIT],[
 67    dnl
 68    dnl Simply set some default values (i.e off) if boolean options were not
 69    dnl specified:
 70    _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
 71    ])
 72    _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
 73    ])
 74    dnl
 75    dnl If no reference was made to various pairs of opposing options, then
 76    dnl we run the default mode handler for the pair.  For example, if neither
 77    dnl `shared' nor `disable-shared' was passed, we enable building of shared
 78    dnl archives by default:
 79    _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
 80    _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
 81    _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
 82    _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
 83    		   [_LT_ENABLE_FAST_INSTALL])
 84    ])
 85  ])# _LT_SET_OPTIONS
 86  
 87  
 88  ## --------------------------------- ##
 89  ## Macros to handle LT_INIT options. ##
 90  ## --------------------------------- ##
 91  
 92  # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
 93  # -----------------------------------------
 94  m4_define([_LT_MANGLE_DEFUN],
 95  [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
 96  
 97  
 98  # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
 99  # -----------------------------------------------
100  m4_define([LT_OPTION_DEFINE],
101  [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
102  ])# LT_OPTION_DEFINE
103  
104  
105  # dlopen
106  # ------
107  LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
108  ])
109  
110  AU_DEFUN([AC_LIBTOOL_DLOPEN],
111  [_LT_SET_OPTION([LT_INIT], [dlopen])
112  AC_DIAGNOSE([obsolete],
113  [$0: Remove this warning and the call to _LT_SET_OPTION when you
114  put the `dlopen' option into LT_INIT's first parameter.])
115  ])
116  
117  dnl aclocal-1.4 backwards compatibility:
118  dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
119  
120  
121  # win32-dll
122  # ---------
123  # Declare package support for building win32 dll's.
124  LT_OPTION_DEFINE([LT_INIT], [win32-dll],
125  [enable_win32_dll=yes
126  
127  case $host in
128  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
129    AC_CHECK_TOOL(AS, as, false)
130    AC_CHECK_TOOL(DLLTOOL, dlltool, false)
131    AC_CHECK_TOOL(OBJDUMP, objdump, false)
132    ;;
133  esac
134  
135  test -z "$AS" && AS=as
136  _LT_DECL([], [AS],      [0], [Assembler program])dnl
137  
138  test -z "$DLLTOOL" && DLLTOOL=dlltool
139  _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
140  
141  test -z "$OBJDUMP" && OBJDUMP=objdump
142  _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
143  ])# win32-dll
144  
145  AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
146  [AC_REQUIRE([AC_CANONICAL_HOST])dnl
147  _LT_SET_OPTION([LT_INIT], [win32-dll])
148  AC_DIAGNOSE([obsolete],
149  [$0: Remove this warning and the call to _LT_SET_OPTION when you
150  put the `win32-dll' option into LT_INIT's first parameter.])
151  ])
152  
153  dnl aclocal-1.4 backwards compatibility:
154  dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
155  
156  
157  # _LT_ENABLE_SHARED([DEFAULT])
158  # ----------------------------
159  # implement the --enable-shared flag, and supports the `shared' and
160  # `disable-shared' LT_INIT options.
161  # DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
162  m4_define([_LT_ENABLE_SHARED],
163  [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
164  AC_ARG_ENABLE([shared],
165      [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
166  	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
167      [p=${PACKAGE-default}
168      case $enableval in
169      yes) enable_shared=yes ;;
170      no) enable_shared=no ;;
171      *)
172        enable_shared=no
173        # Look at the argument we got.  We use all the common list separators.
174        lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
175        for pkg in $enableval; do
176  	IFS="$lt_save_ifs"
177  	if test "X$pkg" = "X$p"; then
178  	  enable_shared=yes
179  	fi
180        done
181        IFS="$lt_save_ifs"
182        ;;
183      esac],
184      [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
185  
186      _LT_DECL([build_libtool_libs], [enable_shared], [0],
187  	[Whether or not to build shared libraries])
188  ])# _LT_ENABLE_SHARED
189  
190  LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
191  LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
192  
193  # Old names:
194  AC_DEFUN([AC_ENABLE_SHARED],
195  [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
196  ])
197  
198  AC_DEFUN([AC_DISABLE_SHARED],
199  [_LT_SET_OPTION([LT_INIT], [disable-shared])
200  ])
201  
202  AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
203  AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
204  
205  dnl aclocal-1.4 backwards compatibility:
206  dnl AC_DEFUN([AM_ENABLE_SHARED], [])
207  dnl AC_DEFUN([AM_DISABLE_SHARED], [])
208  
209  
210  
211  # _LT_ENABLE_STATIC([DEFAULT])
212  # ----------------------------
213  # implement the --enable-static flag, and support the `static' and
214  # `disable-static' LT_INIT options.
215  # DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
216  m4_define([_LT_ENABLE_STATIC],
217  [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
218  AC_ARG_ENABLE([static],
219      [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
220  	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
221      [p=${PACKAGE-default}
222      case $enableval in
223      yes) enable_static=yes ;;
224      no) enable_static=no ;;
225      *)
226       enable_static=no
227        # Look at the argument we got.  We use all the common list separators.
228        lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
229        for pkg in $enableval; do
230  	IFS="$lt_save_ifs"
231  	if test "X$pkg" = "X$p"; then
232  	  enable_static=yes
233  	fi
234        done
235        IFS="$lt_save_ifs"
236        ;;
237      esac],
238      [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
239  
240      _LT_DECL([build_old_libs], [enable_static], [0],
241  	[Whether or not to build static libraries])
242  ])# _LT_ENABLE_STATIC
243  
244  LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
245  LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
246  
247  # Old names:
248  AC_DEFUN([AC_ENABLE_STATIC],
249  [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
250  ])
251  
252  AC_DEFUN([AC_DISABLE_STATIC],
253  [_LT_SET_OPTION([LT_INIT], [disable-static])
254  ])
255  
256  AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
257  AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
258  
259  dnl aclocal-1.4 backwards compatibility:
260  dnl AC_DEFUN([AM_ENABLE_STATIC], [])
261  dnl AC_DEFUN([AM_DISABLE_STATIC], [])
262  
263  
264  
265  # _LT_ENABLE_FAST_INSTALL([DEFAULT])
266  # ----------------------------------
267  # implement the --enable-fast-install flag, and support the `fast-install'
268  # and `disable-fast-install' LT_INIT options.
269  # DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
270  m4_define([_LT_ENABLE_FAST_INSTALL],
271  [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
272  AC_ARG_ENABLE([fast-install],
273      [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
274      [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
275      [p=${PACKAGE-default}
276      case $enableval in
277      yes) enable_fast_install=yes ;;
278      no) enable_fast_install=no ;;
279      *)
280        enable_fast_install=no
281        # Look at the argument we got.  We use all the common list separators.
282        lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
283        for pkg in $enableval; do
284  	IFS="$lt_save_ifs"
285  	if test "X$pkg" = "X$p"; then
286  	  enable_fast_install=yes
287  	fi
288        done
289        IFS="$lt_save_ifs"
290        ;;
291      esac],
292      [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
293  
294  _LT_DECL([fast_install], [enable_fast_install], [0],
295  	 [Whether or not to optimize for fast installation])dnl
296  ])# _LT_ENABLE_FAST_INSTALL
297  
298  LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
299  LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
300  
301  # Old names:
302  AU_DEFUN([AC_ENABLE_FAST_INSTALL],
303  [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
304  AC_DIAGNOSE([obsolete],
305  [$0: Remove this warning and the call to _LT_SET_OPTION when you put
306  the `fast-install' option into LT_INIT's first parameter.])
307  ])
308  
309  AU_DEFUN([AC_DISABLE_FAST_INSTALL],
310  [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
311  AC_DIAGNOSE([obsolete],
312  [$0: Remove this warning and the call to _LT_SET_OPTION when you put
313  the `disable-fast-install' option into LT_INIT's first parameter.])
314  ])
315  
316  dnl aclocal-1.4 backwards compatibility:
317  dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
318  dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
319  
320  
321  # _LT_WITH_PIC([MODE])
322  # --------------------
323  # implement the --with-pic flag, and support the `pic-only' and `no-pic'
324  # LT_INIT options.
325  # MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
326  m4_define([_LT_WITH_PIC],
327  [AC_ARG_WITH([pic],
328      [AS_HELP_STRING([--with-pic],
329  	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
330      [pic_mode="$withval"],
331      [pic_mode=default])
332  
333  test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
334  
335  _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
336  ])# _LT_WITH_PIC
337  
338  LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
339  LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
340  
341  # Old name:
342  AU_DEFUN([AC_LIBTOOL_PICMODE],
343  [_LT_SET_OPTION([LT_INIT], [pic-only])
344  AC_DIAGNOSE([obsolete],
345  [$0: Remove this warning and the call to _LT_SET_OPTION when you
346  put the `pic-only' option into LT_INIT's first parameter.])
347  ])
348  
349  dnl aclocal-1.4 backwards compatibility:
350  dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
351  
352  ## ----------------- ##
353  ## LTDL_INIT Options ##
354  ## ----------------- ##
355  
356  m4_define([_LTDL_MODE], [])
357  LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
358  		 [m4_define([_LTDL_MODE], [nonrecursive])])
359  LT_OPTION_DEFINE([LTDL_INIT], [recursive],
360  		 [m4_define([_LTDL_MODE], [recursive])])
361  LT_OPTION_DEFINE([LTDL_INIT], [subproject],
362  		 [m4_define([_LTDL_MODE], [subproject])])
363  
364  m4_define([_LTDL_TYPE], [])
365  LT_OPTION_DEFINE([LTDL_INIT], [installable],
366  		 [m4_define([_LTDL_TYPE], [installable])])
367  LT_OPTION_DEFINE([LTDL_INIT], [convenience],
368  		 [m4_define([_LTDL_TYPE], [convenience])])