53fcf3276d3d68afe9de144aba18780375666f31
[course.git] / html / Makefile
1 HTML_FILES = $(shell echo *.shtml)
2 EMPTY_DIRS = doc source
3 DEEP_EMPYT_DIRS = doc/exam doc/hwk doc/lab doc/lec doc/rec
4 HTML_DIRS = shared php xml $(EMPTY_DIRS) $(DEEP_EMPTY_DIRS)
5 SOURCE_FILES = $(HTML_FILES) $(HTML_DIRS) README .htaccess
6 OTHER_FILES = Makefile
7 DIST_FILES = $(SOURCE_FILES) $(OTHER_FILES)
8 DIST_FILE = website_framework.tar.gz
9 DIST_DIR = html
10
11 clean : 
12         rm -rf $(DIST_FILE) $(DIST_DIR) install*
13
14 $(DIST_FILE) : $(DIST_FILES) $(EMPTY_DIRS)
15         mkdir $(DIST_DIR)
16         cp -rp $^ $(DIST_DIR)
17         tar -cozf $@ $(DIST_DIR)
18         rm -rf $(DIST_DIR)
19
20 install : install-html install-source
21
22 # Create a new directory for the installation
23 install-dir :
24         ssh $(INSTALL_USER)@$(INSTALL_HOST) mkdir $(INSTALL_DIR)
25         @date > $@
26
27 # Avoid the install-dir step, but allow installation to continue
28 install-override :
29         @date > install-dir
30
31 # The transform removes the preceeding DIST_DIR (e.g. `html/')
32 install-html : $(DIST_FILE) install-dir
33         cat $< | ssh $(INSTALL_USER)@$(INSTALL_HOST) \
34           tar --transform="s,$(DIST_DIR),.," -xzvC $(INSTALL_DIR)
35         ssh $(INSTALL_USER)@$(INSTALL_HOST) \
36           cd $(INSTALL_DIR) '&&' rm -rf $(OTHER_FILES) $(DIST_DIR)
37         @date > $@
38
39 install-source : $(DIST_FILE) install-html
40         scp -p $(DIST_FILE) $(INSTALL_USER)@$(INSTALL_HOST):$(SOURCE_DIR)
41         @date > $@
42
43 # Create empty directories if neccessary (Git doesn't track dirs)
44 $(EMPTY_DIRS) :
45         mkdir $@