2 include ../Makefile.global
5 ## If you want to do ctlinnd pause/reload/go, uncomment these lines.
7 #RELOAD_AND_GO = reload go
10 # Added a default rule for ".csh" because Digital UNIX has a builtin
11 # rule which would overwite the innshellvars file.
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
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
54 PATH_ACTIVE = ${PATHDB}/active
55 PATH_ACTIVE_TIMES = ${PATHDB}/active.times
56 PATH_HISTORY = ${PATHDB}/history
57 PATH_NEWSGROUPS = ${PATHDB}/newsgroups
59 ## Scripts from above, plus site-specific config files.
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
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)
95 ALL_INSTALLED = $(MOST_INSTALLED) $(REST_INSTALLED)
97 SPECIAL = $D$(PATH_ACTIVE) $D$(PATH_ACTIVE_TIMES) \
98 $D$(PATH_NEWSGROUPS) $D$(PATH_HISTORY)
100 ## Get new versions of everything from samples directory.
101 all: $(P) $(ALL) config
103 ## Get only scripts, not per-host config files.
106 ## Show changes between files here and ones in samples.
108 @$(MAKE) COPY=-${DIFF} all
110 ## Show changes between files here and installed versions.
112 @$(MAKE) COPY_RPRI=-${DIFF} COPY_RPUB=-${DIFF} COPY_XPRI=-${DIFF} COPY_XPUB=-${DIFF} $(ALL_INSTALLED)
114 ## Show what would be copied from samples directory.
116 @$(MAKE) -s 'COPY=@echo' $(ALL) | ${AWK} 'NF==2 { print $$2; }'
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)
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 ""
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
136 $D$(PATH_ACTIVE): ; $(CP_DATA) active.minimal $@
137 $D$(PATH_NEWSGROUPS): ; $(CP_DATA) newsgroups.minimal $@
138 $D$(PATH_ACTIVE_TIMES):
141 chgrp $(NEWSGROUP) $@
146 chgrp $(NEWSGROUP) $@
148 $(PATHBIN)/makedbz -i -o
150 ## Remove files that are unchanged from the release version.
152 @-for I in $(ALL) ; do \
153 cmp -s $$I ../samples/$$I && echo rm -f $$I && rm -f $$I ; \
157 rm -f $(ALL) tags profiled config update
163 cp /dev/null profiled
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)
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) $? $@
214 REASON = 'Installing site config files from site/Makefile'
216 -${CTLINND} $@ $(REASON)
218 -${CTLINND} reload all $(REASON)
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"!
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) $? $@