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