mirror of
git://git.sv.gnu.org/autoconf
synced 2024-11-21 01:01:48 +08:00
bfd3894367
On systems that normally use Unix line endings, if config.h.in has somehow been generated with DOS line endings, then awk will treat each CR character as part of the line. This breaks the regular expressions used to edit config.h.in into config.h To fix, manually strip trailing CRs from each “input record” before any other processing. For consistency I also made this change to the code dealing with AC_CONFIG_FILES substitutions. On systems that use DOS line endings, both changes should be no-ops. Reported by David Allsopp in <https://savannah.gnu.org/support/?110554>. He offered a different patch, which also worked on my machine, but it used a regular expression as the third argument to ‘split’, which might not be portable across awk implementations (the gawk manual is unclear). Also, it could produce a config.h with _inconsistent_ line endings. * lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS_PREPARE): In the awk script, strip a trailing CR from each record as the first action. (_AC_OUTPUT_FILES_PREPARE): Likewise. * tests/torture.at (CRLF line endings in .in files): New test. Co-authored-by: David Allsopp <david@davidallsopp.com> |
||
---|---|---|
bin | ||
build-aux | ||
doc | ||
lib | ||
m4 | ||
man | ||
tests | ||
.gitattributes | ||
.gitignore | ||
.prev-version | ||
.x-update-copyright | ||
AUTHORS | ||
bootstrap | ||
BUGS | ||
cfg.mk | ||
ChangeLog.0 | ||
ChangeLog.1 | ||
ChangeLog.2 | ||
ChangeLog.3 | ||
configure.ac | ||
COPYING | ||
COPYING.EXCEPTION | ||
COPYINGv3 | ||
GNUmakefile | ||
HACKING | ||
maint.mk | ||
Makefile.am | ||
manifest.scm | ||
NEWS | ||
README | ||
README-alpha | ||
README-hacking | ||
THANKS | ||
TODO |
-*- text -*- Autoconf Autoconf is an extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. These scripts can adapt the packages to many kinds of UNIX-like systems without manual user intervention. Autoconf creates a configuration script for a package from a template file that lists the operating system features that the package can use, in the form of M4 macro calls. Producing configuration scripts using Autoconf requires GNU M4 and Perl. You should install GNU M4 (version 1.4.8 or later is required; 1.4.16 or later is recommended) and Perl (5.006 or later) before configuring Autoconf, so that Autoconf's configure script can find them. The configuration scripts produced by Autoconf are self-contained, so their users do not need to have Autoconf (or GNU M4, Perl, etc.). You can get GNU M4 here: https://ftp.gnu.org/gnu/m4/ The file INSTALL should be distributed with packages that use Autoconf-generated configure scripts and Makefiles that conform to the GNU coding standards. The package's README can just give an overview of the package, where to report bugs, and a pointer to INSTALL for instructions on compilation and installation. This removes the need to maintain many similar sets of installation instructions. Be sure to read BUGS and INSTALL. Mail suggestions to autoconf@gnu.org, report bugs to bug-autoconf@gnu.org, and submit patches to autoconf-patches@gnu.org. All changes can be tracked at the read-only autoconf-commit@gnu.org. Always include the Autoconf version number, which you can get by running 'autoconf --version'. Archives of bug-autoconf@gnu.org can be found in <https://lists.gnu.org/archive/html/bug-autoconf/>, and similarly for the other mailing lists. Licensing ========= Autoconf is released under the General Public License version 3 (GPLv3+). Additionally, Autoconf includes a licensing exception in some of its source files; see the respective copyright notices for how your project is impacted by including scripts generated by Autoconf, and the COPYING.EXCEPTION file for the exception in terms of the Additional Permissions as described in section 7 of GPLv3. For more licensing information, see <https://www.gnu.org/licenses/gpl-faq.html> and <https://www.gnu.org/licenses/exceptions.html>. For any copyright year range specified as YYYY-ZZZZ in this package note that the range specifies every single year in that closed interval. GNU Project notice ================== Autoconf is part of the GNU Operating System, developed by the GNU Project. If you are the author of an awesome program and want to join us in writing Free (libre) Software, please consider making it an official GNU program and become a GNU Maintainer. Instructions on how to do this are here: https://www.gnu.org/help/evaluation Don't have a program to contribute? Look at all the other ways to help: https://www.gnu.org/help/help.html And to learn more about Free (libre) Software in general, please read and share this page: https://gnu.org/philosophy/free-sw.html We are looking forward to hacking with you! ----- Copyright (C) 1992-1994, 1998, 2000-2017, 2020-2023 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind.