#! /usr/bin/autogen
AutoGen definitions Makefile.tpl;

// Makefile.in is generated from Makefile.tpl by 'autogen Makefile.def'.
// This file was originally written by Nathanael Nerode.
//
//   Copyright 2002-2021 Free Software Foundation
//
// This file 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; see the file COPYING3.  If not see
// <http://www.gnu.org/licenses/>.


// "missing" indicates that that module doesn't supply
// that recursive target in its Makefile.

build_modules= { module= libcpp;
                 extra_configure_flags='--disable-nls am_cv_func_iconv=no';};

// host_modules= { module= binutils; bootstrap=true; };
host_modules= { module= gcc; bootstrap=true; 
		extra_make_flags="$(EXTRA_GCC_FLAGS)"; };
host_modules= { module= libbacktrace; bootstrap=true; };
host_modules= { module= libcpp; bootstrap=true; };

target_modules = { module= libbacktrace; bootstrap=true; };

// These are (some of) the make targets to be done in each subdirectory.
// Not all; these are the ones which don't have special options.
// "depend" indicates that a target depends on another target uniformly
// for each subdirectory.  There can be several such lines per target.
recursive_targets = { make_target= info; 
                      depend=configure; };
recursive_targets = { make_target= dvi; 
                      depend=configure; };
recursive_targets = { make_target= pdf; 
                      depend=configure; };
recursive_targets = { make_target= html; 
                      depend=configure; };
recursive_targets = { make_target= TAGS; 
                      depend=configure; };
recursive_targets = { make_target= install-info; 
                      depend=configure;
                      depend=info; };
recursive_targets = { make_target= install-dvi;
                      depend=configure;
                      depend=dvi; };
recursive_targets = { make_target= install-pdf; 
                      depend=configure;
                      depend=pdf; };
recursive_targets = { make_target= install-html; 
                      depend=configure;
                      depend=html; };
recursive_targets = { make_target= installcheck; 
                      depend=configure; };
recursive_targets = { make_target= mostlyclean; };
recursive_targets = { make_target= clean; };
recursive_targets = { make_target= distclean; };
recursive_targets = { make_target= maintainer-clean; };

// Flags which need to be passed down.

// Directories etc.
flags_to_pass = { flag= DESTDIR ; };
flags_to_pass = { flag= RPATH_ENVVAR ; };
flags_to_pass = { flag= TARGET_SUBDIR ; };
flags_to_pass = { flag= bindir ; };
flags_to_pass = { flag= datadir ; };
flags_to_pass = { flag= exec_prefix ; };
flags_to_pass = { flag= includedir ; };
flags_to_pass = { flag= datarootdir ; };
flags_to_pass = { flag= docdir ; };
flags_to_pass = { flag= infodir ; };
flags_to_pass = { flag= pdfdir ; };
flags_to_pass = { flag= htmldir ; };
flags_to_pass = { flag= libdir ; };
flags_to_pass = { flag= libexecdir ; };
flags_to_pass = { flag= lispdir ; };
flags_to_pass = { flag= localstatedir ; };
flags_to_pass = { flag= mandir ; };
flags_to_pass = { flag= oldincludedir ; };
flags_to_pass = { flag= prefix ; };
flags_to_pass = { flag= sbindir ; };
flags_to_pass = { flag= sharedstatedir ; };
flags_to_pass = { flag= sysconfdir ; };
flags_to_pass = { flag= tooldir ; };
flags_to_pass = { flag= build_tooldir ; };
flags_to_pass = { flag= target_alias ; };

// Build tools
flags_to_pass = { flag= AWK ; };
flags_to_pass = { flag= BISON ; };
flags_to_pass = { flag= CC_FOR_BUILD ; };
flags_to_pass = { flag= CFLAGS_FOR_BUILD ; };
flags_to_pass = { flag= CXX_FOR_BUILD ; };
flags_to_pass = { flag= EXPECT ; };
flags_to_pass = { flag= FLEX ; };
flags_to_pass = { flag= INSTALL ; };
flags_to_pass = { flag= INSTALL_DATA ; };
flags_to_pass = { flag= INSTALL_PROGRAM ; };
flags_to_pass = { flag= INSTALL_SCRIPT ; };
flags_to_pass = { flag= LDFLAGS_FOR_BUILD ; };
flags_to_pass = { flag= LEX ; };
flags_to_pass = { flag= M4 ; };
flags_to_pass = { flag= MAKE ; };
flags_to_pass = { flag= RUNTEST ; };
flags_to_pass = { flag= RUNTESTFLAGS ; };
flags_to_pass = { flag= SED ; };
flags_to_pass = { flag= SHELL ; };
flags_to_pass = { flag= YACC ; };

