Chris@0: # Helper functions for option handling. -*- Autoconf -*- Chris@0: # Chris@0: # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Chris@0: # Inc. Chris@0: # Written by Gary V. Vaughan, 2004 Chris@0: # Chris@0: # This file is free software; the Free Software Foundation gives Chris@0: # unlimited permission to copy and/or distribute it, with or without Chris@0: # modifications, as long as this notice is preserved. Chris@0: Chris@0: # serial 7 ltoptions.m4 Chris@0: Chris@0: # This is to help aclocal find these macros, as it can't see m4_define. Chris@0: AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) Chris@0: Chris@0: Chris@0: # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) Chris@0: # ------------------------------------------ Chris@0: m4_define([_LT_MANGLE_OPTION], Chris@0: [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) Chris@0: Chris@0: Chris@0: # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) Chris@0: # --------------------------------------- Chris@0: # Set option OPTION-NAME for macro MACRO-NAME, and if there is a Chris@0: # matching handler defined, dispatch to it. Other OPTION-NAMEs are Chris@0: # saved as a flag. Chris@0: m4_define([_LT_SET_OPTION], Chris@0: [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl Chris@0: m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), Chris@0: _LT_MANGLE_DEFUN([$1], [$2]), Chris@0: [m4_warning([Unknown $1 option `$2'])])[]dnl Chris@0: ]) Chris@0: Chris@0: Chris@0: # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) Chris@0: # ------------------------------------------------------------ Chris@0: # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. Chris@0: m4_define([_LT_IF_OPTION], Chris@0: [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) Chris@0: Chris@0: Chris@0: # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) Chris@0: # ------------------------------------------------------- Chris@0: # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME Chris@0: # are set. Chris@0: m4_define([_LT_UNLESS_OPTIONS], Chris@0: [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), Chris@0: [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), Chris@0: [m4_define([$0_found])])])[]dnl Chris@0: m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 Chris@0: ])[]dnl Chris@0: ]) Chris@0: Chris@0: Chris@0: # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) Chris@0: # ---------------------------------------- Chris@0: # OPTION-LIST is a space-separated list of Libtool options associated Chris@0: # with MACRO-NAME. If any OPTION has a matching handler declared with Chris@0: # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about Chris@0: # the unknown option and exit. Chris@0: m4_defun([_LT_SET_OPTIONS], Chris@0: [# Set options Chris@0: m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), Chris@0: [_LT_SET_OPTION([$1], _LT_Option)]) Chris@0: Chris@0: m4_if([$1],[LT_INIT],[ Chris@0: dnl Chris@0: dnl Simply set some default values (i.e off) if boolean options were not Chris@0: dnl specified: Chris@0: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no Chris@0: ]) Chris@0: _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no Chris@0: ]) Chris@0: dnl Chris@0: dnl If no reference was made to various pairs of opposing options, then Chris@0: dnl we run the default mode handler for the pair. For example, if neither Chris@0: dnl `shared' nor `disable-shared' was passed, we enable building of shared Chris@0: dnl archives by default: Chris@0: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) Chris@0: _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) Chris@0: _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) Chris@0: _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], Chris@0: [_LT_ENABLE_FAST_INSTALL]) Chris@0: ]) Chris@0: ])# _LT_SET_OPTIONS Chris@0: Chris@0: Chris@0: ## --------------------------------- ## Chris@0: ## Macros to handle LT_INIT options. ## Chris@0: ## --------------------------------- ## Chris@0: Chris@0: # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) Chris@0: # ----------------------------------------- Chris@0: m4_define([_LT_MANGLE_DEFUN], Chris@0: [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) Chris@0: Chris@0: Chris@0: # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) Chris@0: # ----------------------------------------------- Chris@0: m4_define([LT_OPTION_DEFINE], Chris@0: [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl Chris@0: ])# LT_OPTION_DEFINE Chris@0: Chris@0: Chris@0: # dlopen Chris@0: # ------ Chris@0: LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes Chris@0: ]) Chris@0: Chris@0: AU_DEFUN([AC_LIBTOOL_DLOPEN], Chris@0: [_LT_SET_OPTION([LT_INIT], [dlopen]) Chris@0: AC_DIAGNOSE([obsolete], Chris@0: [$0: Remove this warning and the call to _LT_SET_OPTION when you Chris@0: put the `dlopen' option into LT_INIT's first parameter.]) Chris@0: ]) Chris@0: Chris@0: dnl aclocal-1.4 backwards compatibility: Chris@0: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) Chris@0: Chris@0: Chris@0: # win32-dll Chris@0: # --------- Chris@0: # Declare package support for building win32 dll's. Chris@0: LT_OPTION_DEFINE([LT_INIT], [win32-dll], Chris@0: [enable_win32_dll=yes Chris@0: Chris@0: case $host in Chris@0: *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) Chris@0: AC_CHECK_TOOL(AS, as, false) Chris@0: AC_CHECK_TOOL(DLLTOOL, dlltool, false) Chris@0: AC_CHECK_TOOL(OBJDUMP, objdump, false) Chris@0: ;; Chris@0: esac Chris@0: Chris@0: test -z "$AS" && AS=as Chris@0: _LT_DECL([], [AS], [1], [Assembler program])dnl Chris@0: Chris@0: test -z "$DLLTOOL" && DLLTOOL=dlltool Chris@0: _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl Chris@0: Chris@0: test -z "$OBJDUMP" && OBJDUMP=objdump Chris@0: _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl Chris@0: ])# win32-dll Chris@0: Chris@0: AU_DEFUN([AC_LIBTOOL_WIN32_DLL], Chris@0: [AC_REQUIRE([AC_CANONICAL_HOST])dnl Chris@0: _LT_SET_OPTION([LT_INIT], [win32-dll]) Chris@0: AC_DIAGNOSE([obsolete], Chris@0: [$0: Remove this warning and the call to _LT_SET_OPTION when you Chris@0: put the `win32-dll' option into LT_INIT's first parameter.]) Chris@0: ]) Chris@0: Chris@0: dnl aclocal-1.4 backwards compatibility: Chris@0: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) Chris@0: Chris@0: Chris@0: # _LT_ENABLE_SHARED([DEFAULT]) Chris@0: # ---------------------------- Chris@0: # implement the --enable-shared flag, and supports the `shared' and Chris@0: # `disable-shared' LT_INIT options. Chris@0: # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. Chris@0: m4_define([_LT_ENABLE_SHARED], Chris@0: [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl Chris@0: AC_ARG_ENABLE([shared], Chris@0: [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], Chris@0: [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], Chris@0: [p=${PACKAGE-default} Chris@0: case $enableval in Chris@0: yes) enable_shared=yes ;; Chris@0: no) enable_shared=no ;; Chris@0: *) Chris@0: enable_shared=no Chris@0: # Look at the argument we got. We use all the common list separators. Chris@0: lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," Chris@0: for pkg in $enableval; do Chris@0: IFS="$lt_save_ifs" Chris@0: if test "X$pkg" = "X$p"; then Chris@0: enable_shared=yes Chris@0: fi Chris@0: done Chris@0: IFS="$lt_save_ifs" Chris@0: ;; Chris@0: esac], Chris@0: [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) Chris@0: Chris@0: _LT_DECL([build_libtool_libs], [enable_shared], [0], Chris@0: [Whether or not to build shared libraries]) Chris@0: ])# _LT_ENABLE_SHARED Chris@0: Chris@0: LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) Chris@0: LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) Chris@0: Chris@0: # Old names: Chris@0: AC_DEFUN([AC_ENABLE_SHARED], Chris@0: [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) Chris@0: ]) Chris@0: Chris@0: AC_DEFUN([AC_DISABLE_SHARED], Chris@0: [_LT_SET_OPTION([LT_INIT], [disable-shared]) Chris@0: ]) Chris@0: Chris@0: AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) Chris@0: AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) Chris@0: Chris@0: dnl aclocal-1.4 backwards compatibility: Chris@0: dnl AC_DEFUN([AM_ENABLE_SHARED], []) Chris@0: dnl AC_DEFUN([AM_DISABLE_SHARED], []) Chris@0: Chris@0: Chris@0: Chris@0: # _LT_ENABLE_STATIC([DEFAULT]) Chris@0: # ---------------------------- Chris@0: # implement the --enable-static flag, and support the `static' and Chris@0: # `disable-static' LT_INIT options. Chris@0: # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. Chris@0: m4_define([_LT_ENABLE_STATIC], Chris@0: [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl Chris@0: AC_ARG_ENABLE([static], Chris@0: [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], Chris@0: [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], Chris@0: [p=${PACKAGE-default} Chris@0: case $enableval in Chris@0: yes) enable_static=yes ;; Chris@0: no) enable_static=no ;; Chris@0: *) Chris@0: enable_static=no Chris@0: # Look at the argument we got. We use all the common list separators. Chris@0: lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," Chris@0: for pkg in $enableval; do Chris@0: IFS="$lt_save_ifs" Chris@0: if test "X$pkg" = "X$p"; then Chris@0: enable_static=yes Chris@0: fi Chris@0: done Chris@0: IFS="$lt_save_ifs" Chris@0: ;; Chris@0: esac], Chris@0: [enable_static=]_LT_ENABLE_STATIC_DEFAULT) Chris@0: Chris@0: _LT_DECL([build_old_libs], [enable_static], [0], Chris@0: [Whether or not to build static libraries]) Chris@0: ])# _LT_ENABLE_STATIC Chris@0: Chris@0: LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) Chris@0: LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) Chris@0: Chris@0: # Old names: Chris@0: AC_DEFUN([AC_ENABLE_STATIC], Chris@0: [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) Chris@0: ]) Chris@0: Chris@0: AC_DEFUN([AC_DISABLE_STATIC], Chris@0: [_LT_SET_OPTION([LT_INIT], [disable-static]) Chris@0: ]) Chris@0: Chris@0: AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) Chris@0: AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) Chris@0: Chris@0: dnl aclocal-1.4 backwards compatibility: Chris@0: dnl AC_DEFUN([AM_ENABLE_STATIC], []) Chris@0: dnl AC_DEFUN([AM_DISABLE_STATIC], []) Chris@0: Chris@0: Chris@0: Chris@0: # _LT_ENABLE_FAST_INSTALL([DEFAULT]) Chris@0: # ---------------------------------- Chris@0: # implement the --enable-fast-install flag, and support the `fast-install' Chris@0: # and `disable-fast-install' LT_INIT options. Chris@0: # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. Chris@0: m4_define([_LT_ENABLE_FAST_INSTALL], Chris@0: [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl Chris@0: AC_ARG_ENABLE([fast-install], Chris@0: [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], Chris@0: [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], Chris@0: [p=${PACKAGE-default} Chris@0: case $enableval in Chris@0: yes) enable_fast_install=yes ;; Chris@0: no) enable_fast_install=no ;; Chris@0: *) Chris@0: enable_fast_install=no Chris@0: # Look at the argument we got. We use all the common list separators. Chris@0: lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," Chris@0: for pkg in $enableval; do Chris@0: IFS="$lt_save_ifs" Chris@0: if test "X$pkg" = "X$p"; then Chris@0: enable_fast_install=yes Chris@0: fi Chris@0: done Chris@0: IFS="$lt_save_ifs" Chris@0: ;; Chris@0: esac], Chris@0: [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) Chris@0: Chris@0: _LT_DECL([fast_install], [enable_fast_install], [0], Chris@0: [Whether or not to optimize for fast installation])dnl Chris@0: ])# _LT_ENABLE_FAST_INSTALL Chris@0: Chris@0: LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) Chris@0: LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) Chris@0: Chris@0: # Old names: Chris@0: AU_DEFUN([AC_ENABLE_FAST_INSTALL], Chris@0: [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) Chris@0: AC_DIAGNOSE([obsolete], Chris@0: [$0: Remove this warning and the call to _LT_SET_OPTION when you put Chris@0: the `fast-install' option into LT_INIT's first parameter.]) Chris@0: ]) Chris@0: Chris@0: AU_DEFUN([AC_DISABLE_FAST_INSTALL], Chris@0: [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) Chris@0: AC_DIAGNOSE([obsolete], Chris@0: [$0: Remove this warning and the call to _LT_SET_OPTION when you put Chris@0: the `disable-fast-install' option into LT_INIT's first parameter.]) Chris@0: ]) Chris@0: Chris@0: dnl aclocal-1.4 backwards compatibility: Chris@0: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) Chris@0: dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) Chris@0: Chris@0: Chris@0: # _LT_WITH_PIC([MODE]) Chris@0: # -------------------- Chris@0: # implement the --with-pic flag, and support the `pic-only' and `no-pic' Chris@0: # LT_INIT options. Chris@0: # MODE is either `yes' or `no'. If omitted, it defaults to `both'. Chris@0: m4_define([_LT_WITH_PIC], Chris@0: [AC_ARG_WITH([pic], Chris@0: [AS_HELP_STRING([--with-pic], Chris@0: [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], Chris@0: [pic_mode="$withval"], Chris@0: [pic_mode=default]) Chris@0: Chris@0: test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) Chris@0: Chris@0: _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl Chris@0: ])# _LT_WITH_PIC Chris@0: Chris@0: LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) Chris@0: LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) Chris@0: Chris@0: # Old name: Chris@0: AU_DEFUN([AC_LIBTOOL_PICMODE], Chris@0: [_LT_SET_OPTION([LT_INIT], [pic-only]) Chris@0: AC_DIAGNOSE([obsolete], Chris@0: [$0: Remove this warning and the call to _LT_SET_OPTION when you Chris@0: put the `pic-only' option into LT_INIT's first parameter.]) Chris@0: ]) Chris@0: Chris@0: dnl aclocal-1.4 backwards compatibility: Chris@0: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) Chris@0: Chris@0: ## ----------------- ## Chris@0: ## LTDL_INIT Options ## Chris@0: ## ----------------- ## Chris@0: Chris@0: m4_define([_LTDL_MODE], []) Chris@0: LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], Chris@0: [m4_define([_LTDL_MODE], [nonrecursive])]) Chris@0: LT_OPTION_DEFINE([LTDL_INIT], [recursive], Chris@0: [m4_define([_LTDL_MODE], [recursive])]) Chris@0: LT_OPTION_DEFINE([LTDL_INIT], [subproject], Chris@0: [m4_define([_LTDL_MODE], [subproject])]) Chris@0: Chris@0: m4_define([_LTDL_TYPE], []) Chris@0: LT_OPTION_DEFINE([LTDL_INIT], [installable], Chris@0: [m4_define([_LTDL_TYPE], [installable])]) Chris@0: LT_OPTION_DEFINE([LTDL_INIT], [convenience], Chris@0: [m4_define([_LTDL_TYPE], [convenience])])