sim: options: add --version support
[deliverable/binutils-gdb.git] / sim / common / sim-options.c
index 814edcf5f22a32a6f3f47c650e271b65721dfa05..f8231430441867e896b114e2d62b558f9fe03647 100644 (file)
@@ -33,6 +33,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "sim-options.h"
 #include "sim-io.h"
 #include "sim-assert.h"
+#include "version.h"
 
 #include "bfd.h"
 
@@ -105,6 +106,7 @@ typedef enum {
   OPTION_MEM_SIZE,
 #endif
   OPTION_HELP,
+  OPTION_VERSION,
 #ifdef SIM_H8300 /* FIXME: Should be movable to h8300 dir.  */
   OPTION_H8300H,
   OPTION_H8300S,
@@ -173,6 +175,9 @@ static const OPTION standard_options[] =
   { {"help", no_argument, NULL, OPTION_HELP},
       'H', NULL, "Print help information",
       standard_option_handler },
+  { {"version", no_argument, NULL, OPTION_VERSION},
+      '\0', NULL, "Print version information",
+      standard_option_handler },
 
   { {"architecture", required_argument, NULL, OPTION_ARCHITECTURE},
       '\0', "MACHINE", "Specify the architecture to use",
@@ -455,6 +460,12 @@ standard_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt,
       /* FIXME: 'twould be nice to do something similar if gdb.  */
       break;
 
+    case OPTION_VERSION:
+      sim_io_printf (sd, "GNU simulator %s%s\n", PKGVERSION, version);
+      if (STATE_OPEN_KIND (sd) == SIM_OPEN_STANDALONE)
+       exit (0);
+      break;
+
     case OPTION_SYSROOT:
       /* Don't leak memory in the odd event that there's lots of
         --sysroot=... options.  We treat "" specially since this
This page took 0.023129 seconds and 4 git commands to generate.