1*
2* DO NOT CHANGE THIS MAKEFILE DIRECTLY
3*
4* THERE ARE NO CONFIGURATION PARAMETERS IN THIS FILE
5*
6
7#include "config.h"
8#undef global
9#undef SHELL
10
11#ifndef COMPILER_FLAGS
12#define COMPILER_FLAGS
13#endif
14
15#ifndef EXTRA_LIB
16#define EXTRA_LIB
17#endif
18
19#ifndef LOADER_FLAGS
20#define LOADER_FLAGS
21#endif
22
23#ifndef NNTP
24#undef NNTP_EXTRA_LIB
25#endif
26
27#ifndef NNTP_EXTRA_LIB
28#define NNTP_EXTRA_LIB
29#endif
30
31* Symmetry style parallel make
32
33#undef PARALLEL
34#ifdef PARALLEL_MAKE
35#define PARALLEL &
36#else
37#define PARALLEL
38#endif
39
40#ifdef ACCOUNTING
41#define ACCOUNT nnacct
42#else
43#ifdef AUTHORIZE
44#define ACCOUNT nnacct
45#else
46#define ACCOUNT
47#endif
48#endif
49------------------ MAKE WILL CUT HERE -------------
50*
51* Notice:  ymakefile is made from xmakefile by the Makefile.
52*
53
54CC =	 COMPILER
55CPP =	 PREPROC
56LDFLAGS = LDEBUG LOADER_FLAGS EXTRA_LIB
57CFLAGS = -Iconf COMPILER_FLAGS CDEBUG
58
59*
60* Resulting programs
61*
62
63BIN_PROG =	nn nnusage nngrab nnstats ACCOUNT
64BIN_LINK =	nncheck nnadmin nntidy nngoback nngrep nnpost nnbatch nnview
65LIB_PROG =	aux upgrade_rc
66#ifdef NOV
67MASTER_PROG =	back_act nnspew
68NN.1 = nn.1.nov
69#else
70MASTER_PROG =	nnmaster back_act nnspew
71NN.1 = nn.1.nnmaster
72#endif
73
74*
75* Compilation
76*
77
78SHELL = /bin/sh
79
80MASTER = master.o collect.o expire.o proto.o hostname.o \
81	global.o options.o active.o db.o nntp.o \
82	pack_date.o pack_name.o pack_subject.o news.o digest.o
83
84NN = 	nn.o admin.o proto.o global.o options.o db.o nntp.o \
85	init.o variable.o term.o keymap.o macro.o regexp.o \
86	menu.o more.o newsrc.o group.o folder.o dir.o aux.o \
87	sort.o articles.o sequence.o kill.o active.o fullname.o \
88	answer.o reroute.o hostname.o save.o unshar.o decode.o execute.o \
89	pack_date.o pack_name.o pack_subject.o news.o digest.o match.o \
90	chset.o printconf.o
91#ifdef NOV
92NOVOBJ = awksplit.o hash.o hdbm.o libnov.o split.o
93#else
94NOVOBJ =
95#endif
96
97ACCT = account.o global.o options.o proto.o hostname.o
98
99
100all:	$(BIN_PROG) $(LIB_PROG) $(MASTER_PROG) inst
101
102client: $(BIN_PROG) $(LIB_PROG) inst
103
104master: $(MASTER_PROG) inst
105
106nn:	PARALLEL $(NN) $(NOVOBJ)
107	@echo linking nn
108	@$(CC) -o nn $(CFLAGS) $(NN) $(NOVOBJ) $(LDFLAGS) TERMLIB NNTP_EXTRA_LIB
109
110nnmaster: PARALLEL $(MASTER)
111	@echo linking nnmaster
112	@$(CC) -o nnmaster $(CFLAGS) $(MASTER) $(LDFLAGS) NNTP_EXTRA_LIB
113
114nnstats: nnstats.sh prefix
115	cat prefix nnstats.sh > nnstats ; chmod +x nnstats
116
117nnusage: nnusage.sh prefix
118	cat prefix nnusage.sh > nnusage ; chmod +x nnusage
119
120nngrab:	nngrab.sh prefix
121	cat prefix nngrab.sh > nngrab ; chmod +x nngrab
122
123aux:	 aux.sh prefix
124	cat prefix aux.sh > aux ; chmod +x aux
125
126upgrade_rc: upgrade_rc.sh prefix
127	cat prefix upgrade_rc.sh > upgrade_rc ; chmod +x upgrade_rc
128
129nnacct: PARALLEL $(ACCT)
130	@echo linking nnacct
131	@$(CC) -o nnacct $(CFLAGS) $(ACCT) $(LDFLAGS)
132
133back_act: back_act.sh prefix
134	cat prefix back_act.sh > back_act ; chmod +x back_act
135
136nnspew:	nnspew.sh prefix
137	cat prefix nnspew.sh > nnspew ; chmod +x nnspew
138
139prefix:	config.h mkprefix
140	./mkprefix prefix < /dev/null > prefix
141
142mkprefix: PARALLEL prefix.o global.o
143	$(CC) -o mkprefix $(CFLAGS) prefix.o global.o $(LDFLAGS)
144
145*
146* Configuration counter updating
147*
148
149update.h:	config.h patchlevel.h Makefile
150	@sh -c "[ -f update.h ] || (echo 0 > update.h)"
151	@sh -c "expr `cat update.h` + 1 > update1.h && mv update1.h update.h"
152	@echo configuration number updated to `cat update.h`
153
154*
155* Installation
156*
157
158cvt-help:	PARALLEL config.h cvt-help.c
159	$(CC) -o cvt-help cvt-help.c $(LDFLAGS)
160
161usercheck:	PARALLEL config.h usercheck.c
162	$(CC) -o usercheck usercheck.c $(LDFLAGS)
163
164inst: config.h xmakefile inst.sh cvt-help usercheck mkprefix man/nn.1
165	@echo building install script: ./inst
166	@./mkprefix full < /dev/null > inst
167	@echo BIN_PROG='"'$(BIN_PROG)'"' >> inst
168	@echo BIN_LINK='"'$(BIN_LINK)'"' >> inst
169	@echo LIB_PROG='"'$(LIB_PROG)'"' >> inst
170	@echo MASTER_PROG='"'$(MASTER_PROG)'"' >> inst
171	@cat inst.sh >> inst
172	@chmod 755 inst
173
174* create the proper man page
175
176man/nn.1:	man/nn.1.nov man/nn.1.nnmaster
177	cp -p man/$(NN.1) man/nn.1
178
179*
180* Clean -- remove compiled programs
181*
182
183clean:
184	rm -f $(BIN_PROG) $(LIB_PROG) $(MASTER_PROG) cvt-help usercheck
185	rm -f prefix mkprefix inst
186	rm -f man/nn.1
187
188*
189* dependencies
190*
191
192account.o:	account.c account.h config.h global.h execute.h options.h \
193		proto.h
194active.o:	active.c active.h config.h data.h global.h db.h master.h \
195		newsrc.h
196admin.o:	admin.c admin.h config.h data.h global.h db.h execute.h \
197		group.h keymap.h nn.h proto.h nn_term.h
198answer.o:	answer.c answer.h config.h data.h global.h aux.h db.h \
199		fullname.h group.h hostname.h init.h keymap.h kill.h \
200		match.h news.h nn.h nntp.h options.h printconf.h regexp.h \
201		reroute.h nn_term.h variable.h
202articles.o:	articles.c articles.h config.h data.h global.h db.h keymap.h \
203		kill.h match.h news.h newsrc.h regexp.h sort.h nn_term.h
204aux.o:		aux.c aux.h config.h data.h global.h chset.h execute.h \
205		keymap.h news.h nn.h nntp.h reroute.h nn_term.h
206chset.o:	chset.c chset.h config.h
207collect.o:	collect.c collect.h config.h global.h db.h news.h digest.h \
208		master.h news.h nntp.h pack_date.h pack_name.h pack_subject.h
209db.o:		db.c db.h config.h data.h global.h answer.h articles.h \
210		keymap.h libnov.h nntp.h nn_term.h pack_date.h pack_name.h \
211		pack_subject.h hash.h newsoverview.h
212decode.o:	decode.c decode.h config.h data.h global.h keymap.h save.h \
213		nn_term.h
214digest.o:	digest.c digest.h config.h data.h global.h debug.h keymap.h \
215		news.h pack_name.h nn_term.h
216dir.o:		dir.c dir.h config.h data.h global.h articles.h keymap.h \
217		nn_term.h
218execute.o:	execute.c execute.h config.h data.h global.h folder.h \
219		keymap.h nn_term.h
220expire.o:	expire.c expire.h config.h global.h db.h keymap.h master.h \
221		nntp.h nn_term.h
222folder.o:	folder.c folder.h config.h data.h global.h articles.h \
223		db.h digest.h dir.h keymap.h match.h menu.h news.h \
224		pack_date.h pack_name.h pack_subject.h regexp.h save.h \
225		sort.h nn_term.h
226fullname.o:	fullname.c fullname.h config.h data.h global.h
227global.o:	global.c data.h global.h config.h execute.h keymap.h nn.h \
228		patchlevel.h nn_term.h update.h
229group.o:	group.c group.h config.h data.h global.h articles.h db.h \
230		folder.h keymap.h macro.h match.h menu.h newsrc.h nn.h \
231		nntp.h regexp.h sort.h nn_term.h variable.h
232hostname.o:	hostname.c hostname.h config.h
233init.o:		init.c init.h config.h data.h global.h articles.h admin.h \
234		answer.h db.h execute.h folder.h group.h hostname.h \
235		keymap.h kill.h macro.h menu.h newsrc.h nn.h printconf.h \
236		save.h sequence.h sort.h nn_term.h variable.h
237keymap.o:	keymap.c keymap.h config.h data.h global.h init.h nn_term.h
238kill.o:		kill.c kill.h config.h data.h global.h db.h keymap.h \
239		match.h menu.h regexp.h nn_term.h
240macro.o:	macro.c macro.h config.h data.h global.h db.h init.h \
241		keymap.h menu.h nn_term.h variable.h
242master.o:	master.c master.h config.h global.h active.h collect.h db.h \
243		digest.h execute.h expire.h news.h nntp.h options.h proto.h
244match.o:	match.c match.h config.h data.h global.h regexp.h
245menu.o:		menu.c menu.h config.h data.h global.h articles.h \
246		answer.h db.h execute.h folder.h group.h init.h keymap.h \
247		kill.h macro.h match.h more.h newsrc.h regexp.h save.h \
248		sort.h nn_term.h
249more.o:		more.c more.h config.h data.h global.h articles.h answer.h \
250		db.h execute.h folder.h group.h init.h keymap.h kill.h \
251		macro.h match.h menu.h news.h regexp.h save.h nn_term.h
252news.o:		news.c news.h config.h data.h global.h digest.h more.h nntp.h
253newsrc.o:	newsrc.c newsrc.h config.h data.h global.h articles.h \
254		active.h db.h keymap.h nn.h options.h regexp.h nn_term.h
255nn.o:		nn.c nn.h config.h data.h global.h admin.h answer.h \
256		articles.h db.h execute.h folder.h group.h init.h keymap.h \
257		kill.h libnov.h macro.h match.h menu.h newsrc.h nntp.h \
258		options.h proto.h regexp.h sequence.h nn_term.h
259nntp.o:		nntp.c nntp.h config.h data.h global.h fullname.h hash.h \
260		hostname.h keymap.h libnov.h nn_term.h patchlevel.h \
261		newsoverview.h
262options.o:	options.c options.h config.h data.h global.h nn.h variable.h
263pack_date.o:	pack_date.c pack_date.h config.h data.h global.h
264pack_name.o:	pack_name.c pack_name.h config.h data.h global.h
265pack_subject.o:	pack_subject.c pack_subject.h config.h data.h global.h
266prefix.o:	prefix.c config.h data.h global.h execute.h
267printconf.o:	printconf.c printconf.h config.h data.h global.h
268proto.o:	proto.c proto.h config.h data.h global.h hostname.h
269regexp.o:	regexp.c regexp.h config.h data.h global.h keymap.h nn_term.h
270reroute.o:	reroute.c reroute.h config.h data.h global.h
271save.o:		save.c save.h config.h data.h global.h db.h decode.h \
272		digest.h folder.h keymap.h more.h news.h nn_term.h unshar.h
273sequence.o:	sequence.c sequence.h config.h data.h global.h db.h \
274		debug.h keymap.h macro.h nn.h nn_term.h variable.h
275sort.o:		sort.c sort.h config.h data.h global.h  articles.h
276term.o:		term.c nn_term.h config.h data.h global.h execute.h \
277		folder.h keymap.h macro.h nn.h regexp.h
278unshar.o:	unshar.c unshar.h config.h data.h global.h keymap.h nn_term.h
279variable.o:	variable.c variable.h config.h data.h global.h chset.h \
280		folder.h init.h keymap.h regexp.h sort.h nn_term.h
281
282awksplit.o:	awksplit.c awksplit.h config.h split.h
283hash.o:		hash.c hash.h config.h hdbm.h
284hdbm.o:		hdbm.c hdbm.h config.h hdbmint.h
285libnov.o:	libnov.c libnov.h config.h data.h global.h awksplit.h \
286		digest.h hash.h newsoverview.h news.h nntp.h split.h
287split.o:	split.c split.h config.h
288
289* link debugging version
290
291nn1:	$(NN)
292	$(CC) -o nn1 -Mnn1 $(CFLAGS) $(NN) $(LDFLAGS) TERMLIB NNTP_EXTRA_LIB
293
294nnmaster1: $(MASTER)
295	$(CC) -o nnmaster1 -Mnnmaster1 $(CFLAGS) $(MASTER) $(LDFLAGS) NNTP_EXTRA_LIB
296
297lint:
298	echo LINTING NN
299	lint -Iconf -u $(NN:.o=.c)
300*	echo LINTING MASTER
301*	lint -Iconf -u $(MASTER:.o=.c)
302	echo LINTING NOVOBJ
303	lint -Iconf -u $(NOVOBJ:.o=.c)
304