Mercurial > web-octave
annotate Makefile @ 162:839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
author | Kai T. Ohlhus <k.ohlhus@gmail.com> |
---|---|
date | Tue, 29 Jan 2019 17:03:21 +0100 |
parents | d851f4f89fb4 |
children | 7a664b44fd8d |
rev | line source |
---|---|
120
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
1 USRNAME ?= $(shell bash -c 'read -p \ |
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
2 "The Octave Savannah CVS repository is checked out to the parent directory. Savannah login: " usr; \ |
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
3 echo $$usr') |
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
4 |
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
5 SAVANNAH_DIR := ../octave |
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
6 |
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
7 CVS_RSH=ssh |
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
8 |
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
9 export CVS_RSH |
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
10 |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
11 CHECK_GEM := $(shell command -v gem 2> /dev/null) |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
12 CHECK_JEKYLL := $(shell command -v jekyll 2> /dev/null) |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
13 CHECK_JEKYLL_VERSION = $(shell jekyll --version | grep ^jekyll | sed 's/^.* //g') |
120
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
14 |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
15 deploy: | $(SAVANNAH_DIR) check_prerequisites |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
16 # |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
17 # Build static website into the subdirectory `_site` using Jekyll |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
18 # |
120
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
19 jekyll build |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
20 # |
162
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
21 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv |
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
22 # DANGEROUS STEP, omitted by default. |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
23 # |
162
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
24 # Remove all previous files in the target directory, but no directories |
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
25 # at all or CVS related stuff. This is due to a limitation of CVS, see |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
26 # |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
27 # https://web.archive.org/web/20140629054602/http://ximbiot.com/cvs/manual/cvs-1.11.23/cvs_7.html#SEC69 |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
28 # |
162
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
29 # For some introduction to CVS, see |
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
30 # https://savannah.nongnu.org/projects/cvs |
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
31 # https://www.cs.umb.edu/~srevilak/cvs.html |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
32 # |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
33 # find $(SAVANNAH_DIR) -type f -not -path "*/CVS/*" -exec rm -f '{}' \; |
162
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
34 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
35 # |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
36 # Copy the content of that directory `_site` into the checked out |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
37 # Savannah CVS (see make target $(SAVANNAH_DIR)). |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
38 # |
120
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
39 cp -a _site/. $(SAVANNAH_DIR) |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
40 # |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
41 # Add all potential new directories to CVS |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
42 # |
162
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
43 cd $(SAVANNAH_DIR) \ |
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
44 && find . -type d -not -name "CVS" -exec cvs add '{}' \; \ |
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
45 | true # succeed in any case |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
46 # |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
47 # Add all potential new files to CVS (the following command taken from |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
48 # http://stackoverflow.com/questions/5071/how-to-add-cvs-directories-recursively |
162
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
49 # proved to be fast) and succeed in any case. |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
50 # |
162
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
51 cd $(SAVANNAH_DIR) && find . -type f | grep -v CVS | xargs cvs add | true |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
52 # |
162
839113398e6f
Makefile: Make rules to succeed in any case and small improvements.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
126
diff
changeset
|
53 # Commit the changes to get online. |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
54 # |
120
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
55 cd $(SAVANNAH_DIR) && cvs commit |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
56 # |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
57 # Now everything should be visible to the world. |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
58 # |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
59 |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
60 check_prerequisites: |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
61 ifndef CHECK_GEM |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
62 $(error "Command `gem` is not available please install rubygems") |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
63 endif |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
64 ifndef CHECK_JEKYLL |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
65 $(error "Command `jekyll` is not available. ${CHECK_JEKYLL_VERSION} Try `gem install jekyll`") |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
66 endif |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
67 ifneq "3.3" "$(word 1, $(sort 3.3 $(CHECK_JEKYLL_VERSION)))" |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
68 $(error "Detected Jekyll version ${CHECK_JEKYLL_VERSION} (>= 3.3 required).") |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
69 endif |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
70 @echo "All prerequisites fulfilled." |
120
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
71 |
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
72 $(SAVANNAH_DIR): |
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
73 cd .. \ |
bfdbe4eb3128
* Makefile: automating deployment.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
diff
changeset
|
74 && cvs -z3 -d:ext:$(USRNAME)@cvs.savannah.gnu.org:/web/octave checkout -P octave |
126
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
75 |
d851f4f89fb4
Improve Makefile deployment mechanism.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
120
diff
changeset
|
76 .DEFAULT_GOAL := |