1# Top level Makefile for tin
2# - for configuration options read the doc/INSTALL file.
3#
4# Updated: 2019-03-12
5#
6
7SHELL	= @SHELL@
8
9PROJECT	= tin
10LVER	= 2
11PVER	= 4
12SVER	= 5
13VER	= $(LVER).$(PVER).$(SVER)
14DVER	= 20201224
15EXE	= tin
16
17# directory structure
18TOPDIR	= .
19DOCDIR	= ./doc
20INCDIR	= ./include
21OBJDIR	= ./src
22SRCDIR	= ./src
23PCREDIR	= ./pcre
24CANDIR	= ./libcanlock
25TOLDIR	= ./tools
26PODIR	= ./po
27INTLDIR	= ./intl
28L10NDIR	= ./doc/l10n
29
30HFILES	= \
31	$(INCDIR)/bool.h \
32	$(INCDIR)/bugrep.h \
33	$(INCDIR)/debug.h \
34	$(INCDIR)/extern.h \
35	$(INCDIR)/keymap.h \
36	$(INCDIR)/missing_fd.h \
37	$(INCDIR)/newsrc.h \
38	$(INCDIR)/nntplib.h \
39	$(INCDIR)/plp_snprintf.h \
40	$(INCDIR)/policy.h \
41	$(INCDIR)/proto.h \
42	$(INCDIR)/rfc2046.h \
43	$(INCDIR)/stpwatch.h \
44	$(INCDIR)/tcurses.h \
45	$(INCDIR)/tin.h \
46	$(INCDIR)/tinrc.h \
47	$(INCDIR)/tnntp.h \
48	$(INCDIR)/trace.h \
49	$(INCDIR)/version.h
50
51CFILES	= \
52	$(SRCDIR)/active.c \
53	$(SRCDIR)/art.c \
54	$(SRCDIR)/attrib.c \
55	$(SRCDIR)/auth.c \
56	$(SRCDIR)/charset.c \
57	$(SRCDIR)/color.c \
58	$(SRCDIR)/config.c \
59	$(SRCDIR)/cook.c \
60	$(SRCDIR)/curses.c \
61	$(SRCDIR)/debug.c\
62	$(SRCDIR)/envarg.c \
63	$(SRCDIR)/feed.c \
64	$(SRCDIR)/filter.c \
65	$(SRCDIR)/getline.c \
66	$(SRCDIR)/global.c \
67	$(SRCDIR)/group.c \
68	$(SRCDIR)/hashstr.c \
69	$(SRCDIR)/header.c \
70	$(SRCDIR)/heapsort.c \
71	$(SRCDIR)/help.c\
72	$(SRCDIR)/inews.c \
73	$(SRCDIR)/init.c \
74	$(SRCDIR)/joinpath.c \
75	$(SRCDIR)/keymap.c \
76	$(SRCDIR)/lang.c \
77	$(SRCDIR)/langinfo.c \
78	$(SRCDIR)/list.c \
79	$(SRCDIR)/lock.c \
80	$(SRCDIR)/mail.c \
81	$(SRCDIR)/main.c \
82	$(SRCDIR)/makecfg.c \
83	$(SRCDIR)/memory.c \
84	$(SRCDIR)/mimetypes.c \
85	$(SRCDIR)/misc.c \
86	$(SRCDIR)/newsrc.c\
87	$(SRCDIR)/nntplib.c \
88	$(SRCDIR)/nrctbl.c \
89	$(SRCDIR)/options_menu.c \
90	$(SRCDIR)/page.c \
91	$(SRCDIR)/parsdate.y \
92	$(SRCDIR)/plp_snprintf.c \
93	$(SRCDIR)/pgp.c \
94	$(SRCDIR)/post.c \
95	$(SRCDIR)/prompt.c \
96	$(SRCDIR)/read.c \
97	$(SRCDIR)/refs.c \
98	$(SRCDIR)/regex.c \
99	$(SRCDIR)/rfc1524.c \
100	$(SRCDIR)/rfc2045.c \
101	$(SRCDIR)/rfc2046.c \
102	$(SRCDIR)/rfc2047.c \
103	$(SRCDIR)/save.c \
104	$(SRCDIR)/screen.c \
105	$(SRCDIR)/search.c \
106	$(SRCDIR)/select.c \
107	$(SRCDIR)/sigfile.c \
108	$(SRCDIR)/signal.c \
109	$(SRCDIR)/strftime.c \
110	$(SRCDIR)/string.c \
111	$(SRCDIR)/tags.c \
112	$(SRCDIR)/tcurses.c \
113	$(SRCDIR)/tmpfile.c \
114	$(SRCDIR)/my_tmpfile.c \
115	$(SRCDIR)/thread.c \
116	$(SRCDIR)/trace.c \
117	$(SRCDIR)/version.c \
118	$(SRCDIR)/wildmat.c \
119	$(SRCDIR)/xface.c \
120	$(SRCDIR)/xref.c
121
122DOC	= \
123	$(DOCDIR)/ABOUT-NLS \
124	$(DOCDIR)/CHANGES \
125	$(DOCDIR)/CHANGES.old \
126	$(DOCDIR)/CREDITS \
127	$(DOCDIR)/DEBUG_REFS \
128	$(DOCDIR)/INSTALL \
129	$(DOCDIR)/TODO \
130	$(DOCDIR)/WHATSNEW \
131	$(DOCDIR)/art_handling.txt \
132	$(DOCDIR)/article.txt \
133	$(DOCDIR)/auth.txt \
134	$(DOCDIR)/config-anomalies \
135	$(DOCDIR)/filtering \
136	$(DOCDIR)/good-netkeeping-seal \
137	$(DOCDIR)/internals.txt \
138	$(DOCDIR)/iso2asc.txt \
139	$(DOCDIR)/keymap.sample \
140	$(DOCDIR)/mailcap.sample \
141	$(DOCDIR)/mbox.5 \
142	$(DOCDIR)/mime.types \
143	$(DOCDIR)/mmdf.5 \
144	$(DOCDIR)/newsoverview.5 \
145	$(DOCDIR)/nov_tests \
146	$(DOCDIR)/opt-case.1 \
147	$(DOCDIR)/plp_snprintf.3 \
148	$(DOCDIR)/pgp.txt \
149	$(DOCDIR)/rcvars.txt \
150	$(DOCDIR)/reading-mail.txt \
151	$(DOCDIR)/umlaute.txt \
152	$(DOCDIR)/umlauts.txt \
153	$(DOCDIR)/url_handler.1 \
154	$(DOCDIR)/tin.1 \
155	$(DOCDIR)/tin.5 \
156	$(DOCDIR)/tin.defaults \
157	$(DOCDIR)/tinews.1 \
158	$(DOCDIR)/tools.txt \
159	$(DOCDIR)/w2r.1 \
160	$(DOCDIR)/wildmat.3
161
162TOL	= \
163	$(TOLDIR)/expiretover \
164	$(TOLDIR)/metamutt \
165	$(TOLDIR)/opt-case.pl \
166	$(TOLDIR)/tinlock \
167	$(TOLDIR)/tinews.pl \
168	$(TOLDIR)/url_handler.pl \
169	$(TOLDIR)/url_handler.sh \
170	$(TOLDIR)/w2r.pl \
171	$(TOLDIR)/expand_aliases.tgz
172
173TOP	= \
174	$(TOPDIR)/Makefile \
175	$(TOPDIR)/MANIFEST \
176	$(TOPDIR)/README \
177	$(TOPDIR)/README.MAC \
178	$(TOPDIR)/README.WIN \
179	$(TOPDIR)/aclocal.m4 \
180	$(TOPDIR)/conf-tin \
181	$(TOPDIR)/config.guess \
182	$(TOPDIR)/config.sub \
183	$(TOPDIR)/configure \
184	$(TOPDIR)/configure.in \
185	$(TOPDIR)/install-sh \
186	$(TOPDIR)/po4a.conf \
187	$(TOPDIR)/tin.spec
188
189PCRE	= \
190	$(PCREDIR)/AUTHORS \
191	$(PCREDIR)/COPYING \
192	$(PCREDIR)/ChangeLog \
193	$(PCREDIR)/INSTALL \
194	$(PCREDIR)/LICENCE \
195	$(PCREDIR)/Makefile.in \
196	$(PCREDIR)/Makefile.in-old \
197	$(PCREDIR)/NEWS \
198	$(PCREDIR)/NON-UNIX-USE \
199	$(PCREDIR)/README \
200	$(PCREDIR)/RunTest.in \
201	$(PCREDIR)/config.h \
202	$(PCREDIR)/configure.in \
203	$(PCREDIR)/version.sh \
204	$(PCREDIR)/dftables.c \
205	$(PCREDIR)/pcre-config.in \
206	$(PCREDIR)/pcre.h \
207	$(PCREDIR)/pcre_compile.c \
208	$(PCREDIR)/pcre_config.c \
209	$(PCREDIR)/pcre_dfa_exec.c \
210	$(PCREDIR)/pcre_exec.c \
211	$(PCREDIR)/pcre_fullinfo.c \
212	$(PCREDIR)/pcre_get.c \
213	$(PCREDIR)/pcre_globals.c \
214	$(PCREDIR)/pcre_info.c \
215	$(PCREDIR)/pcre_internal.h \
216	$(PCREDIR)/pcre_maketables.c \
217	$(PCREDIR)/pcre_newline.c \
218	$(PCREDIR)/pcre_ord2utf8.c \
219	$(PCREDIR)/pcre_printint.src \
220	$(PCREDIR)/pcre_refcount.c \
221	$(PCREDIR)/pcre_study.c \
222	$(PCREDIR)/pcre_tables.c \
223	$(PCREDIR)/pcre_try_flipped.c \
224	$(PCREDIR)/pcre_ucp_searchfuncs.c \
225	$(PCREDIR)/pcre_valid_utf8.c \
226	$(PCREDIR)/pcre_version.c \
227	$(PCREDIR)/pcre_xclass.c \
228	$(PCREDIR)/pcredemo.c \
229	$(PCREDIR)/pcregrep.c \
230	$(PCREDIR)/pcreposix.c \
231	$(PCREDIR)/pcreposix.h \
232	$(PCREDIR)/pcretest.c \
233	$(PCREDIR)/perltest \
234	$(PCREDIR)/ucp.h \
235	$(PCREDIR)/ucpinternal.h \
236	$(PCREDIR)/ucptable.c \
237	$(PCREDIR)/doc/pcre.3 \
238	$(PCREDIR)/doc/pcrepattern.3 \
239	$(PCREDIR)/testdata/testinput1 \
240	$(PCREDIR)/testdata/testinput2 \
241	$(PCREDIR)/testdata/testinput3 \
242	$(PCREDIR)/testdata/testinput4 \
243	$(PCREDIR)/testdata/testinput5 \
244	$(PCREDIR)/testdata/testinput6 \
245	$(PCREDIR)/testdata/testinput7 \
246	$(PCREDIR)/testdata/testinput8 \
247	$(PCREDIR)/testdata/testinput9 \
248	$(PCREDIR)/testdata/testoutput1 \
249	$(PCREDIR)/testdata/testoutput2 \
250	$(PCREDIR)/testdata/testoutput3 \
251	$(PCREDIR)/testdata/testoutput4 \
252	$(PCREDIR)/testdata/testoutput5 \
253	$(PCREDIR)/testdata/testoutput6 \
254	$(PCREDIR)/testdata/testoutput7 \
255	$(PCREDIR)/testdata/testoutput8 \
256	$(PCREDIR)/testdata/testoutput9
257
258CAN	= \
259	$(CANDIR)/COPYING \
260	$(CANDIR)/ChangeLog \
261	$(CANDIR)/ChangeLog_V0 \
262	$(CANDIR)/ChangeLog_V1 \
263	$(CANDIR)/ChangeLog_V2 \
264	$(CANDIR)/ChangeLog_V3 \
265	$(CANDIR)/INSTALL \
266	$(CANDIR)/LICENSE \
267	$(CANDIR)/Makefile.in \
268	$(CANDIR)/README \
269	$(CANDIR)/src/base64.c \
270	$(CANDIR)/src/canlock.c \
271	$(CANDIR)/src/hmac.c \
272	$(CANDIR)/src/secret.c \
273	$(CANDIR)/src/sha1.c \
274	$(CANDIR)/src/sha224-256.c \
275	$(CANDIR)/src/sha384-512.c \
276	$(CANDIR)/src/usha.c \
277	$(CANDIR)/include/base64.h \
278	$(CANDIR)/include/canlock.h \
279	$(CANDIR)/include/canlock-private.h \
280	$(CANDIR)/include/config.h \
281	$(CANDIR)/include/sha-private.h \
282	$(CANDIR)/include/sha.h \
283	$(CANDIR)/test/canlocktest.c \
284	$(CANDIR)/test/canlocktest_legacy.c \
285	$(CANDIR)/test/hkdf.c \
286	$(CANDIR)/test/shatest.c \
287	$(CANDIR)/util/canlock.c
288
289MISC	= \
290	$(INCDIR)/autoconf.hin \
291	$(SRCDIR)/Makefile.in \
292	$(SRCDIR)/tincfg.tbl
293
294INTLFILES = \
295	$(INTLDIR)/bindtextdom.c \
296	$(INTLDIR)/ChangeLog \
297	$(INTLDIR)/config.charset \
298	$(INTLDIR)/dcgettext.c \
299	$(INTLDIR)/dcigettext.c \
300	$(INTLDIR)/dcngettext.c \
301	$(INTLDIR)/dgettext.c \
302	$(INTLDIR)/dngettext.c \
303	$(INTLDIR)/explodename.c \
304	$(INTLDIR)/finddomain.c \
305	$(INTLDIR)/gettext.c \
306	$(INTLDIR)/gettext.h \
307	$(INTLDIR)/gettextP.h \
308	$(INTLDIR)/hash-string.h \
309	$(INTLDIR)/intl-compat.c \
310	$(INTLDIR)/l10nflist.c \
311	$(INTLDIR)/libgettext.h \
312	$(INTLDIR)/libgnuintl.h \
313	$(INTLDIR)/loadinfo.h \
314	$(INTLDIR)/loadmsgcat.c \
315	$(INTLDIR)/localcharset.c \
316	$(INTLDIR)/locale.alias \
317	$(INTLDIR)/localealias.c \
318	$(INTLDIR)/Makefile.in \
319	$(INTLDIR)/ngettext.c \
320	$(INTLDIR)/plural.c \
321	$(INTLDIR)/plural.y \
322	$(INTLDIR)/ref-add.sin \
323	$(INTLDIR)/ref-del.sin \
324	$(INTLDIR)/textdomain.c \
325	$(INTLDIR)/VERSION
326
327POFILES = \
328	$(PODIR)/Makefile.inn \
329	$(PODIR)/POTFILES.in \
330	$(PODIR)/$(PROJECT).pot \
331	$(PODIR)/da.gmo \
332	$(PODIR)/da.po \
333	$(PODIR)/de.gmo \
334	$(PODIR)/de.po \
335	$(PODIR)/en_GB.gmo \
336	$(PODIR)/en_GB.po \
337	$(PODIR)/es.gmo \
338	$(PODIR)/es.po \
339	$(PODIR)/et.gmo \
340	$(PODIR)/et.po \
341	$(PODIR)/fr.gmo \
342	$(PODIR)/fr.po \
343	$(PODIR)/ru.gmo \
344	$(PODIR)/ru.po \
345	$(PODIR)/sv.gmo \
346	$(PODIR)/sv.po \
347	$(PODIR)/tr.gmo \
348	$(PODIR)/tr.po \
349	$(PODIR)/zh_CN.po \
350	$(PODIR)/zh_CN.gmo \
351	$(PODIR)/zh_TW.po \
352	$(PODIR)/zh_TW.gmo
353
354L10NFILES = \
355	$(L10NDIR)/de/tin.1 \
356	$(L10NDIR)/de/tin.5 \
357	$(L10NDIR)/de.add \
358	$(L10NDIR)/de.po \
359	$(L10NDIR)/en_GB/tin.1 \
360	$(L10NDIR)/en_GB/tin.5 \
361	$(L10NDIR)/en_GB.po \
362	$(L10NDIR)/es/tin.1 \
363	$(L10NDIR)/es/tin.5 \
364	$(L10NDIR)/es.po \
365	$(L10NDIR)/tin-man.pot
366
367ALL_FILES = $(TOP) $(DOC) $(TOL) $(HFILES) $(CFILES) $(PCRE) $(MISC) $(CAN) $(INTLFILES) $(POFILES) $(L10NFILES)
368
369ALL_DIRS = $(TOPDIR) $(DOCDIR) $(SRCDIR) $(INCDIR) $(PCREDIR) $(PCREDIR)/doc $(PCREDIR)/testdata $(CANDIR) $(CANDIR)/include $(CANDIR)/src $(CANDIR)/test $(CANDIR)/util/ $(INTLDIR) $(PODIR) $(L10NDIR) $(L10NDIR)/de $(L10NDIR)/en_GB
370
371# standard commands
372CD	= cd
373CHMOD	= chmod
374CP	= cp -p
375ECHO	= echo
376LS	= ls
377MAKE	= make
378MV	= mv
379NROFF	= groff -Tascii
380RM	= rm
381SHELL	= /bin/sh
382TAR	= tar
383GZIP	= gzip
384BZIP2	= bzip2
385XZ	= xz
386WC	= wc
387SED	= sed
388TR	= tr
389TEST	= test
390PO4A	= po4a
391
392all:
393	@$(ECHO) "Top level Makefile for the $(PROJECT) v$(VER) Usenet newsreader."
394	@$(ECHO) " "
395	@$(ECHO) "To compile the source code type 'make build' or change to the"
396	@$(ECHO) "source directory by typing 'cd src' and then type 'make'."
397	@$(ECHO) " "
398	@$(ECHO) "This Makefile offers the following general purpose options:"
399	@$(ECHO) " "
400	@$(ECHO) "    make build           [ Compile $(PROJECT) ]"
401	@$(ECHO) "    make clean           [ Delete all object and backup files ]"
402	@$(ECHO) "    make dist            [ Create a gzipped & bzipped distribution tar file ]"
403	@$(ECHO) "    make distclean       [ Delete all config, object and backup files ]"
404	@$(ECHO) "    make install         [ Install the binary and the manual page ]"
405	@$(ECHO) "    make install_sysdefs [ Install the system-wide-defaults file ]"
406	@$(ECHO) "    make manpage         [ Create nroff version of manual page ]"
407	@$(ECHO) "    make manifest        [ Create MANIFEST ]"
408	@$(ECHO) " "
409
410build:
411	@-if $(TEST) -r $(SRCDIR)/Makefile ; then $(CD) $(SRCDIR) && $(MAKE) ; else $(ECHO) "You need to run configure first - didn't you read README?" ; fi
412
413install:
414	@$(CD) $(SRCDIR) && $(MAKE) install
415
416install_sysdefs:
417	@$(CD) $(SRCDIR) && $(MAKE) install_sysdefs
418
419clean:
420	@-$(RM) -f \
421	*~ \
422	$(DOCDIR)/*~ \
423	$(INCDIR)/*~ \
424	$(SRCDIR)/*~ \
425	$(PCREDIR)/*~
426	@-if $(TEST) -r $(PCREDIR)/Makefile ; then $(CD) $(PCREDIR) && $(MAKE) clean ; fi
427	@-if $(TEST) -r $(INTLDIR)/Makefile ; then $(CD) $(INTLDIR) && $(MAKE) clean ; fi
428	@-if $(TEST) -r $(PODIR)/Makefile ; then $(CD) $(PODIR) && $(MAKE) clean ; fi
429	@-if $(TEST) -r $(SRCDIR)/Makefile ; then $(CD) $(SRCDIR) && $(MAKE) clean ; fi
430	@-if $(TEST) -r $(CANDIR)/Makefile ; then $(CD) $(CANDIR) && $(MAKE) clean ; fi
431
432man:
433	@$(MAKE) manpage
434
435manpage:
436	@$(ECHO) "Creating $(NROFF) man page for $(EXE)-$(VER)..."
437	@$(NROFF) -man $(DOCDIR)/tin.1 > $(DOCDIR)/$(EXE).nrf
438
439# Use 2 passes for creating MANIFEST because its size changes (it's not likely
440# that we'll need 3 passes, since that'll happen only when the grand total's
441# digits change).
442manifest:
443	@$(ECHO) "Creating MANIFEST..."
444	@$(ECHO) "MANIFEST for $(PROJECT)-$(VER) (`date`)" > MANIFEST.tmp
445	@$(ECHO) "----------------------------------------------------" >> MANIFEST.tmp
446	@$(CP) MANIFEST.tmp MANIFEST
447	@$(WC) -c $(ALL_FILES) >> MANIFEST
448	@$(WC) -c $(ALL_FILES) >> MANIFEST.tmp
449	@$(MV) MANIFEST.tmp MANIFEST
450
451chmod:
452	@$(ECHO) "Setting the file permissions..."
453	@$(CHMOD) 644 $(ALL_FILES)
454	@$(CHMOD) 755 \
455	$(ALL_DIRS) \
456	$(TOPDIR)/conf-tin \
457	$(TOPDIR)/config.guess \
458	$(TOPDIR)/config.sub \
459	$(TOPDIR)/configure \
460	$(TOPDIR)/install-sh \
461	$(TOLDIR)/expiretover \
462	$(TOLDIR)/metamutt \
463	$(TOLDIR)/opt-case.pl \
464	$(TOLDIR)/tinlock \
465	$(TOLDIR)/tinews.pl \
466	$(TOLDIR)/url_handler.pl \
467	$(TOLDIR)/url_handler.sh \
468	$(TOLDIR)/w2r.pl \
469	$(PCREDIR)/perltest \
470	$(PCREDIR)/version.sh
471
472tar:
473	@$(ECHO) "Generating gzipped tar file..."
474	@-$(RM) -f $(PROJECT)-$(VER).tar.gz
475	@$(TAR) cvf $(PROJECT)-$(VER).tar -C ../ \
476	`$(ECHO) $(ALL_FILES) \
477	| $(TR) -s '[[:space:]]' "[\012*]" \
478	| $(SED) 's,^\./,$(PROJECT)-$(VER)/,' \
479	| $(TR) "[\012]" " "`
480	@$(GZIP) -9 $(PROJECT)-$(VER).tar
481	@$(CHMOD) 644 $(PROJECT)-$(VER).tar.gz
482	@$(LS) -l $(PROJECT)-$(VER).tar.gz
483
484bzip2:
485	@$(ECHO) "Generating bzipped tar file..."
486	@-$(RM) -f $(PROJECT)-$(VER).tar.bz2
487	@$(TAR) cvf $(PROJECT)-$(VER).tar -C ../ \
488	`$(ECHO) $(ALL_FILES) \
489	| $(TR) -s '[[:space:]]' "[\012*]" \
490	| $(SED) 's,^\./,$(PROJECT)-$(VER)/,' \
491	| $(TR) "[\012]" " "`
492	@$(BZIP2) -9 $(PROJECT)-$(VER).tar
493	@$(CHMOD) 644 $(PROJECT)-$(VER).tar.bz2
494	@$(LS) -l $(PROJECT)-$(VER).tar.bz2
495
496xz:
497	@$(ECHO) "Generating xz compressd tar file..."
498	@-$(RM) -f $(PROJECT)-$(VER).tar.xz
499	@$(TAR) cvf $(PROJECT)-$(VER).tar -C ../ \
500	`$(ECHO) $(ALL_FILES) \
501	| $(TR) -s '[[:space:]]' "[\012*]" \
502	| $(SED) 's,^\./,$(PROJECT)-$(VER)/,' \
503	| $(TR) "[\012]" " "`
504	@$(XZ) -z -F xz -9e $(PROJECT)-$(VER).tar
505	@$(CHMOD) 644 $(PROJECT)-$(VER).tar.xz
506	@$(LS) -l $(PROJECT)-$(VER).tar.xz
507
508#
509# I know it's ugly, but it works
510#
511name:
512	@DATE=`date +%Y%m%d` ; NAME=`basename \`pwd\`` ;\
513	if $(TEST) $$NAME != "$(PROJECT)-$(VER)" ; then \
514		$(MV) ../$$NAME ../$(PROJECT)-$(VER) ;\
515	fi ;\
516	$(SED) "s,^PACKAGE=[[:print:]]*,PACKAGE=$(PROJECT)," ./configure.in > ./configure.in.out && \
517	$(SED) "s,^VERSION=[[:print:]]*,VERSION=$(VER)," ./configure.in.out > ./configure.in && \
518	$(RM) ./configure.in.out ;\
519	$(SED) "s,^DVER[[:space:]]*=[[:print:]]*,DVER	= $$DATE," ./Makefile > ./Makefile.tmp && \
520	$(MV) ./Makefile.tmp ./Makefile ;\
521	$(SED) "s,RELEASEDATE[[:space:]]*\"[[:print:]]*\",RELEASEDATE	\"$$DATE\"," $(INCDIR)/version.h > $(INCDIR)/version.h.tmp && \
522	$(SED) "s, VERSION[[:space:]]*\"[[:print:]]*\", VERSION		\"$(VER)\"," $(INCDIR)/version.h.tmp > $(INCDIR)/version.h && \
523	$(RM) $(INCDIR)/version.h.tmp ;\
524	$(MAKE) configure
525
526dist:
527	@$(MAKE) name
528	@-if $(TEST) -r $(PODIR)/Makefile ; then $(CD) $(PODIR) && $(MAKE) ; fi
529	@$(MAKE) manifest
530	@$(MAKE) chmod
531	@$(MAKE) tar
532	@$(MAKE) bzip2
533	@$(MAKE) xz
534
535version:
536	@$(ECHO) "$(PROJECT)-$(VER)"
537
538distclean:
539	@-$(MAKE) clean
540	@-if $(TEST) -r $(PODIR)/Makefile ; then $(CD) $(PODIR) && $(MAKE) distclean ; fi
541	@-if $(TEST) -r $(INTLDIR)/Makefile ; then $(CD) $(INTLDIR) && $(MAKE) distclean ; fi
542	@-if $(TEST) -r $(PCREDIR)/Makefile ; then $(CD) $(PCREDIR) && $(MAKE) distclean ; fi
543	@-if $(TEST) -r $(CANDIR)/Makefile ; then $(CD) $(CANDIR) && $(MAKE) distclean ; fi
544	@-$(RM) -f \
545	$(TOPDIR)/config.cache \
546	$(TOPDIR)/config.log \
547	$(TOPDIR)/config.status \
548	$(TOPDIR)/td-conf.out \
549	$(TOPDIR)/CPPCHECK \
550	$(INCDIR)/autoconf.h \
551	$(SRCDIR)/Makefile \
552	$(PCREDIR)/Makefile \
553	$(CANDIR)/Makefile \
554	$(INTLDIR)/po2tbl.sed \
555	$(PROJECT)-$(VER).tar.gz \
556	$(PROJECT)-$(VER).tar.bz2 \
557	$(PROJECT)-$(VER).tar.xz \
558	$(PODIR)/messages.mo
559
560configure: configure.in aclocal.m4
561	autoconf
562
563config.status: configure
564	$(SHELL) $(TOPDIR)/config.status --recheck
565
566po4a:
567	@$(PO4A) po4a.conf
568
569cppcheck: FORCE
570	@-if $(TEST) ! -r $(SRCDIR)/options_menu.h -o ! -r $(SRCDIR)/tincfg.h ; then $(MAKE) build ; fi
571	@-if $(TEST) -r $(SRCDIR)/options_menu.h -a -r $(SRCDIR)/tincfg.h ; then cppcheck -f -v -I $(INCDIR) -I $(CANDIR) -I $(PCREDIR) -I $(SRCDIR) $(SRCDIR) 1>/dev/null 2>$(TOPDIR)/CPPCHECK ; fi
572
573FORCE:
574