anchor.diff:    (sb-ext:assert-version->= 2 0 0)
     (require 'sb-bsd-sockets))
   
  -(defvar *prefix* (uiop:merge-pathnames* (if (uiop:getenv "PREFIX")
  -                                            (uiop:relativize-pathname-directory (uiop:getenv "PREFIX"))
  +(defvar *prefix* (merge-pathnames* (if (getenv "PREFIX")
  +                                            (relativize-pathname-directory (getenv "PREFIX"))
                                               #p"usr/local/")
  -                                        (if (uiop:getenv "DESTDIR")
  -                                            (uiop:ensure-directory-pathname (uiop:getenv "DESTDIR"))
  +                                        (if (getenv "DESTDIR")
  +                                            (ensure-directory-pathname (getenv "DESTDIR"))
                                               #p"/")))
  -(defvar *datadir* (if (uiop:getenv "DATADIR")
  -                      (uiop:ensure-directory-pathname (uiop:getenv "DATADIR"))
  -                      (uiop:merge-pathnames* "share/" *prefix*)))
  -(defvar *bindir* (if (uiop:getenv "BINDIR")
  -                     (uiop:ensure-directory-pathname (uiop:getenv "BINDIR"))
  -                     (uiop:merge-pathnames* "bin/" *prefix*)))
  -
  -(defvar *nyxt-renderer* (or (uiop:getenv "NYXT_RENDERER")
  +(defvar *datadir* (if (getenv "DATADIR")
  +                      (ensure-directory-pathname (getenv "DATADIR"))
  +                      (merge-pathnames* "share/" *prefix*)))
  +(defvar *bindir* (if (getenv "BINDIR")
  +                     (ensure-directory-pathname (getenv "BINDIR"))
  +                     (merge-pathnames* "bin/" *prefix*)))
  +
  +(defvar *nyxt-renderer* (or (getenv "NYXT_RENDERER")
                               "gi-gtk"))
   
  -(defvar *submodules-dir* (or (uiop:getenv "NYXT_SUBMODULES_DIR")
  +(defvar *submodules-dir* (or (getenv "NYXT_SUBMODULES_DIR")
                                "_build"))
   
  -(defvar *submodules-jobs* (or (uiop:getenv "NYXT_SUBMODULES_JOBS")
  +(defvar *submodules-jobs* (or (getenv "NYXT_SUBMODULES_JOBS")
                                 4)
     "Number of parallel 'git clone' jobs to fetch the Git submodules.
   A naive benchmark on a 16 Mpbs bandwidth gives us
  
positive.code:            (if (getenv "CL_SOURCE_REGISTRY")
                 (strcat (inter-directory-separator) (getenv "CL_SOURCE_REGISTRY"))
                 ;; End with an empty string to tell ASDF to inherit configuration.
                 (uiop:inter-directory-separator)))))
    (asdf:clear-configuration)
    (format t "; CL_SOURCE_REGISTRY: ~s~%" (uiop:getenv "CL_SOURCE_REGISTRY")))
  
  (defsystem "nyxt/submodules"
    :perform (compile-op (o c)
                         (uiop:run-program `("git"
                                             "-C" ,(namestring (system-relative-pathname c ""))
                                             "submodule" "update" "--init" "--force"
                                             "--jobs" ,(write-to-string *submodules-jobs*))
                                           :ignore-error-status t
                                           :output t)
                         (register-submodules c)))
  
  (defun nyxt-run-test (c path &key network-needed-p)
    (and (or (not network-needed-p)
             (not (uiop:getenv "NYXT_TESTS_NO_NETWORK")))
         (not (funcall (read-from-string "prove:run")
                       (system-relative-pathname c path)))
         (uiop:getenv "NYXT_TESTS_ERROR_ON_FAIL")
         (uiop:quit 18)))
  
  ;; TODO: Test that Nyxt starts and that --help, --version work.
  (defsystem "nyxt/tests"
  
negative.code:   ;; We must set this globally because the information would be lost within a
    ;; Lisp compiler subprocess (e.g. as used by linux-packaging).
    (flet ((ensure-absolute-path (path component)
             (if (absolute-pathname-p path)
                 path
                 (system-relative-pathname component path))))
      (setf (getenv "CL_SOURCE_REGISTRY")
  