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