This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] sim/opcodes: Allow use of out of tree cgen source directory


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7fb45a689543be75809a0513900d82f5bd859338

commit 7fb45a689543be75809a0513900d82f5bd859338
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date:   Wed Oct 10 14:58:10 2018 +0100

    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.

Diff:
---
 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 753be9f..5588e4b 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,11 @@
 2018-12-06  Andrew Burgess  <andrew.burgess@embecosm.com>
 
+	* configure.ac (enable-cgen-maint): Support passing path to cgen
+	source tree.
+	* configure: Regenerate.
+
+2018-12-06  Andrew Burgess  <andrew.burgess@embecosm.com>
+
 	* disassembler.c (disassemble_init_for_target): Add RISC-V
 	initialisation.
 	* riscv-dis.c (riscv_symbol_is_valid): New function.
diff --git a/opcodes/configure b/opcodes/configure
index 389e551..eb74324 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 4c36983..7384684 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 8fdef08..efd1f88 100644
--- a/sim/ChangeLog
+++ b/sim/ChangeLog
@@ -1,3 +1,15 @@
+2018-12-06  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* 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  <shorne@gmail.com>
 
 	* or1k/cpu.h: Regenerate.
diff --git a/sim/common/acinclude.m4 b/sim/common/acinclude.m4
index abc15a9..71a8841 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 8ef9155..76f3c28 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 934afd0..eeffc95 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 9486ef4..92ed9c8 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 9624db3..748266d 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 43c25a6..8ce674c 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 93aeb8f..1386585 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 17a4833..b02f835 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]