]> git.eshelyaron.com Git - emacs.git/commitdiff
Add system-configuration in the compilation output path
authorAndreaCorallo <akrl@sdf.org>
Thu, 6 Feb 2020 20:23:14 +0000 (20:23 +0000)
committerAndreaCorallo <akrl@sdf.org>
Thu, 6 Feb 2020 20:23:14 +0000 (20:23 +0000)
lisp/emacs-lisp/comp.el

index e14f350c2ee96525ca42287571319187df1db97c..c3e797b9b17d918b2d87e5308d1796a2f928fd91 100644 (file)
@@ -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\f\n" 1)
     (condition-case err
         (mapc (lambda (pass)