-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
87 lines (64 loc) · 2.01 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
DBNAME:=SAMPLE
SCHEMANAME:=UTILS
VERSION:=0.2
ALL_EXT:=$(wildcard pcre/*.c) $(wildcard pcre/*.h)
ALL_TESTS:=$(wildcard tests/*.sql)
ALL_SQL:=$(filter-out install.sql uninstall.sql,$(wildcard *.sql))
ALL_FOO:=$(ALL_SQL:%.sql=%.foo)
install: install.sql
$(MAKE) -C pcre install
$(MAKE) -C unicode install
printf "CONNECT TO $(DBNAME);\nCREATE SCHEMA $(SCHEMANAME);\nCOMMIT;\n" | db2 +c +p -t || true
db2 -td! +c -s -vf $< || [ $$? -lt 4 ] && true
uninstall: uninstall.sql
db2 -td! +c +s -vf $< || true
printf "CONNECT TO $(DBNAME);\nDROP SCHEMA $(SCHEMANAME) RESTRICT;\nCOMMIT;\n" | db2 +c +p -t || true
$(MAKE) -C unicode uninstall
$(MAKE) -C pcre uninstall
doc:
$(MAKE) -C docs html
test:
$(MAKE) -C tests test DBNAME=$(DBNAME) SCHEMANAME=$(SCHEMANAME)
clean: $(SUBDIRS)
$(MAKE) -C docs clean
$(MAKE) -C pcre clean
$(MAKE) -C unicode clean
$(MAKE) -C tests clean
rm -f foo
rm -f *.foo
rm -f utils.sql
rm -f install.sql
rm -f uninstall.sql
rm -fr build/ dist/
utils.sql: utils.sqt Makefile
sed -e 's/%SCHEMANAME%/$(SCHEMANAME)/' $< > $@
%.foo: %.sql
cat $< >> foo
touch $@
install.sql: $(ALL_FOO)
echo "CONNECT TO $(DBNAME)!" > $@
echo "SET SCHEMA $(SCHEMANAME)!" >> $@
echo "SET PATH SYSTEM PATH, $(SCHEMANAME), USER!" >> $@
cat foo >> $@
echo "COMMIT!" >> $@
rm foo
rm -f *.foo
uninstall.sql: install.sql
echo "CONNECT TO $(DBNAME)!" > $@
echo "SET SCHEMA $(SCHEMANAME)!" >> $@
echo "SET PATH SYSTEM PATH, $(SCHEMANAME), USER!" >> $@
awk -f uninstall.awk $< | tac >> $@
echo "COMMIT!" >> $@
assert.foo: utils.foo sql.foo
date_time.foo: utils.foo assert.foo
export_load.foo: utils.foo sql.foo
exceptions.foo: utils.foo sql.foo auth.foo
evolve.foo: utils.foo sql.foo auth.foo
auth.foo: utils.foo sql.foo
drop_schema.foo: utils.foo sql.foo
merge.foo: utils.foo assert.foo sql.foo
history.foo: utils.foo sql.foo auth.foo date_time.foo assert.foo
corrections.foo: utils.foo sql.foo log.foo
toggle_triggers.foo: utils.foo sql.foo assert.foo
sql.foo: utils.foo
.PHONY: install uninstall doc clean test