chiark / gitweb /
WIP inotify configure test
[inn-innduct.git] / site / Makefile
1 ##  $Revision: 7907 $
2 include ../Makefile.global
3 top = ..
4
5 ##  If you want to do ctlinnd pause/reload/go, uncomment these lines.
6 #PAUSE          = pause
7 #RELOAD_AND_GO  = reload go
8 DIFF="diff"
9
10 # Added a default rule for ".csh" because Digital UNIX has a builtin
11 # rule which would overwite the innshellvars file.
12 .csh:
13
14 CTLINND                 = ${PATHBIN}/ctlinnd
15 FILTBIN                 = ${PATHFILTER}
16 PATH_PERL_STARTUP_INND  = ${PATHFILTER}/startup_innd.pl
17 PATH_PERL_FILTER_INND   = ${PATHFILTER}/filter_innd.pl
18 PATH_PERL_FILTER_NNRPD  = ${PATHFILTER}/filter_nnrpd.pl
19 PATH_TCL_STARTUP        = ${PATHFILTER}/startup.tcl
20 PATH_TCL_FILTER         = ${PATHFILTER}/filter.tcl
21 PATH_PYTHON_FILTER_INND = ${PATHFILTER}/filter_innd.py
22 PATH_PYTHON_INN_MODULE  = ${PATHFILTER}/INN.py
23 PATH_PYTHON_NNRPD_MODULE= ${PATHFILTER}/nnrpd.py
24 PATH_NNRPAUTH           = ${PATHFILTER}/nnrpd_auth.pl
25 PATH_NNRPYAUTH          = ${PATHFILTER}/nnrpd_auth.py
26 PATH_NNRPACCESS         = ${PATHFILTER}/nnrpd_access.pl
27 PATH_NNRPYACCESS        = ${PATHFILTER}/nnrpd_access.py
28 PATH_NNRPYDYNAMIC       = ${PATHFILTER}/nnrpd_dynamic.py
29
30 PATH_CONFIG             = ${PATHETC}/inn.conf
31 PATH_CONTROLCTL         = ${PATHETC}/control.ctl
32 PATH_EXPIRECTL          = ${PATHETC}/expire.ctl
33 PATH_INNDHOSTS          = ${PATHETC}/incoming.conf
34 PATH_MODERATORS         = ${PATHETC}/moderators
35 PATH_DISTPATS           = ${PATHETC}/distrib.pats
36 PATH_NEWSFEEDS          = ${PATHETC}/newsfeeds
37 PATH_READERSCONF        = ${PATHETC}/readers.conf
38 PATH_NNRPDTRACK         = ${PATHETC}/nnrpd.track
39 PATH_SCHEMA             = ${PATHETC}/overview.fmt
40 PATH_NNTPPASS           = ${PATHETC}/passwd.nntp
41 PATH_CTLWATCH           = ${PATHETC}/innwatch.ctl
42 PATH_ACTSYNC_IGN        = ${PATHETC}/actsync.ign
43 PATH_ACTSYNC_CFG        = ${PATHETC}/actsync.cfg
44 PATH_MOTD               = ${PATHETC}/motd.news
45 PATH_STORAGECONF        = ${PATHETC}/storage.conf
46 PATH_CYCBUFFCONFIG      = ${PATHETC}/cycbuff.conf
47 PATH_INNFEEDCTL         = ${PATHETC}/innfeed.conf
48 PATH_BUFFINDEXED        = ${PATHETC}/buffindexed.conf
49 PATH_RADIUS_CONF        = ${PATHETC}/radius.conf
50 PATH_OVDB_CONF          = ${PATHETC}/ovdb.conf
51 PATH_SASL_CONF          = ${PATHETC}/sasl.conf
52 PATH_SUBSCRIPTIONS      = ${PATHETC}/subscriptions
53
54 PATH_ACTIVE             = ${PATHDB}/active
55 PATH_ACTIVE_TIMES       = ${PATHDB}/active.times
56 PATH_HISTORY            = ${PATHDB}/history
57 PATH_NEWSGROUPS         = ${PATHDB}/newsgroups
58
59 ##  Scripts from above, plus site-specific config files.
60 REST            = \
61         newsfeeds incoming.conf nnrpd.track passwd.nntp \
62         inn.conf moderators innreport.conf \
63         control.ctl expire.ctl nntpsend.ctl overview.fmt \
64         innwatch.ctl distrib.pats actsync.cfg actsync.ign \
65         motd.news storage.conf cycbuff.conf buffindexed.conf \
66         innfeed.conf startup_innd.pl filter_innd.pl filter_nnrpd.pl \
67         filter_innd.py INN.py nnrpd.py \
68         startup.tcl filter.tcl nnrpd_auth.pl nnrpd_access.pl \
69         nnrpd_access.py nnrpd_dynamic.py \
70         news2mail.cf readers.conf \
71         radius.conf nnrpd_auth.py ovdb.conf sasl.conf active.minimal \
72         newsgroups.minimal subscriptions
73
74 ALL             = $(MOST) $(REST)
75
76 REST_INSTALLED  = \
77         $D$(PATH_NEWSFEEDS) $D$(PATH_INNDHOSTS) \
78         $D$(PATH_NNRPDTRACK) $D$(PATH_NNTPPASS) \
79         $D$(PATH_CONFIG) $D$(PATH_MODERATORS) \
80         $D$(PATH_CONTROLCTL) $D$(PATH_EXPIRECTL) $D$(PATHETC)/nntpsend.ctl \
81         $D$(PATHETC)/innreport.conf \
82         $D$(PATH_CTLWATCH) $D$(PATH_DISTPATS) $D$(PATH_SCHEMA) \
83         $D$(PATH_ACTSYNC_CFG) $D$(PATH_ACTSYNC_IGN) \
84         $D$(PATH_MOTD) $D$(PATH_STORAGECONF) \
85         $D$(PATH_OVERVIEWCTL) $D$(PATH_CYCBUFFCONFIG) $D$(PATH_BUFFINDEXED) \
86         $D$(PATH_INNFEEDCTL) $D$(PATH_PERL_STARTUP_INND) \
87         $D$(PATH_PERL_FILTER_INND) $D$(PATH_PERL_FILTER_NNRPD) \
88         $D$(PATH_PYTHON_FILTER_INND) $D$(PATH_PYTHON_INN_MODULE) \
89         $D$(PATH_TCL_STARTUP) $D$(PATH_TCL_FILTER) $D$(PATH_PYTHON_NNRPD_MODULE) \
90         $D$(PATH_NNRPAUTH) $D$(PATHETC)/news2mail.cf $D$(PATH_READERSCONF) \
91         $D$(PATH_RADIUS_CONF) $D$(PATH_NNRPYAUTH) $D$(PATH_OVDB_CONF) \
92         $D$(PATH_NNRPYACCESS) $D$(PATH_NNRPYDYNAMIC) \
93         $D$(PATH_SASL_CONF) $D$(PATH_SUBSCRIPTIONS) $D$(PATH_NNRPACCESS)
94
95 ALL_INSTALLED   = $(MOST_INSTALLED) $(REST_INSTALLED)
96
97 SPECIAL         = $D$(PATH_ACTIVE) $D$(PATH_ACTIVE_TIMES) \
98                 $D$(PATH_NEWSGROUPS) $D$(PATH_HISTORY)
99
100 ##  Get new versions of everything from samples directory.
101 all:            $(P) $(ALL) config
102
103 ##  Get only scripts, not per-host config files.
104 most:           $(MOST)
105
106 ##  Show changes between files here and ones in samples.
107 diff:
108         @$(MAKE) COPY=-${DIFF} all
109
110 ##  Show changes between files here and installed versions.
111 diff-installed:
112         @$(MAKE) COPY_RPRI=-${DIFF} COPY_RPUB=-${DIFF} COPY_XPRI=-${DIFF} COPY_XPUB=-${DIFF} $(ALL_INSTALLED)
113
114 ##  Show what would be copied from samples directory.
115 what:
116         @$(MAKE) -s 'COPY=@echo' $(ALL) | ${AWK} 'NF==2 { print $$2; }'
117
118 config:         $(ALL)
119         date >config
120
121 ##  Don't use parallel rules -- we want this to be viewed carefully.
122 install:        all $(PAUSE) install-config $(RELOAD_AND_GO)
123 reload-install: all pause    install-config reload go
124 install-config:         update $(REST_INSTALLED) #$(SPECIAL)
125
126 ##  Install scripts, not per-host config files.
127 update:         all $(MOST_INSTALLED)
128         @echo "" ; echo inn.conf in site directory may have newly added parameters
129         @echo which installed inn.conf does not have.  Check those parameters
130         @echo before you run innd. ; echo ""
131         date >update
132
133 ##  Special rules for files that sould never be overwritten if they are
134 ##  already installed.  These are used only for the initial install of a
135 ##  brand new server.
136 $D$(PATH_ACTIVE):       ; $(CP_DATA) active.minimal $@
137 $D$(PATH_NEWSGROUPS):   ; $(CP_DATA) newsgroups.minimal $@
138 $D$(PATH_ACTIVE_TIMES):
139         touch $@
140         chown $(NEWSUSER) $@
141         chgrp $(NEWSGROUP) $@
142         chmod $(FILEMODE) $@
143 $D$(PATH_HISTORY):
144         touch $@
145         chown $(NEWSUSER) $@
146         chgrp $(NEWSGROUP) $@
147         chmod $(FILEMODE) $@
148         $(PATHBIN)/makedbz -i -o
149
150 ##  Remove files that are unchanged from the release version.
151 clean:
152         @-for I in $(ALL) ; do \
153             cmp -s $$I ../samples/$$I && echo rm -f $$I && rm -f $$I ; \
154         done
155
156 clobber distclean:
157         rm -f $(ALL) tags profiled config update
158
159 tags ctags:
160         cp /dev/null tags
161
162 profiled:
163         cp /dev/null profiled
164
165 depend:
166
167 ##  Commands to make private or public, read or executable files.
168 COPY_RPRI       = $(CP_RPRI)
169 COPY_RPUB       = $(CP_RPUB)
170 COPY_XPRI       = $(CP_XPRI)
171 COPY_XPUB       = $(CP_XPUB)
172
173 ##  Order:  innd, control, expire, inews, sending, misc
174 $D$(PATH_INNDHOSTS):    incoming.conf   ; $(COPY_RPRI) $? $@
175 $D$(PATH_NEWSFEEDS):    newsfeeds       ; $(COPY_RPUB) $? $@
176 $D$(PATH_READERSCONF):  readers.conf    ; $(COPY_RPUB) $? $@
177 $D$(PATH_RADIUS_CONF):  radius.conf     ; $(COPY_RPRI) $? $@
178 $D$(PATH_NNRPDTRACK):   nnrpd.track     ; $(COPY_RPUB) $? $@
179 $D$(PATH_SCHEMA):       overview.fmt    ; $(COPY_RPUB) $? $@
180 $D$(PATH_CONTROLCTL):   control.ctl     ; $(COPY_RPUB) $? $@
181 $D$(PATH_CTLWATCH):     innwatch.ctl    ; $(COPY_RPUB) $? $@
182 $D$(PATH_EXPIRECTL):    expire.ctl      ; $(COPY_RPUB) $? $@
183 $D$(PATH_CONFIG):       inn.conf        ; $(COPY_RPUB) $? $@
184 $D$(PATH_MODERATORS):   moderators      ; $(COPY_RPUB) $? $@
185 $D$(PATH_DISTPATS):     distrib.pats    ; $(COPY_RPUB) $? $@
186 $D$(PATH_NNTPPASS):     passwd.nntp     ; $(COPY_RPRI) $? $@
187 $D$(PATHETC)/nntpsend.ctl: nntpsend.ctl ; $(COPY_RPUB) $? $@
188 $D$(PATHETC)/news2mail.cf: news2mail.cf ; $(COPY_RPUB) $? $@
189 $D$(PATHETC)/innreport.conf: innreport.conf     ; $(COPY_RPUB) $? $@
190 $D$(PATH_STORAGECONF): storage.conf     ; $(COPY_RPUB) $? $@
191 $D$(PATH_CYCBUFFCONFIG): cycbuff.conf   ; $(COPY_RPUB) $? $@
192 $D$(PATH_BUFFINDEXED): buffindexed.conf ; $(COPY_RPUB) $? $@
193 $D$(PATH_OVDB_CONF): ovdb.conf          ; $(COPY_RPUB) $? $@
194 $D$(PATH_PERL_STARTUP_INND): startup_innd.pl ; $(COPY_RPUB) $? $@
195 $D$(PATH_PERL_FILTER_INND): filter_innd.pl ; $(COPY_RPUB) $? $@
196 $D$(PATH_PERL_FILTER_NNRPD): filter_nnrpd.pl ; $(COPY_RPUB) $? $@
197 $D$(PATH_PYTHON_FILTER_INND): filter_innd.py ; $(COPY_RPUB) $? $@
198 $D$(PATH_PYTHON_INN_MODULE): INN.py ;   $(COPY_RPUB) $? $@
199 $D$(PATH_PYTHON_NNRPD_MODULE): nnrpd.py ;   $(COPY_RPUB) $? $@
200 $D$(PATH_TCL_STARTUP): startup.tcl      ; $(COPY_RPUB) $? $@
201 $D$(PATH_TCL_FILTER): filter.tcl        ; $(COPY_RPUB) $? $@
202 $D$(PATH_NNRPAUTH): nnrpd_auth.pl       ; $(COPY_RPUB) $? $@
203 $D$(PATH_NNRPACCESS): nnrpd_access.pl   ; $(COPY_RPUB) $? $@
204 $D$(PATH_NNRPYAUTH): nnrpd_auth.py      ; $(COPY_RPUB) $? $@
205 $D$(PATH_NNRPYACCESS): nnrpd_access.py  ; $(COPY_RPUB) $? $@
206 $D$(PATH_NNRPYDYNAMIC): nnrpd_dynamic.py     ; $(COPY_RPUB) $? $@
207 $D$(PATH_ACTSYNC_CFG): actsync.cfg      ; $(COPY_RPUB) $? $@
208 $D$(PATH_ACTSYNC_IGN): actsync.ign      ; $(COPY_RPUB) $? $@
209 $D$(PATH_MOTD): motd.news               ; $(COPY_RPUB) $? $@
210 $D$(PATH_INNFEEDCTL): innfeed.conf      ; $(COPY_RPRI) $? $@
211 $D$(PATH_SASL_CONF):    sasl.conf       ; $(COPY_RPUB) $? $@
212 $D$(PATH_SUBSCRIPTIONS): subscriptions  ; $(COPY_RPUB) $? $@
213
214 REASON  = 'Installing site config files from site/Makefile'
215 go pause:
216         -${CTLINND} $@ $(REASON)
217 reload:
218         -${CTLINND} reload all $(REASON)
219
220 ##  Use this to just replace any changed files you might have made.  Only
221 ##  do this after you've examined the output of "make -n"!
222 replace:
223         $(MAKE) COPY=cp all
224
225 ##  Get files from the samples directory.
226 COPY    = $(SHELL) ./getsafe.sh
227 actsync.cfg:    ../samples/actsync.cfg          ; $(COPY) $? $@
228 actsync.ign:    ../samples/actsync.ign          ; $(COPY) $? $@
229 control.ctl:    ../samples/control.ctl          ; $(COPY) $? $@
230 expire.ctl:     ../samples/expire.ctl           ; $(COPY) $? $@
231 filter.tcl:     ../samples/filter.tcl           ; $(COPY) $? $@
232 nnrpd_auth.pl:  ../samples/nnrpd_auth.pl        ; $(COPY) $? $@
233 nnrpd_access.pl:  ../samples/nnrpd_access.pl    ; $(COPY) $? $@
234 nnrpd_auth.py:  ../samples/nnrpd_auth.py        ; $(COPY) $? $@
235 nnrpd_access.py: ../samples/nnrpd_access.py     ; $(COPY) $? $@
236 nnrpd_dynamic.py: ../samples/nnrpd_dynamic.py   ; $(COPY) $? $@
237 filter_innd.pl: ../samples/filter_innd.pl       ; $(COPY) $? $@
238 filter_nnrpd.pl: ../samples/filter_nnrpd.pl     ; $(COPY) $? $@
239 filter_innd.py: ../samples/filter_innd.py       ; $(COPY) $? $@
240 INN.py:         ../samples/INN.py               ; $(COPY) $? $@
241 nnrpd.py:       ../samples/nnrpd.py             ; $(COPY) $? $@
242 incoming.conf:  ../samples/incoming.conf        ; $(COPY) $? $@
243 inn.conf:       ../samples/inn.conf             ; $(COPY) $? $@
244 innreport.conf: ../samples/innreport.conf       ; $(COPY) $? $@
245 storage.conf:   ../samples/storage.conf         ; $(COPY) $? $@
246 cycbuff.conf:   ../samples/cycbuff.conf         ; $(COPY) $? $@
247 buffindexed.conf: ../samples/buffindexed.conf   ; $(COPY) $? $@
248 ovdb.conf:      ../samples/ovdb.conf            ; $(COPY) $? $@
249 innwatch.ctl:   ../samples/innwatch.ctl         ; $(COPY) $? $@
250 innfeed.conf:   ../samples/innfeed.conf         ; $(COPY) $? $@
251 moderators:     ../samples/moderators           ; $(COPY) $? $@
252 distrib.pats:   ../samples/distrib.pats         ; $(COPY) $? $@
253 motd.news:      ../samples/motd.news            ; $(COPY) $? $@
254 news2mail.cf:   ../samples/news2mail.cf         ; $(COPY) $? $@
255 newsfeeds:      ../samples/newsfeeds            ; $(COPY) $? $@
256 nnrpd.track:    ../samples/nnrpd.track          ; $(COPY) $? $@
257 nntpsend.ctl:   ../samples/nntpsend.ctl         ; $(COPY) $? $@
258 overview.fmt:   ../samples/overview.fmt         ; $(COPY) $? $@
259 parsecontrol:   ../samples/parsecontrol         ; $(COPY) $? $@
260 passwd.nntp:    ../samples/passwd.nntp          ; $(COPY) $? $@
261 readers.conf:   ../samples/readers.conf         ; $(COPY) $? $@
262 radius.conf:    ../samples/radius.conf          ; $(COPY) $? $@
263 startup.tcl:    ../samples/startup.tcl          ; $(COPY) $? $@
264 startup_innd.pl: ../samples/startup_innd.pl     ; $(COPY) $? $@
265 subscriptions:  ../samples/subscriptions        ; $(COPY) $? $@
266 sasl.conf:      ../samples/sasl.conf            ; $(COPY) $? $@
267 active.minimal: ../samples/active.minimal       ; $(COPY) $? $@
268 newsgroups.minimal: ../samples/newsgroups.minimal ; $(COPY) $? $@