summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2012-10-22 17:56:43 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2012-10-22 17:56:43 -0400
commit15d09c61ebc9350704dc85d8689b5a451ad5e1ed (patch)
treee0624bf7886467f9f097359f00b1b2e34f6945c6
parentd0062251b0ddf9429ededd02ca2949efbe7e66f5 (diff)
downloademacs-15d09c61ebc9350704dc85d8689b5a451ad5e1ed.tar.gz
* admin/archive-contents.el (batch-make-site-package): New function.
* Makefile (site/%): Use it.
-rw-r--r--Makefile6
-rw-r--r--admin/archive-contents.el15
2 files changed, 18 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 77920f76365..9523b733481 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 92c592ea8a7..6c388a933a2 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 <monnier@iro.umontreal.ca>
@@ -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)