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