3 ### Build and setup script
5 ### (c) 2013 Mark Wooding
8 ###----- Licensing notice ---------------------------------------------------
10 ### This file is part of Chopwood: a password-changing service.
12 ### Chopwood is free software; you can redistribute it and/or modify
13 ### it under the terms of the GNU Affero General Public License as
14 ### published by the Free Software Foundation; either version 3 of the
15 ### License, or (at your option) any later version.
17 ### Chopwood is distributed in the hope that it will be useful,
18 ### but WITHOUT ANY WARRANTY; without even the implied warranty of
19 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 ### GNU Affero General Public License for more details.
22 ### You should have received a copy of the GNU Affero General Public
23 ### License along with Chopwood; if not, see
24 ### <http://www.gnu.org/licenses/>.
26 ## Basic naming stuff.
28 VERSION = $(shell ./get-version)
30 ###--------------------------------------------------------------------------
31 ### The big list of source files.
33 ## The main source files.
44 SOURCES += httpauth.py
45 SOURCES += operation.py
48 SOURCES += subcommand.py
51 ## The command implementations.
52 SOURCES += cmd-admin.py
54 SOURCES += cmd-remote.py
55 SOURCES += cmd-user.py
57 ## Template HTML files.
58 SOURCES += about.fhtml
59 SOURCES += cookies.fhtml
60 SOURCES += error.fhtml
61 SOURCES += exception.fhtml
63 SOURCES += login.fhtml
64 SOURCES += operate.fhtml
65 SOURCES += wrapper.fhtml
67 ## Other static files.
71 ###--------------------------------------------------------------------------
79 ###--------------------------------------------------------------------------
80 ### The automatically-generated installation module.
82 TARGETS += auto.py auto-$(VERSION).py
84 auto-$(VERSION).py: Makefile get-version $(SOURCES) $(wildcard RELEASE)
85 { echo "### -*-python-*-"; \
86 echo "PACKAGE = '$(PACKAGE)'"; \
87 echo "VERSION = '$(VERSION)'"; \
88 echo "HOME = '$$(pwd)'"; \
92 auto.py: auto-$(VERSION).py
93 rm -f auto.py.new && ln -s $^ auto.py.new && mv auto.py.new auto.py
94 for i in auto-*.py; do \
95 case $$i in auto-$(VERSION).py) ;; *) rm -f $$i ;; esac; \
98 ###--------------------------------------------------------------------------
99 ### Generate the static files.
101 TARGETS += static/stamp
103 static/stamp: $(SOURCES) auto.py
105 ./chpwd static static.new
106 touch static.new/stamp
107 rm -rf static && mv static.new static
109 clean::; rm -rf static
111 ###--------------------------------------------------------------------------
112 ### The standard rules.
116 CLEANFILES += $(TARGETS)
117 clean::; rm -f $(CLEANFILES)
120 ###----- That's all, folks --------------------------------------------------