From a63b6f6eb86cd0b4675285489c886acee56d84e7 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 22 Oct 2012 17:56:43 -0400 Subject: [PATCH] * admin/archive-contents.el (batch-make-site-package): New function. * Makefile (site/%): Use it. --- Makefile | 6 +++++- admin/archive-contents.el | 15 +++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 77920f763..9523b7334 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ EMACS=emacs ARCHIVE_TMP=archive-tmp SITE_DIR=site -.PHONY: archive-tmp process-archive archive-full org-fetch clean all +.PHONY: archive-tmp process-archive archive-full org-fetch clean all do-it ## Set up the source files for direct usage, by pointing ## `package-directory-list' to the site/ directory. @@ -14,6 +14,10 @@ site: packages $(EMACS) -batch -l $(CURDIR)/admin/archive-contents.el \ --eval "(batch-make-site-dir \"packages\" \"$(SITE_DIR)\")" +site/%: do-it + $(EMACS) -batch -l $(CURDIR)/admin/archive-contents.el \ + --eval "(progn (setq debug-on-error t) (batch-make-site-package \"$@\"))" + ## Deploy the package archive to archive/, with packages in ## archive/packages/: archive: archive-tmp diff --git a/admin/archive-contents.el b/admin/archive-contents.el index 92c592ea8..6c388a933 100644 --- a/admin/archive-contents.el +++ b/admin/archive-contents.el @@ -1,6 +1,6 @@ ;;; archive-contents.el --- Auto-generate an Emacs Lisp package archive. -;; Copyright (C) 2011 Free Software Foundation, Inc +;; Copyright (C) 2011, 2012 Free Software Foundation, Inc ;; Author: Stefan Monnier @@ -22,6 +22,7 @@ ;;; Code: (require 'lisp-mnt) +(require 'package) (defconst archive-contents-subdirectory-regexp "\\([^.].*?\\)-\\([0-9]+\\(?:[.][0-9]+\\|\\(?:pre\\|beta\\|alpha\\)[0-9]+\\)*\\)") @@ -187,7 +188,7 @@ PKG-readme.txt. Return the descriptor." (setq package-dir (expand-file-name package-dir default-directory)) (setq site-dir (expand-file-name site-dir default-directory)) (dolist (dir (directory-files package-dir t archive-re-no-dot)) - (condition-case v + (condition-case v (if (not (file-directory-p dir)) (error "Skipping non-package file %s" dir) (let* ((pkg (file-name-nondirectory dir)) @@ -218,6 +219,16 @@ PKG-readme.txt. Return the descriptor." ;; Error handler (error (message "%s" (cadr v)))))) +(defun batch-make-site-package (sdir) + (let* ((dest (car (file-attributes sdir))) + (pkg (file-name-nondirectory (directory-file-name (or dest sdir)))) + (dir (or dest sdir))) + (let ((make-backup-files nil)) + (package-generate-autoloads pkg dir)) + (let ((load-path (cons dir load-path))) + ;; FIXME: Don't compile the -pkg.el files! + (byte-recompile-directory dir 0)))) + (defun archive--write-pkg-file (pkg-dir name version desc requires &rest ignored) (let ((pkg-file (expand-file-name (concat name "-pkg.el") pkg-dir)) (print-level nil) -- 2.39.2