mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
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:
parent
6809d9377b
commit
9437fd7399
3 changed files with 16 additions and 8 deletions
|
@ -221,7 +221,8 @@ GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go $(dist_noinst_DATA:%.scm=%.go)
|
||||||
nobase_dist_guilemodule_DATA = \
|
nobase_dist_guilemodule_DATA = \
|
||||||
$(MODULES) $(AUX_FILES) $(EXAMPLES) \
|
$(MODULES) $(AUX_FILES) $(EXAMPLES) \
|
||||||
$(MISC_DISTRO_FILES)
|
$(MISC_DISTRO_FILES)
|
||||||
nobase_nodist_guilemodule_DATA = $(GOBJECTS) guix/config.scm
|
nobase_nodist_guilemodule_DATA = guix/config.scm
|
||||||
|
nobase_nodist_guileobject_DATA = $(GOBJECTS)
|
||||||
|
|
||||||
# Do we need to provide our own non-broken (srfi srfi-37) module?
|
# Do we need to provide our own non-broken (srfi srfi-37) module?
|
||||||
if INSTALL_SRFI_37
|
if INSTALL_SRFI_37
|
||||||
|
@ -455,14 +456,14 @@ SUFFIXES = .go
|
||||||
# files. See
|
# files. See
|
||||||
# <http://lists.gnu.org/archive/html/guile-devel/2010-07/msg00125.html>
|
# <http://lists.gnu.org/archive/html/guile-devel/2010-07/msg00125.html>
|
||||||
# for details.
|
# for details.
|
||||||
guix_install_go_files = install-nobase_nodist_guilemoduleDATA
|
guix_install_go_files = install-nobase_nodist_guileobjectDATA
|
||||||
$(guix_install_go_files): install-nobase_dist_guilemoduleDATA
|
$(guix_install_go_files): install-nobase_dist_guilemoduleDATA
|
||||||
|
|
||||||
# The above trick doesn't work for 'config.go' because both 'config.scm' and
|
# The above trick doesn't work for 'config.go' because both 'config.scm' and
|
||||||
# 'config.go' are listed in $(nobase_nodist_guilemodule_DATA). Thus, give it
|
# 'config.go' are listed in $(nobase_nodist_guileobject_DATA). Thus, give it
|
||||||
# special treatment.
|
# special treatment.
|
||||||
install-data-hook: set-bootstrap-executable-permissions
|
install-data-hook: set-bootstrap-executable-permissions
|
||||||
touch "$(DESTDIR)$(guilemoduledir)/guix/config.go"
|
touch "$(DESTDIR)$(guileobjectdir)/guix/config.go"
|
||||||
|
|
||||||
|
|
||||||
SUBDIRS = po/guix po/packages
|
SUBDIRS = po/guix po/packages
|
||||||
|
|
|
@ -85,9 +85,11 @@ if test "x$GUILE_EFFECTIVE_VERSION" = "x2.0"; then
|
||||||
PKG_CHECK_MODULES([GUILE], [guile-2.0 >= 2.0.9])
|
PKG_CHECK_MODULES([GUILE], [guile-2.0 >= 2.0.9])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl Installation directory for .scm and .go files.
|
dnl Installation directories for .scm and .go files.
|
||||||
guilemoduledir="${datarootdir}/guile/site/$GUILE_EFFECTIVE_VERSION"
|
guilemoduledir="${datarootdir}/guile/site/$GUILE_EFFECTIVE_VERSION"
|
||||||
|
guileobjectdir="${libdir}/guile/$GUILE_EFFECTIVE_VERSION/site-ccache"
|
||||||
AC_SUBST([guilemoduledir])
|
AC_SUBST([guilemoduledir])
|
||||||
|
AC_SUBST([guileobjectdir])
|
||||||
|
|
||||||
dnl The GnuTLS bindings are necessary for substitutes over HTTPS and for 'guix
|
dnl The GnuTLS bindings are necessary for substitutes over HTTPS and for 'guix
|
||||||
dnl pull', among other things.
|
dnl pull', among other things.
|
||||||
|
|
|
@ -30,10 +30,12 @@
|
||||||
|
|
||||||
(define config-lookup
|
(define config-lookup
|
||||||
(let ((config '(("prefix" . "@prefix@")
|
(let ((config '(("prefix" . "@prefix@")
|
||||||
|
("exec_prefix" . "@exec_prefix@")
|
||||||
("datarootdir" . "@datarootdir@")
|
("datarootdir" . "@datarootdir@")
|
||||||
("guilemoduledir" . "@guilemoduledir@")
|
("guilemoduledir" . "@guilemoduledir@")
|
||||||
|
("guileobjectdir" . "@guileobjectdir@")
|
||||||
("localedir" . "@localedir@")))
|
("localedir" . "@localedir@")))
|
||||||
(var-ref-regexp (make-regexp "\\$\\{([a-z]+)\\}")))
|
(var-ref-regexp (make-regexp "\\$\\{([a-z_]+)\\}")))
|
||||||
(define (expand-var-ref match)
|
(define (expand-var-ref match)
|
||||||
(lookup (match:substring match 1)))
|
(lookup (match:substring match 1)))
|
||||||
(define (expand str)
|
(define (expand str)
|
||||||
|
@ -45,14 +47,17 @@
|
||||||
|
|
||||||
(define (maybe-augment-load-paths!)
|
(define (maybe-augment-load-paths!)
|
||||||
(unless (getenv "GUIX_UNINSTALLED")
|
(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-path)
|
||||||
(push! module-dir %load-compiled-path))
|
(push! object-dir %load-compiled-path))
|
||||||
(let ((updates-dir (and=> (or (getenv "XDG_CONFIG_HOME")
|
(let ((updates-dir (and=> (or (getenv "XDG_CONFIG_HOME")
|
||||||
(and=> (getenv "HOME")
|
(and=> (getenv "HOME")
|
||||||
(cut string-append <> "/.config")))
|
(cut string-append <> "/.config")))
|
||||||
(cut string-append <> "/guix/latest"))))
|
(cut string-append <> "/guix/latest"))))
|
||||||
(when (and updates-dir (file-exists? updates-dir))
|
(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-path)
|
||||||
(push! updates-dir %load-compiled-path)))))
|
(push! updates-dir %load-compiled-path)))))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue