mescc: Honor --includedir, --libdir.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 24 Nov 2019 10:14:14 +0000 (11:14 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sun, 24 Nov 2019 10:14:14 +0000 (11:14 +0100)
* guix/git/mes.scm (mes):
* module/mescc.scm (%includedir, %libdir): New variable.
(mescc:main): Add them to options.
* module/mescc/mescc.scm (mescc:preprocess, c->info): Add %includedir.
(arch-find): Use %libdir instead of
prefix-file.
(prefix-file): Remove.
* scripts/mescc.scm.in (%includedir, %libdir): Initialize from and set
in environment.

xx

* module/mescc/mescc.scm :

module/mescc.scm
module/mescc/mescc.scm
scripts/mescc.in
scripts/mescc.scm.in

index 707a85ebe4c95f08df1fdd56f60913cf6e5b5e0e..875514d635c2b775e15bfd48549e4ebdf4f27d2a 100644 (file)
@@ -38,6 +38,8 @@
 
 (define %host-arch (or (getenv "%arch") %arch))
 (define %prefix (getenv "%prefix"))
+(define %includedir (getenv "%includedir"))
+(define %libdir (getenv "%libdir"))
 (define %version (getenv "%version"))
 
 (when (and=> (getenv "V") (lambda (v) (and (= (string-length v) 1) (> (string->number v) 1))))
@@ -155,6 +157,8 @@ General help using GNU software: <http://gnu.org/gethelp/>
          (args (append-map unclump-single args))
          (options (parse-opts args))
          (options (acons 'prefix %prefix options))
+         (options (acons 'includedir %includedir options))
+         (options (acons 'libdir %libdir options))
          (arch (option-ref options 'arch %host-arch))
          (options (if arch (acons 'arch arch options) options))
          (dumpmachine? (option-ref options 'dumpmachine #f))
index 2660a452332cbc3e5a5fa0e48541ffcf31681360..a49c6afa4c5b7e5b021fda1bc4bc5666e6ecd05f 100644 (file)
@@ -53,6 +53,7 @@
          (dir (dirname input-file-name))
          (defines (reverse (filter-map (multi-opt 'define) options)))
          (includes (reverse (filter-map (multi-opt 'include) options)))
+         (includes (cons (option-ref options 'includedir #f) includes))
          (includes (cons dir includes))
          (prefix (option-ref options 'prefix ""))
          (machine (option-ref options 'machine "32"))
         ((.E? file-name) (E->info options file-name))))
 
 (define (c->info options file-name)
-  (let* ((defines (reverse (filter-map (multi-opt 'define) options)))
+  (let* ((dir (dirname file-name))
+         (defines (reverse (filter-map (multi-opt 'define) options)))
          (includes (reverse (filter-map (multi-opt 'include) options)))
-         (dir (dirname file-name))
+         (includes (cons (option-ref options 'includedir #f) includes))
          (includes (cons dir includes))
          (prefix (option-ref options 'prefix ""))
          (defines (cons (arch-get-define options) defines))
          (arch (string-append (arch-get options) "-mes"))
          (path (cons* "."
                       srcdir-lib
-                      (prefix-file options "lib")
+                      (option-ref options 'libdir "lib")
                       (filter-map (multi-opt 'library-dir) options)))
          (arch-file-name (string-append arch "/" file-name))
          (verbose? (count-opt options 'verbose)))
       (or file
           (error (format #f "mescc: file not found: ~s" arch-file-name))))))
 
-(define (prefix-file options file-name)
-  (let ((prefix (option-ref options 'prefix "")))
-    (define (prefix-file o)
-      (if (string-null? prefix) o (string-append prefix "/" o)))
-    (prefix-file file-name)))
-
 (define (assert-system* . args)
   (let ((status (apply system* args)))
     (when (not (zero? status))
index 504b3717a32d944c3f5e4304d41f24edf1f8af20..777d3dbdadb7d6bf0e97d7bb461c5c6ac19cbfdf 100644 (file)
@@ -38,7 +38,11 @@ GUILE_LOAD_PATH=@guile_site_dir@${GUILE_LOAD_PATH+:}${GUILE_LOAD_PATH}
 export GUILE_LOAD_PATH
 
 MES=${MES-@prefix@/bin/mes}
-bindir=${bindir-@bindir@/mes}
+bindir=${bindir-@bindir@}
+includedir=${includedir-@includedir@}
+export includedir
+libdir=${libdir-@libdir@}
+export libdir
 
 if [ ! -f $bindir/mescc.scm ]; then
    bindir=$(dirname $0)
index 456528428df85f7cbbbc91586c69d15da397b9be..c4719d225b28f191d65d6d0e3a895ee540ede26b 100644 (file)
  (guile
   (define %arch (car (string-split %host-type #\-)))))
 
-(setenv "%prefix" (or (getenv "MES_PREFIX")
+(define %prefix (or (getenv "MES_PREFIX")
                       (if (string-prefix? "@prefix" "@prefix@")
                           ""
                           "@prefix@")))
 
-(setenv "%version" (if (string-prefix? "@VERSION" "@VERSION@") "git"
-                       "@VERSION@"))
+(define %includedir (or (getenv "includedir")
+                        (string-append %prefix "/include")))
 
-(setenv "%arch" (if (string-prefix? "@mes_cpu" "@mes_cpu@") %arch
-                       "@mes_cpu@"))
+(define %libdir (or (getenv "libdir")
+                    (string-append %prefix "/lib")))
+
+(define %version (if (string-prefix? "@VERSION" "@VERSION@") "git"
+                     "@VERSION@"))
+
+(define %arch (if (string-prefix? "@mes_cpu" "@mes_cpu@") %arch
+                  "@mes_cpu@"))
+
+(setenv "%prefix" %prefix)
+(setenv "%includedir" %includedir)
+(setenv "%libdir" %libdir)
+(setenv "%version" %version)
+(setenv "%arch" %arch)
 
 (cond-expand
  (mes