Reindent package.lisp.
[clon.git] / Makefile
blob798cedd4b3e27aebf7f40ed2846309fd6d87232f
1 ### Makefile --- Toplevel directory
3 ## Copyright (C) 2010, 2011 Didier Verna
5 ## Author: Didier Verna <didier@lrde.epita.fr>
6 ## Maintainer: Didier Verna <didier@lrde.epita.fr>
8 ## This file is part of CLon
10 ## Permission to use, copy, modify, and distribute this software for any
11 ## purpose with or without fee is hereby granted, provided that the above
12 ## copyright notice and this permission notice appear in all copies.
14 ## THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
15 ## WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
16 ## MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
17 ## ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18 ## WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
19 ## ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
20 ## OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23 ### Commentary:
25 ## Contents management by FCM version 0.1.
27 ## Please use GNU Make with this makefile.
30 ### Code:
32 TOP_DIR := .
34 include Makefile.cnf
36 hack: all
38 include Makefile.inc
39 include version.inc
42 SUBDIRS := src sbcl clisp \
43 share doc \
44 demos
45 SYSTEMS_DIR := $(SHARE)/common-lisp/systems
47 DIST_NAME := $(PROJECT)-$(SHORT_VERSION)
48 TARBALL := $(DIST_NAME).tar.gz
49 SIGNATURE := $(TARBALL).asc
51 install-system:
52 ln -fs "`pwd`/$(ASDF_FILE)" "$(SYSTEMS_DIR)/"
54 all-formats dvi ps ref all-formats-ref dvi-ref ps-ref:
55 cd doc && $(MAKE) $@
57 # Needed because we have an INSTALL file which fucks up the gen mechanism
58 # (remember that Mac OSX is case-insensitive).
59 install:
60 $(MAKE) gen TARGET=install
62 uninstall:
63 -rm -f "$(SYSTEMS_DIR)/$(ASDF_FILE)"
64 $(MAKE) gen TARGET=uninstall
66 clean:
67 -rm *~
68 $(MAKE) gen TARGET=clean
70 # #### NOTE: be sure to propagate to the subdirs first, otherwise, version.inc
71 # will keep on being reconstructed.
72 distclean: clean
73 $(MAKE) gen TARGET=distclean
74 -rm *.tar.gz *.tar.gz.asc
75 -rm -fr version.inc
76 -rm -fr $($(LISP)_BINLOC)-*
77 -rm -fr "${HOME}"/.cache/common-lisp/$($(LISP)_CACHE)-*"`pwd`"
79 tag:
80 git tag -a -m 'Version $(LONG_VERSION)' 'version-$(SHORT_VERSION)'
82 tar: $(TARBALL)
83 gpg: $(SIGNATURE)
84 dist: tar gpg
86 install-www: dist
87 -install -m 644 $(TARBALL) "$(W3DIR)/attic/"
88 -install -m 644 $(SIGNATURE) "$(W3DIR)/attic/"
89 echo "\
90 <? lref (\"$(PROJECT)/attic/$(PROJECT)-$(SHORT_VERSION).tar.gz\", \
91 contents (\"Dernière version\", \"Latest version\")); ?> \
92 | \
93 <? lref (\"$(PROJECT)/attic/$(PROJECT)-$(SHORT_VERSION).tar.gz.asc\", \
94 contents (\"Signature GPG\", \"GPG Signature\")); ?>" \
95 > "$(W3DIR)/latest.txt"
96 chmod 644 "$(W3DIR)/latest.txt"
97 git push --tags "$(W3DIR)/$(PROJECT).git" :
98 $(MAKE) gen TARGET=install-www
99 cd "$(W3DIR)" \
100 && ln -fs attic/$(TARBALL) latest.tar.gz \
101 && ln -fs attic/$(SIGNATURE) latest.tar.gz.asc
103 update-version:
104 cd doc && $(MAKE) $@
106 gen:
107 @for i in $(SUBDIRS) ; do \
108 echo "making $(TARGET) in $${i} ..." ; \
109 ( cd $${i} && $(MAKE) $(TARGET) ) ; \
110 done
112 $(TARBALL):
113 git archive --format=tar --prefix=$(DIST_NAME)/ \
114 --worktree-attributes HEAD \
115 | gzip -c > $@
117 $(SIGNATURE): $(TARBALL)
118 gpg -b -a $<
120 .DEFAULT:
121 $(MAKE) gen TARGET=$@
123 .PHONY: hack \
124 all-formats dvi ps ref all-formats-ref dvi-ref ps-ref \
125 install-system install install-ref uninstall \
126 clean distclean \
127 tag tar gpg dist install-www \
128 update-version \
132 ### Makefile ends here