// Host tools
flags_to_pass = { flag= ADAFLAGS ; optional=true ; };
flags_to_pass = { flag= ADA_CFLAGS ; };
flags_to_pass = { flag= AR_FLAGS ; };
flags_to_pass = { flag= BOOT_ADAFLAGS ; optional=true ; };
flags_to_pass = { flag= BOOT_CFLAGS ; };
flags_to_pass = { flag= BOOT_LDFLAGS ; };
flags_to_pass = { flag= CFLAGS ; };
flags_to_pass = { flag= CXXFLAGS ; };
flags_to_pass = { flag= LDFLAGS ; };
flags_to_pass = { flag= LIBCFLAGS ; };
flags_to_pass = { flag= LIBCXXFLAGS ; };
flags_to_pass = { flag= STAGE1_CHECKING ; };
flags_to_pass = { flag= STAGE1_LANGUAGES ; };
flags_to_pass = { flag= GNATBIND ; };
flags_to_pass = { flag= GNATMAKE ; };
flags_to_pass = { flag= GDC ; };
flags_to_pass = { flag= GDCFLAGS ; };

// Target tools
flags_to_pass = { flag= AR_FOR_TARGET ; };
flags_to_pass = { flag= AS_FOR_TARGET ; };
flags_to_pass = { flag= CC_FOR_TARGET ; };
flags_to_pass = { flag= CFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= CPPFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= CXXFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= DLLTOOL_FOR_TARGET ; };
flags_to_pass = { flag= DSYMUTIL_FOR_TARGET ; };
flags_to_pass = { flag= FLAGS_FOR_TARGET ; };
flags_to_pass = { flag= GFORTRAN_FOR_TARGET ; };
flags_to_pass = { flag= GOC_FOR_TARGET ; };
flags_to_pass = { flag= GOCFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= GDC_FOR_TARGET ; };
flags_to_pass = { flag= GDCFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= LD_FOR_TARGET ; };
flags_to_pass = { flag= LIPO_FOR_TARGET ; };
flags_to_pass = { flag= LDFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= LIBCFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= LIBCXXFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= NM_FOR_TARGET ; };
flags_to_pass = { flag= OBJDUMP_FOR_TARGET ; };
flags_to_pass = { flag= OBJCOPY_FOR_TARGET ; };
flags_to_pass = { flag= RANLIB_FOR_TARGET ; };
flags_to_pass = { flag= READELF_FOR_TARGET ; };
flags_to_pass = { flag= STRIP_FOR_TARGET ; };
flags_to_pass = { flag= WINDRES_FOR_TARGET ; };
flags_to_pass = { flag= WINDMC_FOR_TARGET ; };

// Miscellaneous
flags_to_pass = { flag= BUILD_CONFIG ; };
flags_to_pass = { flag= LANGUAGES ; optional=true ; };
flags_to_pass = { flag= LEAN ; };

// Inter-module dependencies

// Build modules
dependencies = { module=all-build-bison; on=all-build-texinfo; };
dependencies = { module=all-build-flex; on=all-build-texinfo; };
dependencies = { module=all-build-flex; on=all-build-bison; };
dependencies = { module=all-build-flex; on=all-build-m4; };
dependencies = { module=all-build-m4; on=all-build-texinfo; };

// Host modules specific to gcc.
dependencies = { module=all-gcc; on=all-libcpp; hard=true; };
dependencies = { module=all-gcc; on=all-libbacktrace; hard=true; };

// dependencies = { module=configure-libcpp; hard=true; };

languages = { language=c;	gcc-check-target=check-gcc; };

// Toplevel bootstrap
bootstrap_stage = { id=1 ; };
bootstrap_stage = {
	id=2 ; prev=1 ;
	bootstrap_target=bootstrap2 ; };
bootstrap_stage = {
	id=3 ; prev=2 ; lean=1 ;
	compare_target=compare ;
	bootstrap_target=bootstrap ;
	cleanstrap_target=cleanstrap ; };
bootstrap_stage = {
	id=4 ; prev=3 ; lean=2 ;
	compare_target=compare3 ;
	bootstrap_target=bootstrap4 ; };
bootstrap_stage = {
	id=profile ; prev=1 ; };
bootstrap_stage = {
	id=train; prev=profile ; } ;
bootstrap_stage = {
	id=feedback ; prev=train;
	bootstrap_target=profiledbootstrap ; };
bootstrap_stage = {
	id=autoprofile ; prev=1 ;
        autoprofile="$$s/gcc/config/i386/$(AUTO_PROFILE)" ; };
bootstrap_stage = {
	id=autofeedback ; prev=autoprofile ;
	bootstrap_target=autoprofiledbootstrap ;
	profile_data="PERF_DATA=perf.data" ; };
