summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* release: stable minor release 1.15v1.15Stefano Lattarini2014-12-312-4/+4
| | | | | | | * configure.ac (AC_INIT): Bump version number to 1.15. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* NEWS: minor improvements and fixed some typos and grammarosStefano Lattarini2014-12-311-19/+19
| | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* docs: "make distcheck" implementation details are not to be abusedStefano Lattarini2014-12-301-2/+13
| | | | | | | | * doc/automake.texi: State explicitly and in detail that the exact location and the exact structure of the subdirectory used by "make distcheck" is to be considered an implementation detail, which can change at any time. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* NEWS: improve and adjust in light of the oncoming 1.15 releaseStefano Lattarini2014-12-301-23/+40
| | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* Merge branch 'micro' into minorStefano Lattarini2014-12-302-6/+21
|\ | | | | | | | | * micro: shell-no-trail-bslash: improve diagnostic in case of failure
| * shell-no-trail-bslash: improve diagnostic in case of failureStefano Lattarini2014-12-302-6/+21
| | | | | | | | | | | | | | | | | | * t/ax/shell-no-trail-bslash.in: Here, by fixing a typo in a variable name and a logic error. * t/self-check-shell-no-trail-bslash.sh: Enhance to catch the issue. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | Merge branch 'micro' into minorStefano Lattarini2014-12-282-51/+81
|\ \ | |/ | | | | | | * micro: tests: make script 'shell-no-trail-bslash' simpler and more robust
| * tests: make script 'shell-no-trail-bslash' simpler and more robustStefano Lattarini2014-12-282-53/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This solves spurious failure in the 'check-no-trailing-backslash-in-recipes' target for Automake-NG. This is basically a backport of Automake-NG commit v1.14.1-1010-g85aae58; the point is to minimize the amount of spurious diffs between the mainline Automake and the Automake-NG source trees. * t/ax/shell-no-trail-bslash.in: Simplify and fortify. * t/self-check-shell-no-trail-bslash.sh: Enhance. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | Merge branch 'micro' into minorStefano Lattarini2014-12-276-21/+45
|\ \ | |/ | | | | | | | | * micro: tests: fix spurious failure in test on TEXINFO_TEX overriding tests: avoid some spurious failures on AIX 7.1
| * tests: fix spurious failure in test on TEXINFO_TEX overridingStefano Lattarini2014-12-271-3/+3
| | | | | | | | | | | | | | | | | | | | * t/txinfo-override-texinfo-tex.sh: Here. The issue was pre-existing, but has been only recently exposed by the fix for automake bug#18286 "distcheck fails to detect missing files" (see commit v1.14.1-4-g01a7a4a) and by the BSD make semantics. To convince yourself this change actually makes sense semantically, see https://sourceware.org/ml/binutils/2012-06/msg00004.html Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * Merge branch 'aix-testsuite-failures' into microStefano Lattarini2014-12-275-23/+47
| |\ | | | | | | | | | | | | * aix-testsuite-failures: tests: avoid some spurious failures on AIX 7.1
| | * tests: avoid some spurious failures on AIX 7.1Stefano Lattarini2014-12-275-23/+47
| |/ | | | | | | | | | | | | | | | | | | * t/lex-noyywrap.sh: Here. * t/instmany-mans.sh: And here. * t/instmany-python.sh: And here. * t/instmany.sh: And here. * t/parallel-tests-concurrency.sh: And here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | Merge branch 'micro' into minorStefano Lattarini2014-12-2311-21/+177
|\ \ | |/ | | | | | | | | | | | | * micro: dist: fix bug#18286 "distcheck fails to detect missing files" tests: expose automake bug#18286 "distcheck fails to detect missing files" include: fix bug in handling of user-defined makefile fragments generation tests: expose bug in handling of user-defined makefile fragments generation
| * Merge branch 'distcheck-pr18286' into microStefano Lattarini2014-12-239-25/+121
| |\ | | | | | | | | | | | | | | | * distcheck-pr18286: dist: fix bug#18286 "distcheck fails to detect missing files" tests: expose automake bug#18286 "distcheck fails to detect missing files"
| | * dist: fix bug#18286 "distcheck fails to detect missing files"Stefano Lattarini2014-12-239-26/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BTW, this issue had been already reported in the past: http://lists.gnu.org/archive/html/automake/2006-09/msg00008.html http://lists.gnu.org/archive/html/automake/2013-01/msg00049.html "make distcheck" could sometimes fail to detect missing files in the distribution tarball, especially in those cases where both the generated files and their dependencies are explicitly in $(srcdir). An important example of this are *generated* makefile fragments included at Automake time in Makefile.am. A basic example: # -*- Makefile.am -*- $(srcdir)/fragment.am: $(srcdir)/data.txt $(srcdir)/preproc.sh cd $(srcdir) && $(SHELL) preproc.sh <data.txt >fragment.am include $(srcdir)/fragment.am ... If the use forgot to add data.txt and/or preproc.sh in the distribution tarball, "make distcheck" would have erroneously succeeded! The reason is that, while $(srcdir)/data.txt does not exist, make also looks in $(srcdir)/$(srcdir)/data.txt, and in the distcheck-issued VPATH build where $(srcdir) is '..', that file exists, as it is part of the original development directory. * t/distdir.am (distcheck): Adjust to have the build directory be '$(distdir)/_build/sub' rather than just '$(distdir)/_build'. Thanks Nicola Fontana for the suggestion. * t/distcheck-pr18286.sh: Enhance and tighten a little. * t/list-of-tests.mk (XFAIL_TESTS): Remove 't/distcheck-pr18286.sh', as it's now passing. * t/subdir-am-cond.sh: Adjust to avoid a fully spurious failure due to the new distcheck semantics. * t/subdir-ac-subst.sh: Likewise. * t/dejagnu-relative-srcdir.sh: Likewise. * t/txinfo-builddir.sh: Likewise. * NEWS: Update. Helped-by: Nicola Fontana <ntd@entidi.it> Helped-by: Peter Johansson <trojkan@gmail.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| | * tests: expose automake bug#18286 "distcheck fails to detect missing files"Stefano Lattarini2014-12-232-0/+64
| | | | | | | | | | | | | | | | | | | | | * t/distcheck-pr18286.sh: New test, still XFAILing. * t/list-of-tests.mk: Add it. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * | Merge branch 'am-deps' into microStefano Lattarini2014-12-234-1/+61
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | * am-deps: include: fix bug in handling of user-defined makefile fragments generation tests: expose bug in handling of user-defined makefile fragments generation Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| | * include: fix bug in handling of user-defined makefile fragments generationStefano Lattarini2014-12-233-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a user defined one single Makefile fragment to be included (via Automake includes) in his main Makefile.am, and gave a rule to generate that file from other data, Automake used to spuriously complain about with something like "overrides Automake target '$(srcdir)/foo.am". This change remove that spurious error (via a simple hack rather than a systematic change, but oh well). * lib/am/configure.am (%MAKEFILE-IN-DEPS%) [?HAVE-MAKEFILE-IN-DEPS?]: Add a trailing "$(am__empty)" to the list of targets, which is enough to trick Automake into not complaining about "duplicated targets" in case the '%MAKEFILE-IN-DEPS%' list expands to a single target that is also declared in some user-defined rule. * t/list-of-tests.mk (XFAIL_TESTS): Remove now-passing test 't/am-include-only-one-generated-fragment.sh'. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| | * tests: expose bug in handling of user-defined makefile fragments generationStefano Lattarini2014-12-232-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a user defines one single Makefile fragment to be included (via Automake includes) in his main Makefile.am, and givse a rule to generate that file from other data, Automake will spuriously complain about with something like "overrides Automake target '$(srcdir)/foo.am". * t/am-include-only-one-generated-fragment.sh: Expose the bug (this test is still XFAILing). * t/list-of-tests.mk: Add the new test. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | | Merge branch 'micro' into minorStefano Lattarini2014-12-2215-145/+152
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | * micro: cleanup: refactor code to initialize DIST_COMMON dist: ordering of files in DIST_COMMON is deterministic now tests: refactor some tests on DIST_COMMON maint: make output of 'gen-testsuite-part' deterministic When computing lispdir, don't load emacs site wide init file. PATH: quote $(PATH_SEPARATOR) as well Improve detection of GNU make, avoiding "Arg list too long" errors.
| * | cleanup: refactor code to initialize DIST_COMMONStefano Lattarini2014-12-223-25/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is not need to make that an Automake variable early, only to later get and munge its contents, and use the new content to redefine the variable. * bin/automake.in (@dist_common): New global variable. (push_dist_common, handle_dist): Use it. (handle_dist): Define am__DIST_COMMON instead of DIST_COMMON directly. (initialize_per_input): Reset it to empty. ($configure_dist_common): Turn this scalar variable ... (@configure_dist_common): ... into this array variable. (handle_dist): Adjust. (required_file_check_or_copy): Update and wrap some comments. * lib/am/distdir.am (DIST_COMMON): Append $(am__DIST_COMMON). * t/distcom2.sh: Tighten a little. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * | dist: ordering of files in DIST_COMMON is deterministic nowStefano Lattarini2014-12-222-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It had likely stopped being deterministic due to the new perl behavior of having non-deterministic order of numerating hash keys: <http://search.cpan.org/dist/perl-5.18.0/pod/perldelta.pod#Hash_randomization> <http://onionstand.blogspot.ie/2012/12/are-you-relying-on-hash-keys-being.html> See also similar commit v1.14-19-g52e6404, albeit in this case the issue is likely coming from autom4te/autoconf, not from automake itself. Fixes automake bug http://debbugs.gnu.org/17908 * bin/automake.in (handle_dist): Sort @dist_common. (print_autodist_files): Swap invocations of 'sort' and 'uniq', for consistency with the new code in 'handle_dist' and to get rid of a minor hack. * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * | tests: refactor some tests on DIST_COMMONStefano Lattarini2014-12-226-111/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So that they prefer checking the semantics of the generated Makefiles, rather than grepping their content. This will be useful in an upcoming refactoring. * t/distcom-subdir.sh: Adjust this test. * t/distcom2.sh: And this. * t/distcom3.sh: And this. * t/distcom4.sh: And this. * t/distcom5.sh: And this. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * | maint: make output of 'gen-testsuite-part' deterministicStefano Lattarini2014-12-221-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So that diffs displayed by the 'compare-autodiffs' target are less spurious and more useful. * gen-testsuite-part: Sort keys of %deps_extractor, %wrapper_setups and %depmodes before iterating on them. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * | When computing lispdir, don't load emacs site wide init file.Andrew Burgess2014-12-192-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When computing the lispdir emacs was previously invoked with the '-q' option to avoid loading the users initialisation files, however, the site wide initialisation file was still loaded, in some cases this can cause emacs to hang, with the result that a configure can also hang. The lisp code that aclocal causes to be executed reduces the load-path list (in emacs) to empty. The load-path is used by emacs to find packages which it wants to load. Currently, if emacs tries to auto load a package during shut down, and the package is not found, then emacs will hang. This does seem like an emacs bug, but protecting against this in aclocal is simply a case of not loading the site wide initialisation file. In this patch then the '-q' option to emacs is replaced with '-Q', this has the same, the '-Q' option is similar to '-q --no-site-file --no-splash'. * doc/automake.texi (Hard-Coded Install Paths): Update explanation of emacs code used to get lispdir. * m4/lispdir.m4 (AM_PATH_LISPDIR): Update emacs flags. Copyright-paperwork-exempt: yes Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * | PATH: quote $(PATH_SEPARATOR) as wellKO Myung-Hun2014-12-192-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On OS/2, $(PATH_SEPARATOR) is ';'. Without quote, it is recognized as a mark of end of sentence. * Makefile.am: quote $(PATH_SEPARATOR) as well. * t/Makefile.inc: Likewise. Copyright-paperwork-exempt: yes Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * | Improve detection of GNU make, avoiding "Arg list too long" errors.Stefano Lattarini2014-12-192-4/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Such errors could take place when the main makefile included too many sub-makefiles, making $(MAKEFILE_LIST) too long and causing the recipes $(am__is_gnu_make) to exceed the shell's command-line length limits. This is not a theoretical issue: it could happen for projects having lots of C/C++ sources and using automatic dependency tracking, which created an included .Po sub-makefile for each of such sources. Fixes http://debbugs.gnu.org/18744 * lib/am/header-vars.am (am__is_gnu_make): Fix the logic to avoid the use of $(MAKEFILE_LIST). * NEWS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | | Merge branch 'micro' into minorStefano Lattarini2014-12-190-0/+0
|\ \ \ | |/ / | | | | | | | | | * micro: Fix stupid typo in test, causing spurious failure
| * | Fix stupid typo in test, causing spurious failureStefano Lattarini2014-12-191-1/+1
| | | | | | | | | | | | | | | | | | * t/aminit-trailing-dnl-comment-pr16841.sh: s/greop/grep/ Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | | Merge branch 'micro' into minorStefano Lattarini2014-12-199-22/+110
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | * micro: sync: update third-part files from upstream Make sure AM_INIT_AUTOMAKE has a trailing newline dist: adjust warning messages about shar and tarZ deprecation docs: improve description of ${PACKAGE}, ${VERSION}, and similar variables Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * | Merge branch 'pr16841' into microStefano Lattarini2014-12-195-1/+60
| |\ \ | | | | | | | | | | | | | | | | * pr16841: Make sure AM_INIT_AUTOMAKE has a trailing newline
| | * | Make sure AM_INIT_AUTOMAKE has a trailing newlineStefano Lattarini2014-12-195-1/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This used to be the case until Automke 1.13, but we broke it in Automake 1.14 (see commit v1.13.1-71-gf78b0f0). This caused issues like http://debbugs.gnu.org/16841 * m4/init.m4 (AM_INIT_AUTOMAKE): Adjust. * t/aminit-trailing-dnl-comment-pr16841.sh: New test. * t/list-of-tests.mk: Add it. * NEWS, THANKS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * | | sync: update third-part files from upstreamStefano Lattarini2014-12-195-175/+47
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | * lib/config.guess: This. * lib/config.sub: And this. * lib/gitlog-to-changelog: And this. * lib/gnupload: And this. * lib/update-copyright: And this. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| | |
| | \
| *-. \ Merge branches 'dist-warn-pr19108' and 'docs-pr16623' into microStefano Lattarini2014-12-193-14/+26
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * dist-warn-pr19108: dist: adjust warning messages about shar and tarZ deprecation * docs-pr16623: docs: improve description of ${PACKAGE}, ${VERSION}, and similar variables
| | | * | docs: improve description of ${PACKAGE}, ${VERSION}, and similar variablesStefano Lattarini2014-12-182-10/+22
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In particular, suggesting that $PACKAGE and $VERSION should be aliases of the $PACKAGE_TARNAME and $PACKAGE_VERSION definitions coming from AC_INIT, and not be defined via an obsolete 2-argument invocation of AM_INIT_AUTOMAKE; and why that is the best default, given all our historical baggage. See discussion in http://debbugs.gnu.org/16623 for more information and background. * doc/automake.texi: Adjust. * THANKS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| | * | dist: adjust warning messages about shar and tarZ deprecationAharon Robbins2014-12-191-4/+4
| |/ / | | | | | | | | | | | | | | | They were swapped. Reported in http://debbugs.gnu.org/19108. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | | Fix dumb logic error preventing $install_sh from being be overriddenThomas Jahns2014-12-172-1/+2
| | | | | | | | | | | | | | | | | | | | | * m4/install-sh.m4: Here. * THANKS: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| | |
| \ \
*-. \ \ Merge branches 'pr19311' and 'micro' into minorStefano Lattarini2014-12-174-15/+62
|\ \ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * pr19311: Expose automake bug#19311 build: fix race in parallel builds * micro: Automake docs: fix typos and use of British English build: fix race in parallel builds
| | * | Automake docs: fix typos and use of British EnglishKarl Berry2014-12-171-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | * doc/automake.texi: Here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| | * | build: fix race in parallel buildsPaul Eggert2014-08-231-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | Reported by Friedrich Beckmann in: http://bugs.gnu.org/18301 * lib/am/texi-vers.am (?DIRSTAMP?): Put the process-ID into the temporary file name. Use a similar temporary in the source dir.
| * | | Expose automake bug#19311Stefano Lattarini2014-12-172-0/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AC_PROG_CC called before AC_CONFIG_AUX_DIR can silently force wrong $ac_aux_dir definition. * t/auxdir-pr19311.sh: New. * t/list-of-tests.mk: Add it as an XFAIL test. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
| * | | build: fix race in parallel buildsPaul Eggert2014-12-171-9/+9
|/ / / | | | | | | | | | | | | | | | Reported by Friedrich Beckmann in: http://bugs.gnu.org/18301 * lib/am/texi-vers.am (?DIRSTAMP?): Put the process-ID into the temporary file name. Use a similar temporary in the source dir.
* | | init: ensure $ac_aux_dir is defined before being usedStefano Lattarini2014-04-227-6/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we use '$ac_aux_dir' to define '$am_aux_dir', we need to ensure the former has been initialized before we try to define the latter, otherwise the definition: am_aux_dir=`cd $ac_aux_dir && pwd` will set '$am_aux_dir' to '$HOME', likely causing weird and unexpected behaviours. This change fixes automake bug#15981. * m4/auxdir.m4 (AM_AUX_DIR_EXPAND): AC_REQUIRE expansion of 'AC_CONFIG_AUX_DIR_DEFAULT'. Fix redundant comment and AC_PREREQ, add extra quoting around '$ac_aux_dir'. * t/auxdir-pr15981.sh: New test. * t/auxdir-cc-pr15981.sh: Likewise. * t/list-of-tests.mk (handwritten_TESTS): Add them. * THANKS, NEWS: Update. * bin/automake.in: Fix a harmless typo in comments, that I happened to notice while writing this patch. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | | plans: enabling subdir-object by default is blocked on bug#13928Stefano Lattarini2014-04-211-0/+9
| | | | | | | | | | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | | maint: update copyright yearsStefano Lattarini2014-04-211429-1431/+1431
| | | | | | | | | | | | | | | | | | We've been in 2014 already for few months now... Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | | maint: sync files from upstream ("make fetch")Stefano Lattarini2014-04-215-168/+17
| | | | | | | | | | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | | Typofixes in warning messages and manualStefano Lattarini2014-04-214-5/+9
| | | | | | | | | | | | | | | | | | Fixes automake bug#16827 and bug#16997. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* | | Merge branch 'micro' into minorStefano Lattarini2014-04-211-0/+2
|\ \ \ | |/ / | | | | | | | | | * micro: doc: fix encoding error with UTF-8 characters
| * | doc: fix encoding error with UTF-8 charactersPaul Eggert2014-01-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | * doc/automake.texi: Specify @documentencoding and @documentlanguage, to prevent encoding errors for parts of this input file that are UTF-8. This also causes the .info output to use curly quotes, which is easier to read though it does assume UTF-8 support.
* | | NEWS: a typofix, and better word wrappingStefano Lattarini2013-12-311-3/+3
| | | | | | | | | | | | Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>