]> code.delx.au - gnu-emacs-elpa/blob - Makefile
Add site/ to .bzrignore.
[gnu-emacs-elpa] / Makefile
1 # Makefile for GNU Emacs Lisp Package Archive.
2
3 EMACS=emacs
4
5 ARCHIVE_TMP=archive-tmp
6 SITE_DIR=site
7
8 .PHONY: archive-tmp process-archive archive-full org-fetch clean all
9
10 ## Set up the source files for direct usage, by pointing
11 ## `package-directory-list' to the site/ directory.
12 site: packages
13 mkdir -p $(SITE_DIR)
14 $(EMACS) -batch -l $(CURDIR)/admin/archive-contents.el \
15 --eval "(batch-make-site-dir \"packages\" \"$(SITE_DIR)\")"
16
17 ## Deploy the package archive to archive/, with packages in
18 ## archive/packages/:
19 archive: archive-tmp
20 $(MAKE) $(MFLAGS) process-archive
21
22 archive-tmp: packages
23 mkdir -p $(ARCHIVE_TMP)
24 cp -r packages $(ARCHIVE_TMP)
25
26 process-archive:
27 cd $(ARCHIVE_TMP)/packages; $(EMACS) -batch -l $(CURDIR)/admin/archive-contents.el -f batch-make-archive
28 @cd $(ARCHIVE_TMP)/packages; \
29 for pt in *; do \
30 if [ -d $$pt ]; then \
31 echo "Creating tarball $${pt}.tar" && \
32 tar -cf $${pt}.tar $$pt --remove-files; \
33 fi; \
34 done
35 mkdir -p archive/packages
36 mv archive/packages archive/packages-old
37 mv $(ARCHIVE_TMP)/packages archive/packages
38 chmod -R a+rX archive/packages
39 rm -rf archive/packages-old
40 rm -rf $(ARCHIVE_TMP)
41
42 ## Deploy the package archive to archive/ including the Org daily and
43 ## admin scripts:
44 archive-full: archive-tmp org-fetch
45 $(MAKE) $(MFLAGS) process-archive
46 mkdir -p archive/admin
47 cp admin/* archive/admin/
48
49 org-fetch: archive-tmp
50 cd archive-tmp/packages; \
51 pkgname=`curl -s http://orgmode.org/pkg/daily/|perl -ne 'push @f, $$1 if m/(org-\d{8})\.tar/; END { @f = sort @f; print "$$f[-1]\n"}'`; \
52 wget http://orgmode.org/pkg/daily/$${pkgname}.tar -O $${pkgname}.tar; \
53 if [ -f $${pkgname}.tar ]; then \
54 tar xf $${pkgname}.tar; \
55 rm -f $${pkgname}.tar; \
56 mv $${pkgname} org; \
57 fi
58
59 clean:
60 rm -rf archive $(ARCHIVE_TMP) $(SITE_DIR)
61
62 all: site