Remove hardcoded duplication of version.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 25 Dec 2016 14:38:26 +0000 (15:38 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sun, 25 Dec 2016 14:38:26 +0000 (15:38 +0100)
* GNUmakefile (CPPFLAGS): Include VERSION.
* mes.c (main): Use it.  Add --dump and --load to --help.
  (scm_symbol_mes_prefix, scm_symbol_mes_version): New sybols.
  (mes_symbols): Use them to set prefix and version.
* module/mes/base-0.mes (effective-version): Use %version.
* module/mes/repl.mes (welcome): Likewise.

GNUmakefile
mes.c
module/mes/base-0.mes
module/mes/repl.mes

index 12a5dca6030d47b86bc608d499ef31d636b9f546..990e81e9b8b44506aa48e46e1d1bb05ba4e5447d 100644 (file)
@@ -16,6 +16,7 @@ include .config.make
 include make/install.make
 
 CPPFLAGS+=-DPREFIX='"$(PREFIX)"'
+CPPFLAGS+=-DVERSION='"$(VERSION)"'
 
 export BOOT
 ifneq ($(BOOT),)
diff --git a/mes.c b/mes.c
index d61a8b59aed7082a8391bbb40ea0ab9a3f6a064f..817e947a0c3f039b01e1fd5f65c3a2aa2c4dbd4e 100644 (file)
--- a/mes.c
+++ b/mes.c
@@ -104,6 +104,9 @@ scm scm_symbol_read_input_file = {SYMBOL, "read-input-file"};
 scm scm_symbol_write = {SYMBOL, "write"};
 scm scm_symbol_display = {SYMBOL, "display"};
 
+scm scm_symbol_mes_version = {SYMBOL, "%version"};
+scm scm_symbol_mes_prefix = {SYMBOL, "%prefix"};
+
 scm scm_symbol_car = {SYMBOL, "car"};
 scm scm_symbol_cdr = {SYMBOL, "cdr"};
 scm scm_symbol_null_p = {SYMBOL, "null?"};
@@ -951,6 +954,9 @@ mes_symbols () ///((internal))
 
 #include "mes.symbol-names.i"
 
+  a = acons (cell_symbol_mes_version, MAKE_STRING (cstring_to_list (VERSION)), a);
+  a = acons (cell_symbol_mes_prefix, MAKE_STRING (cstring_to_list (PREFIX)), a);
+
 #if BOOT
   a = acons (cell_symbol_label, cell_t, a);
 #endif
@@ -1025,8 +1031,8 @@ main (int argc, char *argv[])
 {
   g_debug = getenv ("MES_DEBUG");
   if (getenv ("MES_ARENA")) ARENA_SIZE = atoi (getenv ("MES_ARENA"));
-  if (argc > 1 && !strcmp (argv[1], "--help")) return puts ("Usage: mes < FILE\n");
-  if (argc > 1 && !strcmp (argv[1], "--version")) return puts ("Mes 0.3\n");
+  if (argc > 1 && !strcmp (argv[1], "--help")) return puts ("Usage: mes [--dump|--load] < FILE");
+  if (argc > 1 && !strcmp (argv[1], "--version")) return puts ("Mes " VERSION);
   g_stdin = stdin;
   r0 = mes_environment ();
   SCM program = (argc > 1 && !strcmp (argv[1], "--load"))
index 609559fe2e0d52613ba1a5709f1c27c46fe4271f..002857e6c754cfc15d0ae22e24f9e4a88c98c662 100644 (file)
@@ -26,7 +26,7 @@
 
 ;;; Code:
 
-(define (effective-version) "0.3")
+(define (effective-version) %version)
 (define mes? #t)
 (define guile? #f)
 (define guile-1.8? #f)
index d071a2b06b68e34d976fc432700328b86ff7a45a..db87ee8f5d40936e0aa5251c608fdc9c20e15d05 100644 (file)
@@ -27,7 +27,7 @@
 (mes-use-module (mes scm))
 
 (define welcome
-  "Mes 0.3
+  (string-append "Mes " %version "
 Copyright (C) 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 
 Mes comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
@@ -35,7 +35,7 @@ This program is free software, and you are welcome to redistribute it
 under certain conditions; type `,show c' for details.
 
 Enter `,help' for help.
-")
+"))
 
 (define warranty
 "Mes is distributed WITHOUT ANY WARRANTY.  The following