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. 13AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) 14 15 16# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) 17# ------------------------------------------ 18m4_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. 27m4_define([_LT_SET_OPTION], 28[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl 29m4_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. 38m4_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. 46m4_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 50m4_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. 61m4_defun([_LT_SET_OPTIONS], 62[# Set options 63m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), 64 [_LT_SET_OPTION([$1], _LT_Option)]) 65 66m4_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# ----------------------------------------- 94m4_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# ----------------------------------------------- 100m4_define([LT_OPTION_DEFINE], 101[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl 102])# LT_OPTION_DEFINE 103 104 105# dlopen 106# ------ 107LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes 108]) 109 110AU_DEFUN([AC_LIBTOOL_DLOPEN], 111[_LT_SET_OPTION([LT_INIT], [dlopen]) 112AC_DIAGNOSE([obsolete], 113[$0: Remove this warning and the call to _LT_SET_OPTION when you 114put the `dlopen' option into LT_INIT's first parameter.]) 115]) 116 117dnl aclocal-1.4 backwards compatibility: 118dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) 119 120 121# win32-dll 122# --------- 123# Declare package support for building win32 dll's. 124LT_OPTION_DEFINE([LT_INIT], [win32-dll], 125[enable_win32_dll=yes 126 127case $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 ;; 133esac 134 135test -z "$AS" && AS=as 136_LT_DECL([], [AS], [0], [Assembler program])dnl 137 138test -z "$DLLTOOL" && DLLTOOL=dlltool 139_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl 140 141test -z "$OBJDUMP" && OBJDUMP=objdump 142_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl 143])# win32-dll 144 145AU_DEFUN([AC_LIBTOOL_WIN32_DLL], 146[AC_REQUIRE([AC_CANONICAL_HOST])dnl 147_LT_SET_OPTION([LT_INIT], [win32-dll]) 148AC_DIAGNOSE([obsolete], 149[$0: Remove this warning and the call to _LT_SET_OPTION when you 150put the `win32-dll' option into LT_INIT's first parameter.]) 151]) 152 153dnl aclocal-1.4 backwards compatibility: 154dnl 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'. 162m4_define([_LT_ENABLE_SHARED], 163[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl 164AC_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 190LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) 191LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) 192 193# Old names: 194AC_DEFUN([AC_ENABLE_SHARED], 195[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) 196]) 197 198AC_DEFUN([AC_DISABLE_SHARED], 199[_LT_SET_OPTION([LT_INIT], [disable-shared]) 200]) 201 202AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) 203AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) 204 205dnl aclocal-1.4 backwards compatibility: 206dnl AC_DEFUN([AM_ENABLE_SHARED], []) 207dnl 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'. 216m4_define([_LT_ENABLE_STATIC], 217[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl 218AC_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 244LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) 245LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) 246 247# Old names: 248AC_DEFUN([AC_ENABLE_STATIC], 249[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) 250]) 251 252AC_DEFUN([AC_DISABLE_STATIC], 253[_LT_SET_OPTION([LT_INIT], [disable-static]) 254]) 255 256AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) 257AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) 258 259dnl aclocal-1.4 backwards compatibility: 260dnl AC_DEFUN([AM_ENABLE_STATIC], []) 261dnl 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'. 270m4_define([_LT_ENABLE_FAST_INSTALL], 271[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl 272AC_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 298LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) 299LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) 300 301# Old names: 302AU_DEFUN([AC_ENABLE_FAST_INSTALL], 303[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) 304AC_DIAGNOSE([obsolete], 305[$0: Remove this warning and the call to _LT_SET_OPTION when you put 306the `fast-install' option into LT_INIT's first parameter.]) 307]) 308 309AU_DEFUN([AC_DISABLE_FAST_INSTALL], 310[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) 311AC_DIAGNOSE([obsolete], 312[$0: Remove this warning and the call to _LT_SET_OPTION when you put 313the `disable-fast-install' option into LT_INIT's first parameter.]) 314]) 315 316dnl aclocal-1.4 backwards compatibility: 317dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) 318dnl 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'. 326m4_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 333test -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 338LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) 339LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) 340 341# Old name: 342AU_DEFUN([AC_LIBTOOL_PICMODE], 343[_LT_SET_OPTION([LT_INIT], [pic-only]) 344AC_DIAGNOSE([obsolete], 345[$0: Remove this warning and the call to _LT_SET_OPTION when you 346put the `pic-only' option into LT_INIT's first parameter.]) 347]) 348 349dnl aclocal-1.4 backwards compatibility: 350dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) 351 352## ----------------- ## 353## LTDL_INIT Options ## 354## ----------------- ## 355 356m4_define([_LTDL_MODE], []) 357LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], 358 [m4_define([_LTDL_MODE], [nonrecursive])]) 359LT_OPTION_DEFINE([LTDL_INIT], [recursive], 360 [m4_define([_LTDL_MODE], [recursive])]) 361LT_OPTION_DEFINE([LTDL_INIT], [subproject], 362 [m4_define([_LTDL_MODE], [subproject])]) 363 364m4_define([_LTDL_TYPE], []) 365LT_OPTION_DEFINE([LTDL_INIT], [installable], 366 [m4_define([_LTDL_TYPE], [installable])]) 367LT_OPTION_DEFINE([LTDL_INIT], [convenience], 368 [m4_define([_LTDL_TYPE], [convenience])]) 369