1## Our Makefile.am template for Makefile.in (and, eventually, Makefile)
2##
3## Process this with automake to generate Makefile.in
4## Lists are in `LC_ALL=C sort' order.
5##
6
7## We set this to get our autoconf macros in the m4 directory
8ACLOCAL_AMFLAGS = -I m4
9
10AM_YFLAGS = -d
11
12##
13## This is the default set of libraries all programs link against.  Some
14## programs add extra libraries to this set, so they override this with
15## a program-specific LDADD variable.  Note that in all of the cases today
16## LDADD is included in the program-specific LDADD since we want to add
17## to this list of libraries, not replace it.
18##
19LDADD = sbr/libmh.a
20
21##
22## These are used to create the default mhn.defaults config file
23## MHNSEARCHPATH is the default path to look for MIME content handlers
24## MHNSEARCHPROG is the script used to find the support programs
25##
26MHNSEARCHPATH = "$(PATH)"
27MHNSEARCHPROG = $(srcdir)/etc/mhn.find.sh
28
29##
30## Install config files and back-end programs in our own subdirecctories.
31##
32nmhetcdir  = @sysconfdir@/nmh
33nmhlibexecdir = @libexecdir@/nmh
34
35##
36## nmh _does_ have a test suite!
37##
38TESTS_ENVIRONMENT = MH_OBJ_DIR="@abs_builddir@" \
39		    MH_VERSION="$(VERSION)" \
40		    OAUTH_SUPPORT='@OAUTH_SUPPORT@' \
41		    CURL_USER_AGENT='@CURL_USER_AGENT@' \
42		    MH_TEST_DIR=`cd "@abs_builddir@" && pwd -P`/test/testdir \
43		    nmhlibexecdir="$(nmhlibexecdir)" bindir="$(bindir)" \
44		    mandir="$(mandir)" nmhetcdir="$(nmhetcdir)" \
45		    nmhetcdirinst="@nmhetcdirinst@$(nmhetcdir)" \
46		    supported_locks="$(supported_locks)" \
47		    default_locking="${default_locking}" \
48		    MULTIBYTE_ENABLED=$(MULTIBYTE_ENABLED) \
49		    ICONV_ENABLED=$(ICONV_ENABLED) \
50		    $(TESTS_SHELL) ## Keep at end of TESTS_ENVIRONMENT.
51
52##
53## Important note: the "cleanup" test should always be last
54##
55TESTS = \
56    test/ali/test-ali \
57    test/anno/test-anno \
58    test/bad-input/test-header \
59    test/burst/test-burst \
60    test/burst/test-burst-mime \
61    test/comp/test-comp-format \
62    test/dist/test-dist \
63    test/folder/test-coverage \
64    test/folder/test-create \
65    test/folder/test-nocreate \
66    test/folder/test-packf \
67    test/folder/test-recurse \
68    test/folder/test-sortm \
69    test/folder/test-total \
70    test/format/test-ap \
71    test/format/test-curses \
72    test/format/test-dp \
73    test/format/test-fmtdump \
74    test/format/test-fmttest \
75    test/format/test-functions \
76    test/format/test-localmbox \
77    test/format/test-myhost \
78    test/format/test-mymbox \
79    test/format/test-myname \
80    test/format/test-nullstr \
81    test/format/test-rightjustify \
82    test/format/test-unquote \
83    test/forw/test-forw-coverage \
84    test/forw/test-forw-digest \
85    test/forw/test-forw-format \
86    test/inc/test-deb359167 \
87    test/inc/test-eom-align \
88    test/inc/test-inc-scanout \
89    test/inc/test-msgchk \
90    test/inc/test-pop \
91    test/install-mh/test-install-mh \
92    test/install-mh/test-version-check \
93    test/locking/test-datalocking \
94    test/locking/test-spoollocking \
95    test/manpages/test-manpages \
96    test/mhbuild/test-attach \
97    test/mhbuild/test-cte \
98    test/mhbuild/test-ext-params \
99    test/mhbuild/test-forw \
100    test/mhbuild/test-header-encode \
101    test/mhbuild/test-mhbuild \
102    test/mhbuild/test-utf8-body \
103    test/mhfixmsg/test-mhfixmsg \
104    test/mhical/test-mhical \
105    test/mhl/test-mhl-flags \
106    test/mhl/test-rfc6532 \
107    test/mhlist/test-ext-params \
108    test/mhlist/test-mhlist \
109    test/mhmail/test-mhmail \
110    test/mhparam/test-mhparam \
111    test/mhpath/test-mhpath \
112    test/mhshow/test-binary \
113    test/mhshow/test-charset \
114    test/mhshow/test-cte-binary \
115    test/mhshow/test-msg-buffer-boundaries \
116    test/mhshow/test-qp \
117    test/mhshow/test-subpart \
118    test/mhshow/test-textcharset \
119    test/mhstore/test-mhstore \
120    test/mkstemp/test-mkstemp \
121    test/new/test-basic \
122    test/oauth/test-inc \
123    test/oauth/test-mhlogin \
124    test/oauth/test-mhparam \
125    test/oauth/test-send \
126    test/oauth/test-sendfrom \
127    test/oauth/test-share \
128    test/pick/test-pick \
129    test/pick/test-stderr \
130    test/post/test-messageid \
131    test/post/test-mts \
132    test/post/test-post-aliases \
133    test/post/test-post-basic \
134    test/post/test-post-bcc \
135    test/post/test-post-dcc \
136    test/post/test-post-envelope \
137    test/post/test-post-fcc \
138    test/post/test-post-group \
139    test/post/test-post-multifrom \
140    test/post/test-post-multiple \
141    test/post/test-rfc6531 \
142    test/post/test-sendfiles \
143    test/prompter/test-prompter \
144    test/rcv/test-rcvdist \
145    test/rcv/test-rcvpack \
146    test/rcv/test-rcvstore \
147    test/rcv/test-rcvtty \
148    test/refile/test-refile \
149    test/repl/test-convert \
150    test/repl/test-if-str \
151    test/repl/test-multicomp \
152    test/repl/test-repl \
153    test/repl/test-trailing-newline \
154    test/scan/test-header-parsing \
155    test/scan/test-scan \
156    test/scan/test-scan-multibyte \
157    test/send/test-sendfrom \
158    test/sequences/test-flist \
159    test/sequences/test-mark \
160    test/sequences/test-out-of-range \
161    test/show/test-show \
162    test/slocal/test-slocal \
163    test/whatnow/test-attach-detach \
164    test/whatnow/test-cd \
165    test/whatnow/test-ls \
166    test/whom/test-whom \
167    test/cleanup ## The "cleanup" test should always be last.
168
169XFAIL_TESTS =
170
171check_SCRIPTS = test/common.sh
172
173check_PROGRAMS = \
174    test/fakehttp \
175    test/fakepop \
176    test/fakesmtp \
177    test/getcanon \
178    test/getcwidth \
179    test/getfullname \
180    test/runpty \
181    #
182
183## So they can be built without builing the `check' target.
184check-programs: $(check_PROGRAMS)
185
186## The location of installed nmhetcdir is, for all purposes except
187## distcheck, $nmhetcdir.  For distcheck, prepend $MH_INST_DIR (from
188## test/common.sh.in), which is based on $MH_TEST_DIR (from
189## $TESTS_ENVIRONMENT).
190AM_DISTCHECK_CONFIGURE_FLAGS = DISABLE_SETGID_MAIL=1 \
191			NMHETCDIRINST='$${abs_builddir}/test/testdir/inst'
192
193##
194## Stuff that should be cleaned via "make clean"
195##
196CLEANFILES = \
197    $(man_MANS) \
198    *.plist \
199    config/version.c \
200    etc/bash_completion_nmh \
201    etc/mhn.defaults \
202    etc/mts.conf \
203    man/man.sed \
204    man/mh-chart.man
205    #
206
207clean-local:
208	@rm -rf RPM a.out.dSYM uip/a.out.dSYM
209	@rm -rf test/testdir
210
211##
212## Stuff that should be cleaned via "make maintainer-clean"
213##
214MAINTAINERCLEANFILES = \
215    *.plist \
216    atags \
217    cscope.files \
218    cscope.in.out \
219    cscope.out \
220    cscope.po.out \
221    #
222
223##
224## And our own superclean, to get everything left by maintainer-clean.
225##
226SUPERCLEANFILES = \
227    ChangeLog \
228    Makefile.in \
229    aclocal.m4 \
230    compile \
231    config.guess \
232    config.h.in \
233    config.h.in~ \
234    config.sub \
235    configure \
236    depcomp \
237    install-sh \
238    missing \
239    nmh-*.tar.gz \
240    nmh-*.tar.gz.sig \
241    test-driver \
242    ylwrap \
243    #
244
245superclean: maintainer-clean
246	@rm -f $(SUPERCLEANFILES)
247.PHONY: superclean
248
249##
250## This is a list of all programs that get installed in the "bin" directory
251## Note that primary difference between "PROGRAMS" and "SCRIPTS" is that
252## the latter do not have $(EXEEXT) added on the end.
253##
254bin_PROGRAMS = \
255    uip/ali \
256    uip/anno \
257    uip/burst \
258    uip/comp \
259    uip/dist \
260    uip/flist \
261    uip/fmttest \
262    uip/folder \
263    uip/forw \
264    uip/inc \
265    uip/install-mh \
266    uip/mark \
267    uip/mhbuild \
268    uip/mhfixmsg \
269    uip/mhical \
270    uip/mhlist \
271    uip/mhlogin \
272    uip/mhn \
273    uip/mhparam \
274    uip/mhpath \
275    uip/mhshow \
276    uip/mhstore \
277    uip/msgchk \
278    uip/new \
279    uip/packf \
280    uip/pick \
281    uip/prompter \
282    uip/refile \
283    uip/repl \
284    uip/rmf \
285    uip/rmm \
286    uip/scan \
287    uip/send \
288    uip/show \
289    uip/sortm \
290    uip/whatnow \
291    uip/whom \
292    #
293
294bin_SCRIPTS = \
295    etc/sendfiles \
296    uip/mhmail \
297    #
298
299##
300## This is all programs that get installed in the "libexec/nmh" directory
301##
302nmhlibexec_PROGRAMS = \
303    uip/ap \
304    uip/dp \
305    uip/fmtdump \
306    uip/mhl \
307    uip/mkstemp \
308    uip/post \
309    uip/rcvdist \
310    uip/rcvpack \
311    uip/rcvstore \
312    uip/rcvtty \
313    uip/slocal \
314    uip/viamail \
315    #
316
317nmhlibexec_SCRIPTS = uip/spost
318
319##
320## Internal libraries that we create as part of the build process
321## but do not install
322##
323noinst_LIBRARIES = \
324    mts/libmts.a \
325    sbr/libmh.a \
326    #
327
328##
329## These are all of our header files.  Right now we don't install any of
330## them, but that might change in the future.
331##
332noinst_HEADERS = \
333    h/addrsbr.h \
334    h/aliasbr.h \
335    h/crawl_folders.h \
336    h/dropsbr.h \
337    h/fmt_compile.h \
338    h/fmt_scan.h \
339    h/icalendar.h \
340    h/md5.h \
341    h/mf.h \
342    h/mh.h \
343    h/mhcachesbr.h \
344    h/mhparse.h \
345    h/mime.h \
346    h/mts.h \
347    h/netsec.h \
348    h/nmh.h \
349    h/oauth.h \
350    h/picksbr.h \
351    h/popsbr.h \
352    h/prototypes.h \
353    h/rcvmail.h \
354    h/scansbr.h \
355    h/signals.h \
356    h/tws.h \
357    h/utils.h \
358    mts/smtp/smtp.h \
359    sbr/ctype-checked.h \
360    sbr/lock_file.h \
361    sbr/m_maildir.h \
362    sbr/m_mktemp.h \
363    sbr/m_popen.h \
364    sbr/m_rand.h \
365    sbr/makedir.h \
366    sbr/message_id.h \
367    sbr/mime_type.h \
368    sbr/unquote.h \
369    thirdparty/jsmn/jsmn.h \
370    uip/mhfree.h \
371    uip/mhoutsbr.h \
372    uip/mhshowsbr.h \
373    #
374
375##
376## Extra files we need to install in various places
377##
378dist_nmhetc_SCRIPTS = etc/rmmproc.messageid
379dist_nmhetc_DATA = \
380    etc/MailAliases \
381    etc/components \
382    etc/digestcomps \
383    etc/distcomps \
384    etc/forwcomps \
385    etc/mhical.12hour \
386    etc/mhical.24hour \
387    etc/mhl.body \
388    etc/mhl.digest \
389    etc/mhl.format \
390    etc/mhl.forward \
391    etc/mhl.headers \
392    etc/mhl.reply \
393    etc/mhl.replywithoutbody \
394    etc/mhshow.marker \
395    etc/rcvdistcomps \
396    etc/rcvdistcomps.outbox \
397    etc/replcomps \
398    etc/replgroupcomps \
399    etc/scan.MMDDYY \
400    etc/scan.YYYYMMDD \
401    etc/scan.curses \
402    etc/scan.default \
403    etc/scan.highlighted \
404    etc/scan.mailx \
405    etc/scan.nomime \
406    etc/scan.size \
407    etc/scan.time \
408    etc/scan.timely \
409    etc/scan.unseen \
410    #
411
412##
413## The same as above, but we don't include these in the distribution
414## (because they're generated at compile time)
415##
416nmhetc_DATA = \
417    etc/bash_completion_nmh \
418    etc/mhn.defaults \
419    etc/mts.conf \
420    #
421
422##
423## Documentation that gets installed in docdir
424##
425dist_doc_DATA = \
426    COPYRIGHT \
427    INSTALL \
428    NEWS \
429    README \
430    VERSION \
431    docs/COMPLETION-TCSH \
432    docs/COMPLETION-ZSH \
433    docs/DIFFERENCES \
434    docs/FAQ \
435    docs/MAIL.FILTERING \
436    docs/MAILING-LISTS \
437    docs/README-ATTACHMENTS \
438    docs/README-HOOKS \
439    docs/README-components \
440    docs/README.SASL \
441    docs/README.about \
442    docs/README.developers \
443    docs/README.manpages \
444    docs/TODO \
445    #
446
447##
448## Contribs that get installed in docdir/contrib/
449##
450docs_contribdir = $(docdir)/contrib
451dist_docs_contrib_SCRIPTS = \
452    docs/contrib/localpostproc \
453    docs/contrib/ml \
454    docs/contrib/replyfilter \
455    docs/contrib/vpick \
456    #
457
458dist_docs_contrib_DATA = docs/contrib/replaliases
459
460##
461## Our man pages
462##
463man_MANS = \
464    man/MH.7 \
465    man/ali.1 \
466    man/anno.1 \
467    man/ap.8 \
468    man/burst.1 \
469    man/comp.1 \
470    man/dist.1 \
471    man/dp.8 \
472    man/flist.1 \
473    man/flists.1 \
474    man/fmtdump.8 \
475    man/fmttest.1 \
476    man/fnext.1 \
477    man/folder.1 \
478    man/folders.1 \
479    man/forw.1 \
480    man/fprev.1 \
481    man/inc.1 \
482    man/install-mh.1 \
483    man/mark.1 \
484    man/mh-alias.5 \
485    man/mh-chart.7 \
486    man/mh-draft.5 \
487    man/mh-folders.5 \
488    man/mh-format.5 \
489    man/mh-mail.5 \
490    man/mh-mime.7 \
491    man/mh-mkstemp.1 \
492    man/mh-profile.5 \
493    man/mh-sequence.5 \
494    man/mh-tailor.5 \
495    man/mh_profile.5 \
496    man/mhbuild.1 \
497    man/mhfixmsg.1 \
498    man/mhical.1 \
499    man/mhl.1 \
500    man/mhlist.1 \
501    man/mhlogin.1 \
502    man/mhmail.1 \
503    man/mhn.1 \
504    man/mhparam.1 \
505    man/mhpath.1 \
506    man/mhshow.1 \
507    man/mhstore.1 \
508    man/msgchk.1 \
509    man/mts.conf.5 \
510    man/new.1 \
511    man/next.1 \
512    man/nmh.7 \
513    man/packf.1 \
514    man/pick.1 \
515    man/post.8 \
516    man/prev.1 \
517    man/prompter.1 \
518    man/rcvdist.1 \
519    man/rcvpack.1 \
520    man/rcvstore.1 \
521    man/rcvtty.1 \
522    man/refile.1 \
523    man/repl.1 \
524    man/rmf.1 \
525    man/rmm.1 \
526    man/scan.1 \
527    man/send.1 \
528    man/sendfiles.1 \
529    man/show.1 \
530    man/slocal.1 \
531    man/sortm.1 \
532    man/unseen.1 \
533    man/whatnow.1 \
534    man/whom.1 \
535    #
536
537##
538## Sources for our man pages
539##
540man_SRCS = \
541    man/MH.man \
542    man/ali.man \
543    man/anno.man \
544    man/ap.man \
545    man/burst.man \
546    man/comp.man \
547    man/dist.man \
548    man/dp.man \
549    man/flist.man \
550    man/flists.man \
551    man/fmtdump.man \
552    man/fmttest.man \
553    man/fnext.man \
554    man/folder.man \
555    man/folders.man \
556    man/forw.man \
557    man/fprev.man \
558    man/inc.man \
559    man/install-mh.man \
560    man/mark.man \
561    man/mh-alias.man \
562    man/mh-chart-gen.sh \
563    man/mh-draft.man \
564    man/mh-folders.man \
565    man/mh-format.man \
566    man/mh-mail.man \
567    man/mh-mime.man \
568    man/mh-mkstemp.man \
569    man/mh-profile.man \
570    man/mh-sequence.man \
571    man/mh-tailor.man \
572    man/mh_profile.man \
573    man/mhbuild.man \
574    man/mhfixmsg.man \
575    man/mhical.man \
576    man/mhl.man \
577    man/mhlist.man \
578    man/mhlogin.man \
579    man/mhmail.man \
580    man/mhn.man \
581    man/mhparam.man \
582    man/mhpath.man \
583    man/mhshow.man \
584    man/mhstore.man \
585    man/msgchk.man \
586    man/mts.conf.man \
587    man/new.man \
588    man/next.man \
589    man/nmh.man \
590    man/packf.man \
591    man/pick.man \
592    man/post.man \
593    man/prev.man \
594    man/prompter.man \
595    man/rcvdist.man \
596    man/rcvpack.man \
597    man/rcvstore.man \
598    man/rcvtty.man \
599    man/refile.man \
600    man/repl.man \
601    man/rmf.man \
602    man/rmm.man \
603    man/scan.man \
604    man/send.man \
605    man/sendfiles.man \
606    man/show.man \
607    man/slocal.man \
608    man/sortm.man \
609    man/unseen.man \
610    man/whatnow.man \
611    man/whom.man \
612    #
613
614##
615## Files we need to include in the distribution which aren't found by
616## Automake using the automatic rules
617##
618EXTRA_DIST = \
619    $(MHNSEARCHPROG) \
620    $(TESTS) \
621    $(man_SRCS) \
622    DATE \
623    MACHINES \
624    SPECS/nmh.cygport \
625    SPECS/nmh.spec \
626    autogen.sh \
627    build_nmh \
628    config/version.sh \
629    docs/ChangeLog_MH-3_to_MH-6.6 \
630    docs/ChangeLog_MH-6.7.0_to_MH-6.8.4.html \
631    etc/bash_completion_nmh-gen \
632    etc/mhn.defaults.sh \
633    etc/mts.conf.in \
634    etc/sendfiles \
635    sbr/icalparse.h \
636    test/README \
637    test/fakesendmail \
638    test/inc/deb359167.mbox \
639    test/inc/filler.txt \
640    test/inc/fromline.txt \
641    test/inc/md5sums \
642    test/inc/msgheader.txt \
643    test/mhbuild/nulls \
644    test/mhbuild/somebinary \
645    test/mhbuild/textplain \
646    test/mhbuild/tiny.jpg \
647    test/mhmail/attachment.txt \
648    test/oauth/common.sh \
649    test/post/test-post-common.sh \
650    test/send/README \
651    test/valgrind.supp \
652    uip/mhmail \
653    #
654
655##
656## These are all of the definitions for each of the programs listed above.
657## They describe the source files that make up the programs and any particular
658## overrides that are used to select different library options from the
659## default.
660##
661POSTLINK = @POSTLINK@
662
663uip_ali_SOURCES = uip/ali.c uip/aliasbr.c
664uip_ali_LDADD = $(LDADD) $(POSTLINK)
665
666uip_anno_SOURCES = uip/anno.c uip/annosbr.c
667uip_anno_LDADD = $(LDADD) $(POSTLINK)
668
669uip_burst_SOURCES = uip/burst.c uip/mhparse.c uip/mhmisc.c uip/mhfree.c \
670		    uip/mhcachesbr.c
671uip_burst_LDADD = $(LDADD) $(ICONVLIB) $(POSTLINK)
672
673uip_comp_SOURCES = uip/comp.c uip/whatnowproc.c uip/whatnowsbr.c uip/sendsbr.c \
674		   uip/annosbr.c uip/distsbr.c
675uip_comp_LDADD = $(LDADD) $(READLINELIB) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
676
677uip_dist_SOURCES = uip/dist.c uip/whatnowproc.c uip/whatnowsbr.c uip/sendsbr.c \
678		   uip/annosbr.c uip/distsbr.c uip/forwsbr.c
679uip_dist_LDADD = $(LDADD) $(READLINELIB) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
680
681uip_flist_SOURCES = uip/flist.c
682uip_flist_LDADD = $(LDADD) $(POSTLINK)
683
684uip_folder_SOURCES = uip/folder.c
685uip_folder_LDADD = $(LDADD) $(POSTLINK)
686
687uip_forw_SOURCES = uip/forw.c uip/whatnowproc.c uip/whatnowsbr.c uip/sendsbr.c \
688		   uip/annosbr.c uip/distsbr.c uip/forwsbr.c
689uip_forw_LDADD = $(LDADD) $(READLINELIB) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
690
691uip_inc_SOURCES = uip/inc.c uip/scansbr.c uip/dropsbr.c uip/popsbr.c
692uip_inc_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(SASLLIB) $(CURLLIB) \
693		$(TLSLIB) $(POSTLINK)
694
695uip_install_mh_SOURCES = uip/install-mh.c
696uip_install_mh_LDADD = $(LDADD) $(POSTLINK)
697
698uip_mark_SOURCES = uip/mark.c
699uip_mark_LDADD = $(LDADD) $(POSTLINK)
700
701uip_mhbuild_SOURCES = uip/mhbuild.c uip/mhbuildsbr.c uip/mhcachesbr.c \
702		      uip/mhlistsbr.c uip/mhoutsbr.c uip/mhmisc.c  \
703		      uip/mhfree.c uip/mhparse.c \
704		      uip/mhstoresbr.c uip/mhshowsbr.c
705uip_mhbuild_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
706
707uip_mhfixmsg_SOURCES = uip/mhfixmsg.c uip/mhparse.c uip/mhcachesbr.c \
708		       uip/mhoutsbr.c uip/mhmisc.c uip/mhfree.c \
709		       uip/mhshowsbr.c uip/mhlistsbr.c
710uip_mhfixmsg_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
711
712uip_mhical_SOURCES = uip/mhical.c
713uip_mhical_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
714
715uip_mhlist_SOURCES = uip/mhlist.c uip/mhparse.c uip/mhcachesbr.c \
716		     uip/mhlistsbr.c uip/mhmisc.c uip/mhfree.c
717uip_mhlist_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
718
719uip_mhn_SOURCES = uip/mhn.c uip/mhparse.c uip/mhcachesbr.c uip/mhshowsbr.c \
720		  uip/mhlistsbr.c uip/mhstoresbr.c uip/mhmisc.c uip/mhfree.c
721uip_mhn_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
722
723uip_mhparam_SOURCES = uip/mhparam.c
724uip_mhparam_LDADD = $(LDADD) $(POSTLINK)
725
726uip_mhpath_SOURCES = uip/mhpath.c
727uip_mhpath_LDADD = $(LDADD) $(POSTLINK)
728
729uip_mhshow_SOURCES = uip/mhshow.c uip/mhparse.c uip/mhcachesbr.c \
730		     uip/mhshowsbr.c uip/mhlistsbr.c uip/mhmisc.c \
731		     uip/mhfree.c
732uip_mhshow_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
733
734uip_mhstore_SOURCES = uip/mhstore.c uip/mhparse.c uip/mhcachesbr.c \
735		      uip/mhshowsbr.c uip/mhlistsbr.c uip/mhstoresbr.c \
736		      uip/mhmisc.c uip/mhfree.c
737uip_mhstore_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
738
739uip_msgchk_SOURCES = uip/msgchk.c uip/popsbr.c
740uip_msgchk_LDADD = $(LDADD) $(SASLLIB) $(CURLLIB) $(TLSLIB) $(POSTLINK)
741
742uip_new_SOURCES = uip/new.c
743uip_new_LDADD = $(LDADD) $(POSTLINK)
744
745uip_packf_SOURCES = uip/packf.c uip/dropsbr.c
746uip_packf_LDADD = $(LDADD) $(POSTLINK)
747
748uip_pick_SOURCES = uip/pick.c uip/picksbr.c
749uip_pick_LDADD = $(LDADD) $(ICONVLIB) $(POSTLINK)
750
751uip_prompter_SOURCES = uip/prompter.c
752uip_prompter_LDADD = $(LDADD) $(POSTLINK)
753
754uip_refile_SOURCES = uip/refile.c
755uip_refile_LDADD = $(LDADD) $(POSTLINK)
756
757uip_repl_SOURCES = uip/repl.c uip/replsbr.c uip/whatnowproc.c uip/whatnowsbr.c \
758		   uip/sendsbr.c uip/annosbr.c uip/distsbr.c
759uip_repl_LDADD = $(LDADD) $(READLINELIB) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
760
761uip_rmf_SOURCES = uip/rmf.c
762uip_rmf_LDADD = $(LDADD) $(POSTLINK)
763
764uip_rmm_SOURCES = uip/rmm.c
765uip_rmm_LDADD = $(LDADD) $(POSTLINK)
766
767uip_scan_SOURCES = uip/scan.c uip/scansbr.c
768uip_scan_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
769
770uip_send_SOURCES = uip/send.c uip/sendsbr.c uip/annosbr.c \
771		   uip/distsbr.c
772uip_send_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
773
774uip_show_SOURCES = uip/show.c uip/mhlsbr.c
775uip_show_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
776
777uip_sortm_SOURCES = uip/sortm.c
778uip_sortm_LDADD = $(LDADD) $(POSTLINK)
779
780uip_whatnow_SOURCES = uip/whatnow.c uip/whatnowsbr.c uip/sendsbr.c \
781		      uip/annosbr.c uip/distsbr.c
782uip_whatnow_LDADD = $(LDADD) $(READLINELIB) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
783
784uip_whom_SOURCES = uip/whom.c uip/distsbr.c
785uip_whom_LDADD = $(LDADD) $(POSTLINK)
786
787##
788## Program definitions for all utilities that end up in $(nmhlibexecdir)
789##
790
791uip_ap_SOURCES = uip/ap.c
792uip_ap_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
793
794uip_dp_SOURCES = uip/dp.c
795uip_dp_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
796
797uip_fmtdump_SOURCES = uip/fmtdump.c
798uip_fmtdump_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
799
800uip_fmttest_SOURCES = uip/fmttest.c
801uip_fmttest_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
802
803uip_mhl_SOURCES = uip/mhl.c uip/mhlsbr.c
804uip_mhl_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
805
806uip_mhlogin_SOURCES = uip/mhlogin.c
807uip_mhlogin_LDADD = mts/libmts.a $(LDADD) $(CURLLIB) $(POSTLINK)
808
809uip_mkstemp_SOURCES = uip/mkstemp.c
810uip_mkstemp_LDADD = $(LDADD) $(POSTLINK)
811
812uip_post_SOURCES = uip/post.c uip/aliasbr.c
813uip_post_LDADD = mts/libmts.a $(LDADD) $(SASLLIB) $(CURLLIB) $(TLSLIB) \
814		 $(POSTLINK)
815
816uip_rcvdist_SOURCES = uip/rcvdist.c uip/distsbr.c
817uip_rcvdist_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
818
819uip_rcvpack_SOURCES = uip/rcvpack.c uip/dropsbr.c
820uip_rcvpack_LDADD = $(LDADD) $(POSTLINK)
821
822uip_rcvstore_SOURCES = uip/rcvstore.c
823uip_rcvstore_LDADD = $(LDADD) $(POSTLINK)
824
825uip_rcvtty_SOURCES = uip/rcvtty.c uip/scansbr.c
826uip_rcvtty_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
827
828uip_slocal_SOURCES = uip/slocal.c uip/aliasbr.c uip/dropsbr.c
829uip_slocal_LDADD = $(LDADD) $(NDBM_LIBS) $(POSTLINK)
830
831uip_viamail_SOURCES = uip/viamail.c uip/mhmisc.c uip/sendsbr.c \
832		      uip/annosbr.c uip/distsbr.c
833uip_viamail_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK)
834
835##
836## Other program definitions
837##
838
839test_getfullname_SOURCES = test/getfullname.c
840test_getfullname_LDADD = $(LDADD) $(POSTLINK)
841
842test_getcanon_SOURCES = test/getcanon.c
843test_getcanon_LDADD = $(POSTLINK)
844
845test_fakepop_SOURCES = test/fakepop.c test/server.c
846test_fakepop_LDADD = $(POSTLINK)
847
848test_fakesmtp_SOURCES = test/fakesmtp.c test/server.c
849test_fakesmtp_LDADD = $(POSTLINK)
850
851test_fakehttp_SOURCES = test/fakehttp.c test/server.c
852test_fakehttp_LDADD = $(LDADD) $(POSTLINK)
853
854test_getcwidth_SOURCES = test/getcwidth.c
855test_getcwidth_LDADD = $(POSTLINK)
856
857test_runpty_SOURCES = test/runpty.c
858test_runpty_LDADD = $(POSTLINK)
859
860##
861## Our rebuild rules for files that aren't built via the normal mechanisms
862##
863
864## Hard-code the config/version.c target, instead of using $@, so this
865## rule works for the distcheck target with Solaris (System V) make.
866## distcheck uses VPATH, causes that make to prepend the VPATH to $@.
867config/version.c: Makefile $(srcdir)/config/version.sh
868	env srcdir="$(srcdir)" sh $(srcdir)/config/version.sh $(VERSION) > ./config/version.c
869
870etc/bash_completion_nmh: $(srcdir)/etc/bash_completion_nmh-gen
871	$(srcdir)/etc/bash_completion_nmh-gen > $@
872
873etc/mts.conf: $(srcdir)/etc/mts.conf.in Makefile
874	@rm -f $@
875	$(SED) -e 's,%mts%,$(MTS),' \
876	       -e 's,%mailspool%,$(mailspool),' \
877	       -e 's,%smtpserver%,$(smtpserver),' \
878	       -e 's,%default_locking%,$(default_locking),' \
879	       -e 's,%supported_locks%,$(supported_locks),' \
880				< $(srcdir)/etc/mts.conf.in > $@
881
882etc/mhn.defaults: $(srcdir)/etc/mhn.defaults.sh $(MHNSEARCHPROG)
883	@rm -f $@
884	$(srcdir)/etc/mhn.defaults.sh $(MHNSEARCHPATH) $(MHNSEARCHPROG) > $@
885
886##
887## Use configure to set up default LN, but through a make variable so
888## that it can be overridden at install time.
889##
890LN = @LN@
891
892##
893## This rule gets called at "make install" time; we use it to create links
894## between different programs.
895##
896install-exec-hook:
897	@rm -f $(DESTDIR)$(bindir)/flists$(EXEEXT)
898	@rm -f $(DESTDIR)$(bindir)/folders$(EXEEXT)
899	@rm -f $(DESTDIR)$(bindir)/fnext$(EXEEXT)
900	@rm -f $(DESTDIR)$(bindir)/fprev$(EXEEXT)
901	@rm -f $(DESTDIR)$(bindir)/unseen$(EXEEXT)
902	@rm -f $(DESTDIR)$(bindir)/prev$(EXEEXT)
903	@rm -f $(DESTDIR)$(bindir)/next$(EXEEXT)
904	$(LN) $(DESTDIR)$(bindir)/flist$(EXEEXT) $(DESTDIR)$(bindir)/flists$(EXEEXT)
905	$(LN) $(DESTDIR)$(bindir)/folder$(EXEEXT) $(DESTDIR)$(bindir)/folders$(EXEEXT)
906	$(LN) $(DESTDIR)$(bindir)/new$(EXEEXT) $(DESTDIR)$(bindir)/fnext$(EXEEXT)
907	$(LN) $(DESTDIR)$(bindir)/new$(EXEEXT) $(DESTDIR)$(bindir)/fprev$(EXEEXT)
908	$(LN) $(DESTDIR)$(bindir)/new$(EXEEXT) $(DESTDIR)$(bindir)/unseen$(EXEEXT)
909	$(LN) $(DESTDIR)$(bindir)/show$(EXEEXT) $(DESTDIR)$(bindir)/prev$(EXEEXT)
910	$(LN) $(DESTDIR)$(bindir)/show$(EXEEXT) $(DESTDIR)$(bindir)/next$(EXEEXT)
911	if test x$(SETGID_MAIL) != x; then \
912		chgrp $(MAIL_SPOOL_GRP) $(DESTDIR)$(bindir)/inc$(EXEEXT) && \
913		chmod 2755 $(DESTDIR)$(bindir)/inc$(EXEEXT); \
914	fi
915
916##
917## Make sure we remove those links at uninstall time
918##
919uninstall-hook:
920	rm -f $(DESTDIR)$(bindir)/flists$(EXEEXT)
921	rm -f $(DESTDIR)$(bindir)/folders$(EXEEXT)
922	rm -f $(DESTDIR)$(bindir)/fnext$(EXEEXT)
923	rm -f $(DESTDIR)$(bindir)/fprev$(EXEEXT)
924	rm -f $(DESTDIR)$(bindir)/unseen$(EXEEXT)
925	rm -f $(DESTDIR)$(bindir)/prev$(EXEEXT)
926	rm -f $(DESTDIR)$(bindir)/next$(EXEEXT)
927
928##
929## Our rules to build our internal libraries (libmh.a, libmts.a)
930##
931sbr_libmh_a_SOURCES = \
932    config/config.c \
933    config/version.c \
934    sbr/addrsbr.c \
935    sbr/ambigsw.c \
936    sbr/arglist.c \
937    sbr/atooi.c \
938    sbr/base64.c \
939    sbr/brkstring.c \
940    sbr/charstring.c \
941    sbr/check_charset.c \
942    sbr/client.c \
943    sbr/closefds.c \
944    sbr/concat.c \
945    sbr/context_del.c \
946    sbr/context_find.c \
947    sbr/context_foil.c \
948    sbr/context_read.c \
949    sbr/context_replace.c \
950    sbr/context_save.c \
951    sbr/copyip.c \
952    sbr/cpydata.c \
953    sbr/cpydgst.c \
954    sbr/crawl_folders.c \
955    sbr/credentials.c \
956    sbr/ctype-checked.c \
957    sbr/datetime.c \
958    sbr/discard.c \
959    sbr/done.c \
960    sbr/dtime.c \
961    sbr/dtimep.l \
962    sbr/encode_rfc2047.c \
963    sbr/error.c \
964    sbr/escape_addresses.c \
965    sbr/ext_hook.c \
966    sbr/fdcompare.c \
967    sbr/fmt_addr.c \
968    sbr/fmt_compile.c \
969    sbr/fmt_new.c \
970    sbr/fmt_rfc2047.c \
971    sbr/fmt_scan.c \
972    sbr/folder_addmsg.c \
973    sbr/folder_delmsgs.c \
974    sbr/folder_free.c \
975    sbr/folder_pack.c \
976    sbr/folder_read.c \
977    sbr/folder_realloc.c \
978    sbr/getarguments.c \
979    sbr/getcpy.c \
980    sbr/geteditor.c \
981    sbr/getfolder.c \
982    sbr/getpass.c \
983    sbr/icalendar.l \
984    sbr/icalparse.y \
985    sbr/lock_file.c \
986    sbr/m_atoi.c \
987    sbr/m_backup.c \
988    sbr/m_convert.c \
989    sbr/m_draft.c \
990    sbr/m_getfld.c \
991    sbr/m_gmprot.c \
992    sbr/m_maildir.c \
993    sbr/m_mktemp.c \
994    sbr/m_name.c \
995    sbr/m_popen.c \
996    sbr/m_rand.c \
997    sbr/makedir.c \
998    sbr/md5.c \
999    sbr/message_id.c \
1000    sbr/mf.c \
1001    sbr/mime_type.c \
1002    sbr/mts.c \
1003    sbr/netsec.c \
1004    sbr/oauth.c \
1005    sbr/oauth_prof.c \
1006    sbr/path.c \
1007    sbr/pidstatus.c \
1008    sbr/pidwait.c \
1009    sbr/print_help.c \
1010    sbr/print_sw.c \
1011    sbr/print_version.c \
1012    sbr/push.c \
1013    sbr/r1bindex.c \
1014    sbr/read_line.c \
1015    sbr/read_switch.c \
1016    sbr/read_switch_multiword.c \
1017    sbr/read_switch_multiword_via_readline.c \
1018    sbr/read_yes_or_no_if_tty.c \
1019    sbr/readconfig.c \
1020    sbr/refile.c \
1021    sbr/remdir.c \
1022    sbr/ruserpass.c \
1023    sbr/seq_add.c \
1024    sbr/seq_bits.c \
1025    sbr/seq_del.c \
1026    sbr/seq_getnum.c \
1027    sbr/seq_list.c \
1028    sbr/seq_nameok.c \
1029    sbr/seq_print.c \
1030    sbr/seq_read.c \
1031    sbr/seq_save.c \
1032    sbr/seq_setcur.c \
1033    sbr/seq_setprev.c \
1034    sbr/seq_setunseen.c \
1035    sbr/showfile.c \
1036    sbr/signals.c \
1037    sbr/smatch.c \
1038    sbr/snprintb.c \
1039    sbr/ssequal.c \
1040    sbr/strindex.c \
1041    sbr/terminal.c \
1042    sbr/trimcpy.c \
1043    sbr/unquote.c \
1044    sbr/uprf.c \
1045    sbr/utils.c \
1046    sbr/vector.c \
1047    sbr/vfgets.c \
1048    thirdparty/jsmn/jsmn.c \
1049    #
1050
1051sbr_libmh_a_LIBADD = $(LIBOBJS)
1052
1053##
1054## Need explicit dependency so that YACC is run before LEX.
1055##
1056sbr/icalendar.c: sbr/icalparse.c
1057
1058##
1059## Because these files use the definitions in the libmh rule below,
1060## they need to be rebuilt if the Makefile changes.
1061##
1062
1063config/sbr_libmh_a-config.$(OBJEXT) sbr/sbr_libmh_a-mts.$(OBJEXT): Makefile
1064
1065sbr_libmh_a_CPPFLAGS = ${AM_CPPFLAGS} -I./sbr \
1066		-DNMHBINDIR='"$(bindir)"' \
1067		-DNMHLIBEXECDIR='"$(nmhlibexecdir)"' \
1068		-DNMHETCDIR='"@nmhetcdirinst@$(nmhetcdir)"' \
1069		-DNMHDOCDIR='"@docdir@"' \
1070		-DMAILSPOOL='"$(mailspool)"' \
1071		-DSENDMAILPATH='"$(sendmailpath)"'
1072
1073mts_libmts_a_SOURCES = mts/smtp/smtp.c
1074
1075##
1076## Our rules for generating man pages (both the rule for man.sed and
1077## the implicit rules for man page generation).
1078##
1079manext1 = 1
1080manext5 = 5
1081manext7 = 7
1082manext8 = 8
1083
1084$(man_MANS): man/man.sed
1085
1086man/man.sed: Makefile
1087	@echo 's,%nmhwarning%,THIS FILE HAS BEEN AUTOMATICALLY GENERATED.  DO NOT EDIT.,g' > $@
1088	@echo 's,%nmhversion%,nmh-$(VERSION),g' >> $@
1089	@echo 's,%nmhetcdir%,$(nmhetcdir),g' >> $@
1090	@echo 's,%nmhlibexecdir%,$(nmhlibexecdir),g' >> $@
1091	@echo 's,%bindir%,$(bindir),g' >> $@
1092	@echo 's,%docdir%,$(docdir),g' >> $@
1093	@echo 's,%mandir%,$(mandir),g' >> $@
1094	@echo 's,%mailspool%,$(mailspool),g' >> $@
1095	@echo 's,%sendmailpath%,$(sendmailpath),g' >> $@
1096	@echo 's,%default_locking%,$(default_locking),g' >> $@
1097	@echo 's,%supported_locks%,$(supported_locks),g' >> $@
1098	@echo 's,%manext1%,$(manext1),g' >> $@
1099	@echo 's,%manext5%,$(manext5),g' >> $@
1100	@echo 's,%manext7%,$(manext7),g' >> $@
1101	@echo 's,%manext8%,$(manext8),g' >> $@
1102	@echo '/%mhl_forward%/r $(top_srcdir)/etc/mhl.forward' >> $@
1103	@echo ' s,%mhl_forward%,,g' >> $@
1104	@echo '/%mhl_format%/r $(top_srcdir)/etc/mhl.format' >> $@
1105	@echo ' s,%mhl_format%,,g' >> $@
1106	@echo '/%mhl_reply%/r $(top_srcdir)/etc/mhl.reply' >> $@
1107	@echo ' s,%mhl_reply%,,g' >> $@
1108
1109man/mh-chart.man: $(man_SRCS)
1110	$(srcdir)/man/mh-chart-gen.sh > $@
1111
1112.man.$(manext1):
1113	$(SED) -f man/man.sed $< > $@
1114
1115.man.$(manext5):
1116	$(SED) -f man/man.sed $< > $@
1117
1118.man.$(manext7):
1119	$(SED) -f man/man.sed $< > $@
1120
1121.man.$(manext8):
1122	$(SED) -f man/man.sed $< > $@
1123
1124man: $(man_MANS)
1125
1126cleanman:
1127	rm -f $(man_MANS)
1128
1129.PHONY: man cleanman
1130
1131## Don't include commit hashes in ChangeLog.
1132ChangeLog:
1133	@[ -d $(srcdir)/.git ]  &&  (cd $(srcdir); git --no-pager log --abbrev-commit | \
1134           egrep -v '^commit [0-9a-f]+$$' > $@)  ||  true
1135## Make ChangeLog phony so it will always get regenerated.  But don't
1136## fail if we don't have a git repository in order to allow
1137## regeneration of distribution archive or RPM.
1138.PHONY: ChangeLog
1139
1140##
1141## Our RPM build target
1142##
1143rpm: dist
1144	@test -d $(rpmdir)/SOURCES || $(MKDIR_P) $(rpmdir)/SOURCES
1145	@mv -f $(DIST_ARCHIVES) $(rpmdir)/SOURCES
1146	@cp -p VERSION $(rpmdir)/SOURCES
1147	@rpmbuild --define '_topdir $(rpmdir)' \
1148	  --define '_tmppath %{_topdir}/TMP' \
1149	  --define "_sysconfdir $(DESTDIR)$(sysconfdir)" \
1150	  -ba SPECS/nmh.spec
1151.PHONY: rpm
1152
1153
1154##
1155## Use GNU gcov to find the coverage of the test suite.
1156## These targets are not integrated into the other automake
1157## targets because they will be used so infrequently, if at all.
1158##
1159gcov: gcov-rebuild gcov-run gcov-process gcov-report
1160gcov-rebuild:
1161	@echo rebuilding with AM_CFLAGS=--coverage . . .
1162	@(make clean  &&  make AM_CFLAGS=--coverage) > /dev/null
1163gcov-run:
1164	make check AM_CFLAGS=--coverage
1165gcov-process:
1166	@for i in `find . -name '*.gcda'`; do \
1167	   gcov -pro `echo $$i | $(SED) 's%\\(.*\\)/%\\1 %'`; \
1168	 done
1169gcov-report:
1170	@for i in `find . -name '*.gcno'`; do \
1171	   if test -f `echo $$i | sed 's%\.gcno%.gcda%'`; then :; else \
1172	     echo untested: $$i; \
1173	   fi; \
1174	 done
1175gcov-mostlyclean:
1176	@find . -name '*.gcno' -o -name '*.gcda' | xargs rm
1177gcov-clean: gcov-mostlyclean
1178	@find . -name '*.gcov' | xargs rm
1179.PHONY: gcov gcov-rebuild gcov-run gcov-process gcov-report \
1180    gcov-mostlyclean gcov-clean
1181
1182
1183##
1184## Rules to upload the distribution to savannah
1185##
1186upload: dist
1187	@if test -z "$(SAVANNAH_USERNAME)"; then \
1188		echo "You need to set SAVANNAH_USERNAME to the your username on savannah.gnu.org." ;\
1189		echo "You can set it either in your environment or on the make command line."; \
1190		false; \
1191	fi
1192	@echo "Did you run 'make distcheck' already?"
1193	@if test -z "$(SKIP_GPG_SIG)"; then \
1194		echo "Creating GPG signature (set SKIP_GPG_SIG to bypass this step)"; \
1195		gpg --output $(DIST_ARCHIVES).sig --detach-sig $(DIST_ARCHIVES); \
1196	fi
1197	@echo "Setting permissions for savannah.gnu.org"
1198	chmod 664 $(DIST_ARCHIVES)
1199	if test -f $(DIST_ARCHIVES).sig; then \
1200		chmod 664 $(DIST_ARCHIVES).sig; \
1201	fi
1202	@echo "Uploading to savannah"
1203	scp -p $(DIST_ARCHIVES)* $(SAVANNAH_USERNAME)@dl.sv.nongnu.org:/releases/nmh
1204.PHONY: upload
1205