Add 'begin..end' alternative to parentheses
[hcoop/zz_old/domtool2-proto.git] / Makefile
CommitLineData
36f66a0c 1all: mlton bin/vmailpasswd
2
3bin/vmailpasswd: src/mail/vmailpasswd.c
4 $(CC) -lcrypt -o $@ $<
333d26a4 5
c342e144 6COMMON_DEPS := configDefault/config.sig configDefault/configDefault.sml \
5c9ea1a6 7 openssl/openssl_sml.so config.sml
8
9config.sml:
10 echo -e 'structure Config :> CONFIG = struct\nopen ConfigDefault\nend' > $@
c342e144 11
0cfb3669 12.PHONY: all mlton smlnj install
c342e144 13
e26d6b6e 14mlton: bin/domtool-server bin/domtool-client bin/domtool-slave \
c685120e 15 bin/domtool-admin bin/domtool-doc bin/dbtool bin/vmail \
62492205 16 bin/smtplog bin/setsa bin/mysql-fixperms
c342e144 17
18smlnj: $(COMMON_DEPS) openssl/smlnj/FFI/libssl.h.cm src/domtool.cm
333d26a4 19
20configDefault/config.sig: src/config.sig.header \
1f53f82b 21 configDefault/*.csg configDefault/*.cfs \
22 src/config.sig.footer
23 cat configDefault/*.csg \
24 src/config.sig.header \
333d26a4 25 configDefault/*.cfs \
26 src/config.sig.footer \
27 >configDefault/config.sig
28
29configDefault/configDefault.sml: src/configDefault.sml.header \
30 configDefault/*.cfg src/configDefault.sml.footer
31 cat src/configDefault.sml.header \
32 configDefault/*.cfg \
33 src/configDefault.sml.footer \
34 >configDefault/configDefault.sml
35
1f8889bd 36openssl/openssl_sml.o: openssl/openssl_sml.c
37 gcc -fPIC -c openssl/openssl_sml.c -o openssl/openssl_sml.o
38
39openssl/openssl_sml.so: openssl/openssl_sml.o
40 gcc -shared -Wl,-soname,openssl_sml.so \
41 -o openssl/openssl_sml.so \
42 openssl/openssl_sml.o -lssl
43
634d7082 44src/domtool.cm: src/prefix.cm src/sources
c342e144 45 cat src/prefix.cm src/sources >src/domtool.cm
46
037af74e 47MAKE_MLB_BASE := cat src/prefix.mlb src/sources src/suffix.mlb \
48 | sed 's/^\(.*\).grm$$/\1.grm.sig\n\1.grm.sml/' \
49 | sed 's/^\(.*\).lex$$/\1.lex.sml/'
50
634d7082 51src/domtool-server.mlb: src/prefix.mlb src/sources src/suffix.mlb
037af74e 52 $(MAKE_MLB_BASE) >src/domtool-server.mlb
c342e144 53 echo "main-server.sml" >>src/domtool-server.mlb
54
634d7082 55src/domtool-client.mlb: src/prefix.mlb src/sources src/suffix.mlb
037af74e 56 $(MAKE_MLB_BASE) >src/domtool-client.mlb
0cfb3669 57 echo "main-client.sml" >>src/domtool-client.mlb
58
634d7082 59src/domtool-slave.mlb: src/prefix.mlb src/sources src/suffix.mlb
037af74e 60 $(MAKE_MLB_BASE) >src/domtool-slave.mlb
a7bcd59c 61 echo "main-slave.sml" >>src/domtool-slave.mlb
62
634d7082 63src/domtool-admin.mlb: src/prefix.mlb src/sources src/suffix.mlb
e2130d9c 64 $(MAKE_MLB_BASE) >src/domtool-admin.mlb
65 echo "main-admin.sml" >>src/domtool-admin.mlb
66
634d7082 67src/domtool-doc.mlb: src/prefix.mlb src/sources src/suffix.mlb
e26d6b6e 68 $(MAKE_MLB_BASE) >src/domtool-doc.mlb
69 echo "main-doc.sml" >>src/domtool-doc.mlb
70
634d7082 71src/dbtool.mlb: src/prefix.mlb src/sources src/suffix.mlb
72 $(MAKE_MLB_BASE) >src/dbtool.mlb
73 echo "main-dbtool.sml" >>src/dbtool.mlb
74
c45f1662 75src/vmail.mlb: src/prefix.mlb src/sources src/suffix.mlb
76 $(MAKE_MLB_BASE) >src/vmail.mlb
77 echo "main-vmail.sml" >>src/vmail.mlb
78
bb8cc8c9 79src/setsa.mlb: src/prefix.mlb src/sources src/suffix.mlb
80 $(MAKE_MLB_BASE) >src/setsa.mlb
81 echo "main-setsa.sml" >>src/setsa.mlb
82
c685120e 83src/smtplog.mlb: src/prefix.mlb src/sources src/suffix.mlb
84 $(MAKE_MLB_BASE) >src/smtplog.mlb
85 echo "main-smtplog.sml" >>src/smtplog.mlb
86
62492205 87src/mysql-fixperms.mlb: src/prefix.mlb src/sources src/suffix.mlb
88 $(MAKE_MLB_BASE) >src/mysql-fixperms.mlb
89 echo "main-mysql-fixperms.sml" >>src/mysql-fixperms.mlb
90
1f8889bd 91openssl/smlnj/FFI/libssl.h.cm: openssl/openssl_sml.h
92 cd openssl/smlnj ; ml-nlffigen -d FFI -lh LibsslH.libh -include ../libssl-h.sml \
93 -cm libssl.h.cm -D__builtin_va_list="void*" \
94 ../openssl_sml.h
c342e144 95
96openssl/mlton/FFI/libssl.h.mlb: openssl/openssl_sml.h
97 cd openssl/mlton ; mlnlffigen -dir FFI -libhandle LibsslH.libh -include ../libssl-h.sml \
98 -mlbfile libssl.h.mlb -cppopt -D__builtin_va_list="void*" \
99 ../openssl_sml.h
100
101%.lex.sml: %.lex
514b7936 102 mllex $<
c342e144 103
104%.grm.sig %.grm.sml: %.grm
514b7936 105 mlyacc $<
c342e144 106
037af74e 107COMMON_MLTON_DEPS := openssl/mlton/FFI/libssl.h.mlb \
108 src/domtool.lex.sml \
109 src/domtool.grm.sig src/domtool.grm.sml \
110 $(COMMON_DEPS) src/*.sig src/*.sml \
87af74d0 111 src/plugins/*.sig src/plugins/*.sml \
112 src/mail/*.sig src/mail/*.sml
037af74e 113
97d03e40 114MLTON := mlton -link-opt -ldl
115
116ifdef DEBUG
117 MLTON += -const 'Exn.keepHistory true'
118endif
119
037af74e 120bin/domtool-server: $(COMMON_MLTON_DEPS) src/domtool-server.mlb
97d03e40 121 $(MLTON) -output bin/domtool-server src/domtool-server.mlb
0cfb3669 122
037af74e 123bin/domtool-client: $(COMMON_MLTON_DEPS) src/domtool-client.mlb
97d03e40 124 $(MLTON) -output bin/domtool-client src/domtool-client.mlb
0cfb3669 125
037af74e 126bin/domtool-slave: $(COMMON_MLTON_DEPS) src/domtool-slave.mlb
97d03e40 127 $(MLTON) -output bin/domtool-slave src/domtool-slave.mlb
a7bcd59c 128
e2130d9c 129bin/domtool-admin: $(COMMON_MLTON_DEPS) src/domtool-admin.mlb
97d03e40 130 $(MLTON) -output bin/domtool-admin src/domtool-admin.mlb
e2130d9c 131
e26d6b6e 132bin/domtool-doc: $(COMMON_MLTON_DEPS) src/domtool-doc.mlb
97d03e40 133 $(MLTON) -output bin/domtool-doc src/domtool-doc.mlb
e26d6b6e 134
634d7082 135bin/dbtool: $(COMMON_MLTON_DEPS) src/dbtool.mlb
97d03e40 136 $(MLTON) -output bin/dbtool src/dbtool.mlb
634d7082 137
c45f1662 138bin/vmail: $(COMMON_MLTON_DEPS) src/vmail.mlb
97d03e40 139 $(MLTON) -output bin/vmail src/vmail.mlb
c45f1662 140
bb8cc8c9 141bin/setsa: $(COMMON_MLTON_DEPS) src/setsa.mlb
0a742954 142 $(MLTON) -output bin/setsa src/setsa.mlb
bb8cc8c9 143
c685120e 144bin/smtplog: $(COMMON_MLTON_DEPS) src/smtplog.mlb
97d03e40 145 $(MLTON) -output bin/smtplog src/smtplog.mlb
c685120e 146
62492205 147bin/mysql-fixperms: $(COMMON_MLTON_DEPS) src/mysql-fixperms.mlb
148 $(MLTON) -output bin/mysql-fixperms src/mysql-fixperms.mlb
149
0cfb3669 150install:
c5ae7537 151 cp scripts/domtool-publish /usr/local/sbin/
6731761e 152 cp scripts/domtool-reset-global /usr/local/sbin/
153 cp scripts/domtool-reset-local /usr/local/sbin/
a82d7967 154 cp scripts/domtool-adduser /usr/local/bin/
155 cp scripts/domtool-addcert /usr/local/bin/
b247eba3 156 cp scripts/domtool-addcert-daemon /usr/local/bin/
a82d7967 157 cp scripts/domtool-addacl /usr/local/bin/
158 cp scripts/domtool-rmuser /usr/local/bin/
93176f2b 159 cp scripts/domtool-admin-sudo /usr/local/bin/
160 cp scripts/domtool-server-logged /usr/local/bin/
aef9c54f 161 cp scripts/domtool-slave-logged /usr/local/bin/
162 cp scripts/domtool-server /etc/init.d/
163 cp scripts/domtool-slave /etc/init.d/
c5ae7537 164 cp openssl/openssl_sml.so /usr/local/lib/
091a3b81 165 -cp bin/domtool-server /usr/local/sbin/
166 -cp bin/domtool-slave /usr/local/sbin/
167 -cp bin/domtool-client /usr/local/bin/domtool
168 -cp bin/domtool-admin /usr/local/bin/
169 -cp bin/domtool-doc /usr/local/bin/
634d7082 170 -cp bin/dbtool /usr/local/bin/
c45f1662 171 -cp bin/vmail /usr/local/bin/
bb8cc8c9 172 -cp bin/setsa /usr/local/bin/
c685120e 173 -cp bin/smtplog /usr/local/bin/
62492205 174 -cp bin/mysql-fixperms /usr/local/bin/
36f66a0c 175 -cp bin/vmailpasswd /usr/local/bin/
634d7082 176 cp src/plugins/domtool-postgres /usr/local/sbin/
d2583946 177 cp src/plugins/domtool-mysql /usr/local/sbin/
ae175ff1 178
59815d99 179.PHONY: grab_lib install_server install_slave
ae175ff1 180
181grab_lib:
3408676a 182 rsync -r --delete /afs/hcoop.net/common/etc/domtool/lib/* lib/
59815d99 183
184install_server:
185 sudo /etc/init.d/domtool-server stop
186 sudo make install
187 sudo /etc/init.d/domtool-server start
6f51302e 188
189install_slave:
190 sudo /etc/init.d/domtool-slave stop
191 sudo make install
192 sudo /etc/init.d/domtool-slave start