build: Install and installed-run fixes.
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 26 Jul 2017 13:42:44 +0000 (15:42 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 26 Jul 2017 13:57:38 +0000 (15:57 +0200)
* guile/mescc.scm (%datadir,%docdir,%moduledir,%version): Remove.
* scripts/mescc.mes: Likewise.
* module/language/c99/compiler.mes: Likewise.
 (%prefix): Prefer environment setting.
 (c99-input->full-ast): Remove unnecessary includes.
 Remove unnecessary defines.
* make.scm (%scm-files): Add mes/guile.scm.
 (src/mes.gcc, src/mes.mlibc-gcc, src/mes.guile):  Update  MODULEDIR,
 add -I src.
* src/mes.c (load_env): Use temporary variable for MODULEDIR concatenation.
  (bload_env): Likewise.

guile/mescc.scm
make.scm
module/language/c99/compiler.mes
scripts/mescc.mes
src/mes.c

index 5981509dda76373d92976442f71e6ac9fde61d88..899474587f1452ea36857c6d0d3f6b8d015ba6c4 100755 (executable)
@@ -45,16 +45,8 @@ GUILE='~/src/guile-1.8/build/pre-inst-guile --debug -q' guile/mescc.scm
   #:use-module (srfi srfi-26)
   #:export (main))
 
-(define %prefix (if (string-prefix? "@PREFIX" "@PREFIX@") "" "@PREFIX@"))
-(define %datadir (if (string-prefix? "@DATADIR" "@DATADIR@") "" "@DATADIR@"))
-(define %docdir (if (string-prefix? "@DOCDIR" "@DOCDIR@") "doc/" "@DOCDIR@"))
-(define %moduledir "module/")
-(define %version (if (string-prefix? "@VERSION" "@VERSION@") "git" "@VERSION@"))
-(module-define! (resolve-module '(language c99 compiler)) '%datadir %datadir)
-(module-define! (resolve-module '(language c99 compiler)) '%docdir %docdir)
-(module-define! (resolve-module '(language c99 compiler)) '%moduledir %moduledir)
+(define %prefix (if (string-prefix? "@PREFIX" "@PREFIX@") (or (getenv "PREFIX") "") "@PREFIX@"))
 (module-define! (resolve-module '(language c99 compiler)) '%prefix %prefix)
-(module-define! (resolve-module '(language c99 compiler)) '%version %version)
 
 (define (parse-opts args)
   (let* ((option-spec
index d04f2be8d55ec2affcd5b3314a983a5f8c208b43..c13e64eb4870310b3025dbc29d4d1e769a3c83ca 100755 (executable)
--- a/make.scm
+++ b/make.scm
@@ -19,6 +19,7 @@ exec ${GUILE-guile} --no-auto-compile -L . -L guile -C . -C guile -s "$0" ${1+"$
     "mes/as.scm"
     "mes/bytevectors.scm"
     "mes/elf.scm"
+    "mes/guile.scm"
     "mes/M1.scm"))
 (define %go-files (map (compose (cut string-append <> ".go") (cut string-drop-right <> 4)) %scm-files))
 (setenv "srcdir" ".")
@@ -300,23 +301,26 @@ exec ${GUILE-guile} --no-auto-compile -L . -L guile -C . -C guile -s "$0" ${1+"$
                                  "MES_FULL=1"
                                  "POSIX=1"
                                  ,(string-append "VERSION=\"" %version "\"")
-                                 ,(string-append "MODULEDIR=\"" (string-append %moduledir "/") "\"")
-                                 ,(string-append "PREFIX=\"" %prefix "\""))))
+                                 ,(string-append "MODULEDIR=\"" (string-append %prefix (if (string-null? %prefix) "" "/") %moduledir "/") "\"")
+                                 ,(string-append "PREFIX=\"" %prefix "\""))
+                     #:includes '("src")))
 
 (add-target (bin.gcc "src/mes.c" #:libc #f
                      #:dependencies mes-snarf-targets
                      #:defines `("FIXED_PRIMITIVES=1"
                                  "MES_FULL=1"
                                  ,(string-append "VERSION=\"" %version "\"")
-                                 ,(string-append "MODULEDIR=\"" (string-append %moduledir "/") "\"")
-                                 ,(string-append "PREFIX=\"" %prefix "\""))))
+                                 ,(string-append "MODULEDIR=\"" (string-append %prefix (if (string-null? %prefix) "" "/") "/" %moduledir "/") "\"")
+                                 ,(string-append "PREFIX=\"" %prefix "\""))
+                     #:includes '("src")))
 
 (add-target (bin.mescc "src/mes.c" #:dependencies mes-snarf-targets
                        #:defines `("FIXED_PRIMITIVES=1"
                                    "MES_FULL=1"
-                                 ,(string-append "VERSION=\"" %version "\"")
-                                 ,(string-append "MODULEDIR=\"" (string-append %moduledir "/") "\"")
-                                 ,(string-append "PREFIX=\"" %prefix "\""))))
+                                   ,(string-append "VERSION=\"" %version "\"")
+                                   ,(string-append "MODULEDIR=\"" (string-append %prefix (if (string-null? %prefix) "" "/") %moduledir "/") "\"")
+                                   ,(string-append "PREFIX=\"" %prefix "\""))
+                       #:includes '("src")))
 
 (define mes-tests
   '("tests/read.test"
index 92d69cfdd5e6a60c531f79f752aa446ddcbc1d6d..ce602786da88d5e1132e02d15e6b8d2cbba5c416 100644 (file)
 (define (stderr string . rest)
   (apply logf (cons* (current-error-port) string rest)))
 
-(define %datadir (if (string-prefix? "@DATADIR" "@DATADIR@") "" "@DATADIR@"))
-(define %docdir (if (string-prefix? "@DOCDIR" "@DOCDIR@") "doc/" "@DOCDIR@"))
-(define %moduledir "module/")
-(define %prefix (if (string-prefix? "@PREFIX" "@PREFIX@") "" "@PREFIX@"))
-(define %version (if (string-prefix? "@VERSION" "@VERSION@") "git" "@VERSION@"))
+(define %prefix (if (string-prefix? "@PREFIX" "@PREFIX@") (or (getenv "PREFIX") "") "@PREFIX@"))
 
 (define mes? (pair? (current-module)))
 
 (define* (c99-input->full-ast #:key (defines '()) (includes '()))
   (let ((include (if (equal? %prefix "") "mlibc/include" (string-append %prefix "/share/mlibc/include"))))
     (parse-c99
-     #:inc-dirs (append includes (cons* "." "mlibc" "src" "out" "out/src" include (or (and=> (getenv "C_INCLUDE_PATH") (cut string-split <> #\:)) '())))
+     #:inc-dirs (append includes (cons* include "mlibc/include" "mlibc" (or (and=> (getenv "C_INCLUDE_PATH") (cut string-split <> #\:)) '())))
      #:cpp-defs `(
                   "POSIX=0"
                   "_POSIX_SOURCE=0"
                   "__MESC__=1"
-                  "EOF=-1"
-                  "STDIN=0"
-                  "STDOUT=1"
-                  "STDERR=2"
-                  
-                  "INT_MIN=-2147483648"
-                  "INT_MAX=2147483647"
-                  "NULL=0"
-                  
-                  "FIXED_PRIMITIVES=1"
-                  
                   ,(if mes? "__MESC_MES__=1" "__MESC_MES__=0")
-                  
-                  ,(string-append "DATADIR=\"" %datadir "\"")
-                  ,(string-append "DOCDIR=\"" %docdir "\"")
-                  ,(string-append "PREFIX=\"" %prefix "\"")
-                  ,(string-append "MODULEDIR=\"" %moduledir "\"")
-                  ,(string-append "VERSION=\"" %version "\"")
-                  ,@defines
-                  )
+                  ,@defines)
      #:mode 'code)))
 
 (define (ast-strip-comment o)
index 16df53390b96c731d484dd5db6ba6eca4a3c6c8a..542621e003eccdf4b8d7d1ca4e3093964adfa79f 100755 (executable)
@@ -49,11 +49,7 @@ exit $r
 
 (format (current-error-port) "mescc.mes...\n")
 
-(define %datadir (if (string-prefix? "@DATADIR" "@DATADIR@") "" "@DATADIR@"))
-(define %docdir (if (string-prefix? "@DOCDIR" "@DOCDIR@") "doc/" "@DOCDIR@"))
-(define %moduledir "module/")
-(define %prefix (if (string-prefix? "@PREFIX" "@PREFIX@") "" "@PREFIX@"))
-(define %version (if (string-prefix? "@VERSION" "@VERSION@") "git" "@VERSION@"))
+(define %prefix (if (string-prefix? "@PREFIX" "@PREFIX@") (or (getenv "PREFIX") "") "@PREFIX@"))
 
 (define (parse-opts args)
   (let* ((option-spec
index 1eb8a18720fdeb6857d190cceb24d4065de27fd0..f8fce51109ab5d7a1c5a8404fac5b640b6e45de7 100644 (file)
--- a/src/mes.c
+++ b/src/mes.c
@@ -1240,7 +1240,8 @@ load_env (SCM a) ///((internal))
 {
   r0 = a;
   g_stdin = open ("module/mes/read-0.mes", O_RDONLY);
-  g_stdin = g_stdin >= 0 ? g_stdin : open (MODULEDIR "mes/read-0.mes", O_RDONLY);
+  char *read0 = MODULEDIR "mes/read-0.mes";
+  g_stdin = g_stdin >= 0 ? g_stdin : open (read0, O_RDONLY);
   if (!g_function) r0 = mes_builtins (r0);
   r2 = read_input_file_env (r0);
   g_stdin = STDIN;
@@ -1253,7 +1254,8 @@ bload_env (SCM a) ///((internal))
 #if __MESC__
   char *mo = "mes/read-0-32.mo";
   g_stdin = open ("module/mes/read-0-32.mo", O_RDONLY);
-  g_stdin = g_stdin >= 0 ? g_stdin : open (MODULEDIR "mes/read-0-32.mo", O_RDONLY);
+  char *read0 = MODULEDIR "mes/read-0-32.mo";
+  g_stdin = g_stdin >= 0 ? g_stdin : open (read0, O_RDONLY);
 #else
   char *mo ="mes/read-0.mo";
   g_stdin = open ("module/mes/read-0.mo", O_RDONLY);