From 2dae7e1b697fef389e8e193d60ef799e2b3b09b4 Mon Sep 17 00:00:00 2001 From: AndreaCorallo Date: Thu, 6 Feb 2020 20:23:14 +0000 Subject: [PATCH] Add system-configuration in the compilation output path --- lisp/emacs-lisp/comp.el | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index e14f350c2ee..c3e797b9b17 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -2014,9 +2014,12 @@ Update all insn accordingly." (defun comp-compile-ctxt-to-file (name) "Compile as native code the current context naming it NAME. Prepare every function for final compilation and drive the C back-end." - (comp-finalize-relocs) - (unless comp-dry-run - (comp--compile-ctxt-to-file name))) + (let ((dir (file-name-directory name))) + (comp-finalize-relocs) + (unless (file-exists-p dir) + (make-directory dir)) + (unless comp-dry-run + (comp--compile-ctxt-to-file name)))) (defun comp-final (_) "Final pass driving the C back-end for code emission." @@ -2118,9 +2121,17 @@ Return the compilation unit file name." (let ((data input) (comp-native-compiling t) (comp-ctxt (make-comp-ctxt - :output (if (symbolp input) - (make-temp-file (concat (symbol-name input) "-")) - (file-name-sans-extension (expand-file-name input)))))) + :output + (if (symbolp input) + (make-temp-file (concat (symbol-name input) "-")) + (let ((exp-file (expand-file-name input))) + (concat + (file-name-as-directory + (concat + (file-name-directory exp-file) + system-configuration)) + (file-name-sans-extension + (file-name-nondirectory exp-file)))))))) (comp-log "\n \n" 1) (condition-case err (mapc (lambda (pass) -- 2.39.5