From 7fb45a689543be75809a0513900d82f5bd859338 Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Wed, 10 Oct 2018 14:58:10 +0100 Subject: [PATCH] sim/opcodes: Allow use of out of tree cgen source directory When configuring with '--enbale-cgen-maint' the default for both the opcodes/ and sim/ directories is to assume that the cgen source is within the binutils-gdb source tree as binutils-gdb/cgen/. In the old cvs days, this worked well, as cgen was just another sub-module of the single cvs repository and could easily be checked out within the binutils-gdb directory, and managed by cvs in the normal way. Now that binutils-gdb is in git, while cgen is still in cvs, placing the cgen respository within the binutils-gdb tree is more troublesome, and it would be nice if the two tools could be kept separate. Luckily there is already some initial code in the configure.ac files for both opcodes/ and sim/ to support having cgen be located outside of the binutils-gdb tree, however, this was speculative code written imagining a future where cgen would be built and installed to some location. Right now there is no install support for cgen, and so the configure code in opcodes/ and sim/ doesn't really do anything useful. In this commit I repurpose this code to allow binutils-gdb to be configured so that it can make use of a cgen source directory that is outside of the binutils-gdb tree. With this commit applied it is now possible to configure and build binutils-gdb like this: /path/to/binutils-gdb/src/configure --enable-cgen-maint=/path/to/cgen/src/cgen/ make all-opcodes make -C opcodes run-cgen-all Just in case anyone is still using cgen inside the binutils-gdb tree, I have left the default behaviour of '--enable-cgen-maint' (with no parameter) unchanged, that is it looks for the cgen directory as 'binutils-gdb/cgen/'. opcodes/ChangeLog: * configure.ac (enable-cgen-maint): Support passing path to cgen source tree. * configure: Regenerate. sim/ChangeLog: * common/acinclude.m4 (enable-cgen-maint): Support passing path to cgen source tree. * cris/configure: Regenerate. * frv/configure: Regenerate. * iq2000/configure: Regenerate. * lm32/configure: Regenerate. * m32r/configure: Regenerate. * or1k/configure: Regenerate. * sh64/configure: Regenerate. --- opcodes/ChangeLog | 6 ++++++ opcodes/configure | 14 ++++++++++---- opcodes/configure.ac | 14 ++++++++++---- sim/ChangeLog | 12 ++++++++++++ sim/common/acinclude.m4 | 16 +++++++++++----- sim/cris/configure | 16 +++++++++++----- sim/frv/configure | 16 +++++++++++----- sim/iq2000/configure | 16 +++++++++++----- sim/lm32/configure | 16 +++++++++++----- sim/m32r/configure | 16 +++++++++++----- sim/or1k/configure | 16 +++++++++++----- sim/sh64/configure | 16 +++++++++++----- 12 files changed, 126 insertions(+), 48 deletions(-) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 753be9f1a3..5588e4b500 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2018-12-06 Andrew Burgess + + * configure.ac (enable-cgen-maint): Support passing path to cgen + source tree. + * configure: Regenerate. + 2018-12-06 Andrew Burgess * disassembler.c (disassemble_init_for_target): Add RISC-V diff --git a/opcodes/configure b/opcodes/configure index 389e5513cf..eb74324ca8 100755 --- a/opcodes/configure +++ b/opcodes/configure @@ -12574,11 +12574,17 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. cgen_maint=yes - cgendir=${cgen_maint}/lib/cgen + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + as_fn_error $? "${enableval} doesn't look like a cgen source tree" "$LINENO" 5 + fi ;; esac fi diff --git a/opcodes/configure.ac b/opcodes/configure.ac index 4c3698356b..7384684bc0 100644 --- a/opcodes/configure.ac +++ b/opcodes/configure.ac @@ -109,11 +109,17 @@ AC_ARG_ENABLE(cgen-maint, yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. cgen_maint=yes - cgendir=${cgen_maint}/lib/cgen + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + AC_MSG_ERROR(${enableval} doesn't look like a cgen source tree) + fi ;; esac])dnl AM_CONDITIONAL(CGEN_MAINT, test x${cgen_maint} = xyes) diff --git a/sim/ChangeLog b/sim/ChangeLog index 8fdef08be9..efd1f8837e 100644 --- a/sim/ChangeLog +++ b/sim/ChangeLog @@ -1,3 +1,15 @@ +2018-12-06 Andrew Burgess + + * common/acinclude.m4 (enable-cgen-maint): Support passing path to + cgen source tree. + * cris/configure: Regenerate. + * frv/configure: Regenerate. + * iq2000/configure: Regenerate. + * lm32/configure: Regenerate. + * m32r/configure: Regenerate. + * or1k/configure: Regenerate. + * sh64/configure: Regenerate. + 2018-10-05 Stafford Horne * or1k/cpu.h: Regenerate. diff --git a/sim/common/acinclude.m4 b/sim/common/acinclude.m4 index abc15a93ac..71a8841ab0 100644 --- a/sim/common/acinclude.m4 +++ b/sim/common/acinclude.m4 @@ -851,11 +851,17 @@ AC_ARG_ENABLE(cgen-maint, yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + AC_MSG_ERROR(${enableval} doesn't look like a cgen source tree) + fi ;; esac])dnl dnl AM_CONDITIONAL(CGEN_MAINT, test x${cgen_maint} != xno) diff --git a/sim/cris/configure b/sim/cris/configure index 8ef9155d82..76f3c284e0 100755 --- a/sim/cris/configure +++ b/sim/cris/configure @@ -13912,11 +13912,17 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + as_fn_error $? "${enableval} doesn't look like a cgen source tree" "$LINENO" 5 + fi ;; esac fi diff --git a/sim/frv/configure b/sim/frv/configure index 934afd06ca..eeffc95c75 100755 --- a/sim/frv/configure +++ b/sim/frv/configure @@ -13681,11 +13681,17 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + as_fn_error $? "${enableval} doesn't look like a cgen source tree" "$LINENO" 5 + fi ;; esac fi diff --git a/sim/iq2000/configure b/sim/iq2000/configure index 9486ef4a3d..92ed9c8b39 100755 --- a/sim/iq2000/configure +++ b/sim/iq2000/configure @@ -13678,11 +13678,17 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + as_fn_error $? "${enableval} doesn't look like a cgen source tree" "$LINENO" 5 + fi ;; esac fi diff --git a/sim/lm32/configure b/sim/lm32/configure index 9624db3d83..748266d2e0 100755 --- a/sim/lm32/configure +++ b/sim/lm32/configure @@ -13678,11 +13678,17 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + as_fn_error $? "${enableval} doesn't look like a cgen source tree" "$LINENO" 5 + fi ;; esac fi diff --git a/sim/m32r/configure b/sim/m32r/configure index 43c25a621f..8ce674c0e1 100755 --- a/sim/m32r/configure +++ b/sim/m32r/configure @@ -13680,11 +13680,17 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + as_fn_error $? "${enableval} doesn't look like a cgen source tree" "$LINENO" 5 + fi ;; esac fi diff --git a/sim/or1k/configure b/sim/or1k/configure index 93aeb8f50d..1386585654 100755 --- a/sim/or1k/configure +++ b/sim/or1k/configure @@ -13788,11 +13788,17 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + as_fn_error $? "${enableval} doesn't look like a cgen source tree" "$LINENO" 5 + fi ;; esac fi diff --git a/sim/sh64/configure b/sim/sh64/configure index 17a483329f..b02f835518 100755 --- a/sim/sh64/configure +++ b/sim/sh64/configure @@ -13678,11 +13678,17 @@ if test "${enable_cgen_maint+set}" = set; then : yes) cgen_maint=yes ;; no) cgen_maint=no ;; *) - # argument is cgen install directory (not implemented yet). - # Having a `share' directory might be more appropriate for the .scm, - # .cpu, etc. files. - cgendir=${cgen_maint}/lib/cgen - cgen=guile + # Argument is a directory where cgen can be found. In some + # future world cgen could be installable, but right now this + # is not the case. Instead we assume the directory is a path + # to the cgen source tree. + cgen_maint=yes + if test -r ${enableval}/iformat.scm; then + # This looks like a cgen source tree. + cgendir=${enableval} + else + as_fn_error $? "${enableval} doesn't look like a cgen source tree" "$LINENO" 5 + fi ;; esac fi