build: Install .go files to $libdir/guile/X.Y.

* configure.ac: Define and substitute 'guileobjectdir'.
* Makefile.am (nobase_nodist_guilemodule_DATA): Remove $(GOBJECTS).
(nobase_nodist_guileobject_DATA): New variable.
(guix_install_go_files): Adjust accordingly.
(install-data-hook): Likewise.
* scripts/guix.in (config-lookup): Add 'exec_prefix' and
'guileobjectdir'.  Add '_' in VAR-REF-REGEXP.
(maybe-augment-load-paths!): Distinguish OBJECT-DIR from MODULE-DIR.
This commit is contained in:
Ludovic Courtès 2017-03-20 22:13:27 +01:00
parent 6809d9377b
commit 9437fd7399
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 16 additions and 8 deletions

View file

@ -30,10 +30,12 @@
(define config-lookup
(let ((config '(("prefix" . "@prefix@")
("exec_prefix" . "@exec_prefix@")
("datarootdir" . "@datarootdir@")
("guilemoduledir" . "@guilemoduledir@")
("guileobjectdir" . "@guileobjectdir@")
("localedir" . "@localedir@")))
(var-ref-regexp (make-regexp "\\$\\{([a-z]+)\\}")))
(var-ref-regexp (make-regexp "\\$\\{([a-z_]+)\\}")))
(define (expand-var-ref match)
(lookup (match:substring match 1)))
(define (expand str)
@ -45,14 +47,17 @@
(define (maybe-augment-load-paths!)
(unless (getenv "GUIX_UNINSTALLED")
(let ((module-dir (config-lookup "guilemoduledir")))
(let ((module-dir (config-lookup "guilemoduledir"))
(object-dir (config-lookup "guileobjectdir")))
(push! module-dir %load-path)
(push! module-dir %load-compiled-path))
(push! object-dir %load-compiled-path))
(let ((updates-dir (and=> (or (getenv "XDG_CONFIG_HOME")
(and=> (getenv "HOME")
(cut string-append <> "/.config")))
(cut string-append <> "/guix/latest"))))
(when (and updates-dir (file-exists? updates-dir))
;; XXX: Currently 'guix pull' puts both .scm and .go files in
;; UPDATES-DIR.
(push! updates-dir %load-path)
(push! updates-dir %load-compiled-path)))))