summaryrefslogtreecommitdiff
path: root/tools/makefile
blob: 6594ca818432ad4a0b0b3ca7a047f8224b7aae58 (plain)
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
CC= /usr/bin/g++ -Wall -g -I $(HOME)/lib/include


#?? exhibits = checkpassword.patch hi-q.c pido.c pop3.conf smtp.conf  \
#??    smtp.rules spamc-zap.patch spamd qmail


.PHONY : shipit clean list-src ALWAYS foo dirs setup imgs	\
	zip wc html all hacha hevea tcprules logmark

.SECONDARY : # do not remove any intermediate files

# sources for main programs that go in /var/qmail/bin
qmain = pido.c hi-q.c skrewt.c hi-test.c mail-scan.c greylist.c wripper.c
qprogs = $(qmain:%.c=%)

# sources for other main programs:
moremain = wripper.c bash-c.c ltgrey.c
moreprogs = $(moremain:%.c=%)

nonmain = libltgrey.c

sources = $(qmain) $(moremain) $(nonmain)

beware_other = checkpassword.c spamc.c

## dependency-finding scheme (with local mods) based on:
## http://www.gnu.org/manual/make-3.77/html_mono/make.html#SEC42
## (see also include statement at end of this makefile)
%.d : %.c
	@$(SHELL) -ec '$(CXX) -MM $(CXXFLAGS) $< \
                | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \
                [ -s $@ ] || rm -f $@'

all: $(qprogs) $(moreprogs)

show:
	: --- $(qprogs) +++ $(moreprogs)

skrewt: skrewt.o utils.o
	$(CC) $^ -lboost_filesystem-mt -lboost_system -o $@

greylist: greylist.o utils.o
	$(CC) $^ -lboost_filesystem-mt -lboost_system -o $@

ltgrey: ltgrey.o utils.o libltgrey.o
	$(CC) $^ -lboost_filesystem-mt -lboost_system -o $@

wripper: wripper.o
	$(CC) $^ -o $@
	chgrp daemon $@ && chmod g+s $@ || true

mail-scan: mail-scan.o utils.o
	$(CC) $^ -lboost_regex -o $@

hi-test: hi-test.o utils.o
	$(CC) $^ -lboost_regex -o $@

install:
	install $(qprogs) /var/qmail/bin/
	install -gdaemon -m2755 wripper /usr/lib/mailman/mail/
	install bash-c /usr/local/bin/
	cp filters.conf aufilters.conf /var/qmail/control/
	install -m700 -d /var/qmail/rbin
	chown qmaild /var/qmail/rbin
	chgrp qmail /var/qmail/rbin
	install -m755 ../checkpasswd/checkpassword /var/qmail/rbin/
	chown root /var/qmail/rbin/checkpassword
	chmod u+s  /var/qmail/rbin/checkpassword
	cp smtp.conf /etc/stunnel/
	cp pop3.conf /etc/stunnel/
	install qmail-tls-check_certs /var/qmail/bin/
	install spamassassin /etc/init.d/
	install qmail /etc/init.d/
	install spamassassin.default /etc/default/spamassassin
	install tcprules.make /etc/tcpserver/makefile

/etc/tcpserver/smtp.rules :
	./mk_smtp_rules $@

logmark:
	logger -t jsd -p mail.info =========================

# Command to let everybody out of the penalty box:
parole:
	greylist -scan  |grep penalty | while read addr rest ; do TCPREMOTEIP=$addr greylist -p 1 -v ; done

todo:
	echo \
	pass message-ID to greylist program \
	... also provide a way for certain recipients to bypass some checks \
	... both will require major restructuring, "cat" process \
	... IPv6 reverse-DNS recors     \
	... "clean up bad DNS reports nnnn --> () ==> ()"     \
	.....

ALWAYS:
	@echo ...

##?? include $(chapters:.htm=.d)
##?? include $(fancy:%.htm=aux/%.fig)

include $(sources:.c=.d)