The sim-hardware configure option allows builders to select a set of device models to enable. But this seems like unnecessary overkill: the existence of individual device models doesn't affect performance at all as they are only enabled at runtime if the config uses them, and individually these are all <5KB a piece. Stripping off a total of ~50KB from a ~1MB binary doesn't seem useful, and it's extremely unlikely anyone will ever bother. So let's simplify the configure/make logic by turning sim-hardware into a boolean option like many of the other sim options. Any ports that have unique device models will declare them in their Makefile instead of at configure time. This will allow us to (eventually) unify the setting into the common dir.
58 lines
2.4 KiB
Plaintext
58 lines
2.4 KiB
Plaintext
dnl Copyright (C) 1997-2021 Free Software Foundation, Inc.
|
|
dnl
|
|
dnl This program is free software; you can redistribute it and/or modify
|
|
dnl it under the terms of the GNU General Public License as published by
|
|
dnl the Free Software Foundation; either version 3 of the License, or
|
|
dnl (at your option) any later version.
|
|
dnl
|
|
dnl This program is distributed in the hope that it will be useful,
|
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
dnl GNU General Public License for more details.
|
|
dnl
|
|
dnl You should have received a copy of the GNU General Public License
|
|
dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
dnl
|
|
dnl Generate the Makefile in a target specific directory.
|
|
dnl Substitutions aren't performed on the file in AC_SUBST_FILE,
|
|
dnl so this is a cover macro to tuck the details away of how we cope.
|
|
dnl We cope by having autoconf generate two files and then merge them into
|
|
dnl one afterwards. The two pieces of the common fragment are inserted into
|
|
dnl the target's fragment at the appropriate points.
|
|
AC_DEFUN([SIM_AC_OUTPUT],
|
|
[dnl
|
|
AC_REQUIRE([SIM_AC_OPTION_HARDWARE])dnl
|
|
|
|
dnl Make @cgen_breaks@ non-null only if the sim uses CGEN.
|
|
cgen_breaks=""
|
|
if grep CGEN_MAINT $srcdir/Makefile.in >/dev/null; then
|
|
cgen_breaks="break cgen_rtx_error";
|
|
fi
|
|
AC_SUBST(cgen_breaks)
|
|
AC_CONFIG_FILES(Makefile.sim:Makefile.in)
|
|
AC_CONFIG_FILES(Make-common.sim:../common/Make-common.in)
|
|
AC_CONFIG_FILES(.gdbinit:../common/gdbinit.in)
|
|
AC_CONFIG_COMMANDS([Makefile],
|
|
[echo "Merging Makefile.sim+Make-common.sim into Makefile ..."
|
|
rm -f Makesim1.tmp Makesim2.tmp Makefile
|
|
sed -n -e '/^## COMMON_PRE_/,/^## End COMMON_PRE_/ p' <Make-common.sim >Makesim1.tmp
|
|
sed -n -e '/^## COMMON_POST_/,/^## End COMMON_POST_/ p' <Make-common.sim >Makesim2.tmp
|
|
sed -e '/^## COMMON_PRE_/ r Makesim1.tmp' \
|
|
-e '/^## COMMON_POST_/ r Makesim2.tmp' \
|
|
<Makefile.sim >Makefile
|
|
rm -f Makefile.sim Make-common.sim Makesim1.tmp Makesim2.tmp
|
|
])
|
|
AC_CONFIG_COMMANDS([stamp-h], [echo > stamp-h])
|
|
|
|
dnl These are unfortunate. They are conditionally called by other sim macros
|
|
dnl but always used by common/Make-common.in. So we have to subst here even
|
|
dnl when the rest of the code is in the respective macros.
|
|
AC_SUBST(sim_bitsize)
|
|
AC_SUBST(sim_float)
|
|
AC_SUBST(sim_scache)
|
|
AC_SUBST(sim_default_model)
|
|
AC_SUBST(sim_reserved_bits)
|
|
|
|
AC_OUTPUT
|
|
])
|