# Definition of Autom4te option sets.                     -*- Makefile -*-
#
# Copyright (C) 2001-2012 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

## -------------------------- ##
## Autoheader preselections.  ##
## -------------------------- ##

begin-language: "Autoheader-preselections"
args: --preselect AC_CONFIG_HEADERS
args: --preselect AH_OUTPUT
args: --preselect AC_DEFINE_TRACE_LITERAL
end-language: "Autoheader-preselections"


## ------------------------ ##
## Automake-preselections.  ##
## ------------------------ ##

begin-language: "Automake-preselections"
args: --preselect AC_CANONICAL_BUILD
args: --preselect AC_CANONICAL_HOST
# AC_CANONICAL_SYSTEM was traced from Automake 1.7 to Automake 1.9.
# Later versions trace AC_CANONICAL_TARGET instead.
args: --preselect AC_CANONICAL_SYSTEM
args: --preselect AC_CANONICAL_TARGET
args: --preselect AC_CONFIG_AUX_DIR
args: --preselect AC_CONFIG_FILES
args: --preselect AC_CONFIG_HEADERS
args: --preselect AC_CONFIG_LIBOBJ_DIR
args: --preselect AC_CONFIG_LINKS
args: --preselect AC_FC_FREEFORM
args: --preselect AC_FC_SRCEXT
args: --preselect AC_FC_PP_DEFINE
args: --preselect AC_FC_PP_SRCEXT
args: --preselect AC_INIT
args: --preselect AC_LIBSOURCE
args: --preselect AC_REQUIRE_AUX_FILE
# Automake < 1.10 traces AC_SUBST.  Automake >= 1.10 traces AC_SUBST_TRACE.
args: --preselect AC_SUBST
args: --preselect AC_SUBST_TRACE
args: --preselect AM_AUTOMAKE_VERSION
args: --preselect AM_CONDITIONAL
args: --preselect AM_ENABLE_MULTILIB
args: --preselect AM_GNU_GETTEXT
args: --preselect AM_GNU_GETTEXT_INTL_SUBDIR
args: --preselect AM_INIT_AUTOMAKE
args: --preselect AM_MAKEFILE_INCLUDE
args: --preselect AM_MAINTAINER_MODE
args: --preselect AM_NLS
args: --preselect AM_POT_TOOLS
args: --preselect AM_PATH_GUILE
args: --preselect AM_PROG_AR
args: --preselect AM_PROG_CC_C_O
args: --preselect AM_PROG_CXX_C_O
args: --preselect AM_PROG_F77_C_O
args: --preselect AM_PROG_FC_C_O
args: --preselect AM_PROG_MOC
args: --preselect AM_SILENT_RULES
args: --preselect AM_XGETTEXT_OPTION
args: --preselect _AM_MAKEFILE_INCLUDE
args: --preselect _AM_SUBST_NOTMAKE
args: --preselect _AM_COND_IF
args: --preselect _AM_COND_ELSE
args: --preselect _AM_COND_ENDIF
args: --preselect LT_SUPPORTED_TAG
args: --preselect _LT_AC_TAGCONFIG
args: --preselect m4_include
args: --preselect m4_sinclude
end-language: "Automake-preselections"


## -------------------------- ##
## Autoreconf-preselections.  ##
## -------------------------- ##

begin-language: "Autoreconf-preselections"
args: --preselect AC_CONFIG_AUX_DIR
args: --preselect AC_CONFIG_HEADERS
args: --preselect AC_CONFIG_SUBDIRS
args: --preselect AC_INIT
args: --preselect AC_PROG_LIBTOOL
args: --preselect LT_INIT
args: --preselect LT_CONFIG_LTDL_DIR
args: --preselect AM_GNU_GETTEXT
end-language: "Autoreconf-preselections"


## ----------------------------- ##
## Autoconf without aclocal.m4.  ##
## ----------------------------- ##

# This intermediate language is used by aclocal to build aclocal.m4.

begin-language: "Autoconf-without-aclocal-m4"
args: --prepend-include '/usr/local/google/home/pgynther/clients/buildroot/output/host/usr/share/autoconf'
args: --cache=autom4te.cache
args: autoconf/autoconf.m4f
args: acsite.m4?
args: --mode 777
args: --language M4sh
end-language: "Autoconf-without-aclocal-m4"


## ---------- ##
## Autoconf.  ##
## ---------- ##

begin-language: "Autoconf"
args: --language Autoheader-preselections
args: --language Automake-preselections
args: --language Autoreconf-preselections
args: --language Autoconf-without-aclocal-m4
args: aclocal.m4?
end-language: "Autoconf"


## -------- ##
## Autotest ##
## -------- ##

begin-language: "Autotest"
args: --prepend-include '/usr/local/google/home/pgynther/clients/buildroot/output/host/usr/share/autoconf'
args: autotest/autotest.m4f
args: package.m4?
args: local.at?
args: --mode 777
args: --language M4sh
end-language: "Autotest"


## ---- ##
## M4sh ##
## ---- ##

begin-language: "M4sh"
args: --prepend-include '/usr/local/google/home/pgynther/clients/buildroot/output/host/usr/share/autoconf'
args: m4sugar/m4sh.m4f
args: --mode 777
args: --language M4sugar
end-language: "M4sh"


## ------- ##
## M4sugar ##
## ------- ##

begin-language: "M4sugar"
args: --prepend-include '/usr/local/google/home/pgynther/clients/buildroot/output/host/usr/share/autoconf'
args: m4sugar/m4sugar.m4f
args: --warnings syntax
end-language: "M4sugar"
