aboutsummaryrefslogtreecommitdiff
path: root/sim/m4/sim_ac_output.m4
diff options
context:
space:
mode:
Diffstat (limited to 'sim/m4/sim_ac_output.m4')
-rw-r--r--sim/m4/sim_ac_output.m462
1 files changed, 62 insertions, 0 deletions
diff --git a/sim/m4/sim_ac_output.m4 b/sim/m4/sim_ac_output.m4
new file mode 100644
index 0000000..9ec566d
--- /dev/null
+++ b/sim/m4/sim_ac_output.m4
@@ -0,0 +1,62 @@
+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_WARNINGS])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_alignment)
+AC_SUBST(sim_bitsize)
+AC_SUBST(sim_endian)
+AC_SUBST(sim_float)
+AC_SUBST(sim_scache)
+AC_SUBST(sim_default_model)
+AC_SUBST(sim_hw_cflags)
+AC_SUBST(sim_hw_objs)
+AC_SUBST(sim_hw)
+AC_SUBST(sim_reserved_bits)
+
+AC_OUTPUT
+])