X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/600d446465259dea809dd1223d0e727585ddac6b..4829d096feb337a55e2b866adb19acab9617b071:/Makefile.am diff --git a/Makefile.am b/Makefile.am index 5db12359..1c620763 100644 --- a/Makefile.am +++ b/Makefile.am @@ -26,17 +26,12 @@ LDADD = sbr/libmh.a MHNSEARCHPATH = "$(PATH)" MHNSEARCHPROG = $(srcdir)/etc/mhn.find.sh -## -## Install config files and back-end programs in our own subdirecctories. -## -nmhetcdir = @sysconfdir@/nmh -nmhlibexecdir = @libexecdir@/nmh - ## ## nmh _does_ have a test suite! ## TESTS_ENVIRONMENT = MH_OBJ_DIR="@abs_builddir@" \ MH_VERSION="$(VERSION)" \ + MAKE=$(MAKE) \ OAUTH_SUPPORT='@OAUTH_SUPPORT@' \ CURL_USER_AGENT='@CURL_USER_AGENT@' \ MH_TEST_DIR=`cd "@abs_builddir@" && pwd -P`/test/testdir \ @@ -59,6 +54,7 @@ TESTS = \ test/burst/test-burst \ test/burst/test-burst-mime \ test/comp/test-comp-format \ + test/comp/test-draft-fcc \ test/dist/test-dist \ test/folder/test-coverage \ test/folder/test-create \ @@ -71,6 +67,7 @@ TESTS = \ test/format/test-curses \ test/format/test-dp \ test/format/test-fmtdump \ + test/format/test-fmttest \ test/format/test-functions \ test/format/test-localmbox \ test/format/test-myhost \ @@ -82,6 +79,9 @@ TESTS = \ test/forw/test-forw-coverage \ test/forw/test-forw-digest \ test/forw/test-forw-format \ + test/imap/test-inc \ + test/imap/test-live \ + test/imap/test-scan \ test/inc/test-deb359167 \ test/inc/test-eom-align \ test/inc/test-inc-scanout \ @@ -91,6 +91,7 @@ TESTS = \ test/install-mh/test-version-check \ test/locking/test-datalocking \ test/locking/test-spoollocking \ + test/managed-folders/test-read-message \ test/manpages/test-manpages \ test/mhbuild/test-attach \ test/mhbuild/test-cte \ @@ -101,6 +102,7 @@ TESTS = \ test/mhbuild/test-utf8-body \ test/mhfixmsg/test-mhfixmsg \ test/mhical/test-mhical \ + test/mhl/test-format \ test/mhl/test-mhl-flags \ test/mhl/test-rfc6532 \ test/mhlist/test-ext-params \ @@ -111,6 +113,8 @@ TESTS = \ test/mhshow/test-binary \ test/mhshow/test-charset \ test/mhshow/test-cte-binary \ + test/mhshow/test-exec \ + test/mhshow/test-markers \ test/mhshow/test-msg-buffer-boundaries \ test/mhshow/test-qp \ test/mhshow/test-subpart \ @@ -152,6 +156,7 @@ TESTS = \ test/repl/test-trailing-newline \ test/scan/test-header-parsing \ test/scan/test-scan \ + test/scan/test-scan-file \ test/scan/test-scan-multibyte \ test/send/test-sendfrom \ test/sequences/test-flist \ @@ -165,17 +170,19 @@ TESTS = \ test/whom/test-whom \ test/cleanup ## The "cleanup" test should always be last. -XFAIL_TESTS = +check_DATA = fake.pem check_SCRIPTS = test/common.sh check_PROGRAMS = \ test/fakehttp \ + test/fakeinetd \ test/fakepop \ test/fakesmtp \ test/getcanon \ test/getcwidth \ test/getfullname \ + test/managed-folders/protocol-tester \ test/runpty \ # @@ -191,7 +198,6 @@ AM_DISTCHECK_CONFIGURE_FLAGS = DISABLE_SETGID_MAIL=1 \ ## ## Stuff that should be cleaned via "make clean" -## automake 1.12.6 on FreeBSD 9 needs the sbr/dtimep.c. ## CLEANFILES = \ $(man_MANS) \ @@ -201,8 +207,7 @@ CLEANFILES = \ etc/mhn.defaults \ etc/mts.conf \ man/man.sed \ - man/mh-chart.man \ - sbr/dtimep.c \ + man/mh-chart.man # clean-local: @@ -337,27 +342,23 @@ noinst_LIBRARIES = \ noinst_HEADERS = \ h/addrsbr.h \ h/aliasbr.h \ - h/crawl_folders.h \ h/done.h \ h/dropsbr.h \ h/fmt_compile.h \ h/fmt_scan.h \ + h/folder.h \ + h/folder_manager_protocol.h \ h/icalendar.h \ - h/md5.h \ + h/managed_folders.h \ h/mf.h \ h/mh.h \ - h/mhcachesbr.h \ h/mhparse.h \ h/mime.h \ h/mts.h \ h/netsec.h \ h/nmh.h \ h/oauth.h \ - h/picksbr.h \ - h/popsbr.h \ h/prototypes.h \ - h/rcvmail.h \ - h/scansbr.h \ h/signals.h \ h/tws.h \ h/utils.h \ @@ -369,7 +370,6 @@ noinst_HEADERS = \ sbr/brkstring.h \ sbr/check_charset.h \ sbr/client.h \ - sbr/closefds.h \ sbr/concat.h \ sbr/context_del.h \ sbr/context_find.h \ @@ -380,14 +380,19 @@ noinst_HEADERS = \ sbr/copyip.h \ sbr/cpydata.h \ sbr/cpydgst.h \ + sbr/crawl_folders.h \ sbr/credentials.h \ sbr/ctype-checked.h \ + sbr/datetime.h \ sbr/discard.h \ + sbr/dtime.h \ sbr/encode_rfc2047.h \ sbr/error.h \ sbr/escape_addresses.h \ sbr/ext_hook.h \ sbr/fdcompare.h \ + sbr/fmt_addr.h \ + sbr/fmt_new.h \ sbr/fmt_rfc2047.h \ sbr/folder_addmsg.h \ sbr/folder_delmsgs.h \ @@ -395,6 +400,7 @@ noinst_HEADERS = \ sbr/folder_pack.h \ sbr/folder_read.h \ sbr/folder_realloc.h \ + sbr/getarguments.h \ sbr/getcpy.h \ sbr/geteditor.h \ sbr/getfolder.h \ @@ -404,10 +410,14 @@ noinst_HEADERS = \ sbr/m_backup.h \ sbr/m_convert.h \ sbr/m_draft.h \ + sbr/m_getfld.h \ + sbr/m_gmprot.h \ sbr/m_maildir.h \ sbr/m_mktemp.h \ + sbr/m_name.h \ sbr/m_popen.h \ sbr/m_rand.h \ + sbr/maildir_read_and_sort.h \ sbr/makedir.h \ sbr/message_id.h \ sbr/mime_type.h \ @@ -421,6 +431,7 @@ noinst_HEADERS = \ sbr/read_line.h \ sbr/read_switch.h \ sbr/read_switch_multiword.h \ + sbr/read_switch_multiword_via_readline.h \ sbr/read_yes_or_no_if_tty.h \ sbr/readconfig.h \ sbr/refile.h \ @@ -450,17 +461,27 @@ noinst_HEADERS = \ sbr/vector.h \ sbr/vfgets.h \ thirdparty/jsmn/jsmn.h \ + uip/annosbr.h \ + uip/distsbr.h \ uip/forwsbr.h \ uip/mhfree.h \ + uip/mhlsbr.h \ uip/mhmisc.h \ uip/mhoutsbr.h \ uip/mhshowsbr.h \ + uip/picksbr.h \ + uip/popsbr.h \ uip/replsbr.h \ + uip/scansbr.h \ + uip/sendsbr.h \ + uip/whatnowproc.h \ + uip/whatnowsbr.h \ # ## ## Extra files we need to install in various places ## +dist_nmhetc_SCRIPTS = etc/rmmproc.messageid dist_nmhetc_DATA = \ etc/MailAliases \ etc/components \ @@ -481,7 +502,6 @@ dist_nmhetc_DATA = \ etc/rcvdistcomps.outbox \ etc/replcomps \ etc/replgroupcomps \ - etc/rmmproc.messageid \ etc/scan.MMDDYY \ etc/scan.YYYYMMDD \ etc/scan.curses \ @@ -537,7 +557,6 @@ docs_contribdir = $(docdir)/contrib dist_docs_contrib_SCRIPTS = \ docs/contrib/localpostproc \ docs/contrib/ml \ - docs/contrib/replaliases \ docs/contrib/replyfilter \ docs/contrib/vpick \ # @@ -753,8 +772,11 @@ uip_ali_LDADD = $(LDADD) $(POSTLINK) uip_anno_SOURCES = uip/anno.c uip/annosbr.c uip_anno_LDADD = $(LDADD) $(POSTLINK) -uip_burst_SOURCES = uip/burst.c uip/mhparse.c uip/mhmisc.c uip/mhfree.c \ - uip/mhcachesbr.c +uip_burst_SOURCES = uip/burst.c \ + uip/mhparse.c \ + uip/mhmisc.c \ + uip/mhfree.c \ + # uip_burst_LDADD = $(LDADD) $(ICONVLIB) $(POSTLINK) uip_comp_SOURCES = uip/comp.c uip/whatnowproc.c uip/whatnowsbr.c uip/sendsbr.c \ @@ -788,26 +810,47 @@ uip_install_mh_LDADD = $(LDADD) $(POSTLINK) uip_mark_SOURCES = uip/mark.c uip_mark_LDADD = $(LDADD) $(POSTLINK) -uip_mhbuild_SOURCES = uip/mhbuild.c uip/mhbuildsbr.c uip/mhcachesbr.c \ - uip/mhlistsbr.c uip/mhoutsbr.c uip/mhmisc.c \ - uip/mhfree.c uip/mhparse.c \ - uip/mhstoresbr.c uip/mhshowsbr.c +uip_mhbuild_SOURCES = uip/mhbuild.c \ + uip/mhbuildsbr.c \ + uip/mhlistsbr.c \ + uip/mhoutsbr.c \ + uip/mhmisc.c \ + uip/mhfree.c \ + uip/mhparse.c \ + uip/mhstoresbr.c \ + uip/mhshowsbr.c \ + # uip_mhbuild_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK) -uip_mhfixmsg_SOURCES = uip/mhfixmsg.c uip/mhparse.c uip/mhcachesbr.c \ - uip/mhoutsbr.c uip/mhmisc.c uip/mhfree.c \ - uip/mhshowsbr.c uip/mhlistsbr.c +uip_mhfixmsg_SOURCES = uip/mhfixmsg.c \ + uip/mhparse.c \ + uip/mhoutsbr.c \ + uip/mhmisc.c \ + uip/mhfree.c \ + uip/mhshowsbr.c \ + uip/mhlistsbr.c \ + # uip_mhfixmsg_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK) uip_mhical_SOURCES = uip/mhical.c uip_mhical_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK) -uip_mhlist_SOURCES = uip/mhlist.c uip/mhparse.c uip/mhcachesbr.c \ - uip/mhlistsbr.c uip/mhmisc.c uip/mhfree.c +uip_mhlist_SOURCES = uip/mhlist.c \ + uip/mhparse.c \ + uip/mhlistsbr.c \ + uip/mhmisc.c \ + uip/mhfree.c \ + # uip_mhlist_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK) -uip_mhn_SOURCES = uip/mhn.c uip/mhparse.c uip/mhcachesbr.c uip/mhshowsbr.c \ - uip/mhlistsbr.c uip/mhstoresbr.c uip/mhmisc.c uip/mhfree.c +uip_mhn_SOURCES = uip/mhn.c \ + uip/mhparse.c \ + uip/mhshowsbr.c \ + uip/mhlistsbr.c \ + uip/mhstoresbr.c \ + uip/mhmisc.c \ + uip/mhfree.c \ + # uip_mhn_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK) uip_mhparam_SOURCES = uip/mhparam.c @@ -816,14 +859,23 @@ uip_mhparam_LDADD = $(LDADD) $(POSTLINK) uip_mhpath_SOURCES = uip/mhpath.c uip_mhpath_LDADD = $(LDADD) $(POSTLINK) -uip_mhshow_SOURCES = uip/mhshow.c uip/mhparse.c uip/mhcachesbr.c \ - uip/mhshowsbr.c uip/mhlistsbr.c uip/mhmisc.c \ - uip/mhfree.c +uip_mhshow_SOURCES = uip/mhshow.c \ + uip/mhparse.c \ + uip/mhshowsbr.c \ + uip/mhlistsbr.c \ + uip/mhmisc.c \ + uip/mhfree.c \ + # uip_mhshow_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK) -uip_mhstore_SOURCES = uip/mhstore.c uip/mhparse.c uip/mhcachesbr.c \ - uip/mhshowsbr.c uip/mhlistsbr.c uip/mhstoresbr.c \ - uip/mhmisc.c uip/mhfree.c +uip_mhstore_SOURCES = uip/mhstore.c \ + uip/mhparse.c \ + uip/mhshowsbr.c \ + uip/mhlistsbr.c \ + uip/mhstoresbr.c \ + uip/mhmisc.c \ + uip/mhfree.c \ + # uip_mhstore_LDADD = $(LDADD) $(TERMLIB) $(ICONVLIB) $(POSTLINK) uip_msgchk_SOURCES = uip/msgchk.c uip/popsbr.c @@ -941,6 +993,9 @@ test_fakesmtp_LDADD = $(POSTLINK) test_fakehttp_SOURCES = test/fakehttp.c test/server.c test_fakehttp_LDADD = $(LDADD) $(POSTLINK) +test_fakeinetd_SOURCES = test/fakeinetd.c +test_fakeinetd_LDADD = $(LDADD) $(POSTLINK) + test_getcwidth_SOURCES = test/getcwidth.c test_getcwidth_LDADD = $(POSTLINK) @@ -1030,7 +1085,6 @@ sbr_libmh_a_SOURCES = \ sbr/charstring.c \ sbr/check_charset.c \ sbr/client.c \ - sbr/closefds.c \ sbr/concat.c \ sbr/context_del.c \ sbr/context_find.c \ @@ -1062,6 +1116,9 @@ sbr_libmh_a_SOURCES = \ sbr/folder_addmsg.c \ sbr/folder_delmsgs.c \ sbr/folder_free.c \ + sbr/folder_manager_client.c \ + sbr/folder_manager_protocol.c \ + sbr/folder_operations.c \ sbr/folder_pack.c \ sbr/folder_read.c \ sbr/folder_realloc.c \ @@ -1084,8 +1141,9 @@ sbr_libmh_a_SOURCES = \ sbr/m_name.c \ sbr/m_popen.c \ sbr/m_rand.c \ + sbr/maildir_read_and_sort.c \ sbr/makedir.c \ - sbr/md5.c \ + sbr/managed_folders.c \ sbr/message_id.c \ sbr/mf.c \ sbr/mime_type.c \ @@ -1144,6 +1202,7 @@ sbr_libmh_a_LIBADD = $(LIBOBJS) ## Need explicit dependency so that YACC is run before LEX. ## sbr/icalendar.c: sbr/icalparse.c +uip/mhical.c: sbr/icalparse.h ## ## Because these files use the definitions in the libmh rule below, @@ -1152,7 +1211,7 @@ sbr/icalendar.c: sbr/icalparse.c config/sbr_libmh_a-config.$(OBJEXT) sbr/sbr_libmh_a-mts.$(OBJEXT): Makefile -sbr_libmh_a_CPPFLAGS = ${AM_CPPFLAGS} -I./sbr \ +sbr_libmh_a_CPPFLAGS = ${AM_CPPFLAGS} \ -DNMHBINDIR='"$(bindir)"' \ -DNMHLIBEXECDIR='"$(nmhlibexecdir)"' \ -DNMHETCDIR='"@nmhetcdirinst@$(nmhetcdir)"' \ @@ -1269,6 +1328,14 @@ gcov-clean: gcov-mostlyclean .PHONY: gcov gcov-rebuild gcov-run gcov-process gcov-report \ gcov-mostlyclean gcov-clean +# TODO rust coverage +# cargo +nightly install cargo-binutils grcov rustfilt +# RUSTFLAGS=-Zinstrument-coverage make CARGO_FLAGS=+nightly cargo +# make check +# TODO rename .llvmprof to .profdata so grcov will see it +# cargo +nightly profdata -- merge -sparse test/imap/*.llvmprof -o profdata +# cargo +nightly cov -- show target/debug/imap-folder-manager -instr-profile=profdata "-path-equivalence=,${top_srcdir}" +# grcov --branch --llvm -b target/debug -o ~/public_html/cov -t html -s ../.. test/imap/cov ## ## Rules to upload the distribution to savannah @@ -1292,3 +1359,27 @@ upload: dist @echo "Uploading to savannah" scp -p $(DIST_ARCHIVES)* $(SAVANNAH_USERNAME)@dl.sv.nongnu.org:/releases/nmh .PHONY: upload + +# TODO autoconf check for cargo and bindgen +.PHONY: cargo cargo-doc +cargo: $(srcdir)/sbr/rust/src/bindgen.rs $(abs_srcdir)/sbr/rust/build.rs + cd $(srcdir) && CARGO_TARGET_DIR=$(abs_builddir)/target cargo $(CARGO_FLAGS) build +cargo-doc: cargo + cd $(srcdir) && CARGO_TARGET_DIR=$(abs_builddir)/target cargo $(CARGO_FLAGS) doc --no-deps + +# TODO default to release build with optional debug build +# TODO install mhimap to bindir and imap-folder-manager to libexecdir +# TODO proper build rules, including dependency on libmh.a +target/debug/mhimap target/debug/imap-folder-manager: cargo + +# TODO proper out-of-tree build +$(abs_srcdir)/sbr/rust/build.rs: $(abs_builddir)/sbr/rust/build.rs + [ $(abs_srcdir) = $(abs_builddir) ] || cp $(builddir)/sbr/rust/build.rs $(srcdir)/sbr/rust/build.rs + +$(srcdir)/sbr/rust/src/bindgen.rs: $(srcdir)/sbr/rust/bindgen.h + bindgen --no-derive-copy -o $(srcdir)/sbr/rust/src/bindgen.rs.tmp $(srcdir)/sbr/rust/bindgen.h -- -I$(srcdir) \ + && mv $(srcdir)/sbr/rust/src/bindgen.rs.tmp $(srcdir)/sbr/rust/src/bindgen.rs + +# TODO autoconf check for openssl +fake.pem: + yes '' | openssl req -new -x509 -nodes -out fake.pem -keyout fake.pem