Blame m4/ltoptions.m4

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