# Bootstrap configuration. # Copyright (C) 2006-2013, 2015-2026 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . avoided_gnulib_modules=' --avoid=hard-locale --avoid=localename-unsafe --avoid=localename-unsafe-limited --avoid=lock-tests --avoid=mbuiter --avoid=mbuiterf --avoid=setlocale ' # These tests depend on localcharset, which we avoid. avoided_gnulib_tests=' --avoid=c32width-tests --avoid=quotearg-simple-tests --avoid=regex-tests --avoid=wcwidth-tests ' # These test whether all bytes are valid in the C locale, # which we don't care about. avoided_gnulib_tests=$avoided_gnulib_tests' --avoid=btoc32-tests --avoid=btowc-tests --avoid=mbrtoc32-tests --avoid=mbrtowc-tests --avoid=mbsrtoc32s-tests --avoid=mbsrtowcs-tests ' # gnulib modules used by this package. gnulib_modules=' announce-gen argmatch assert-h attribute binary-io bool builtin-expect c-ctype c-file-type c-stack c32isprint c32isspace c32tolower c32width careadlinkat config-h d-type diffseq dirname do-release-commit-and-tag dup2 error exclude exitfail extensions extern-inline fcntl fdopendir filenamecat flexmember fnmatch-gnu fopen-gnu fstatat getopt-gnu gettext-h git-version-gen gitlog-to-changelog gnu-make gnu-web-doc-update gnumakefile gnupload ialloc idx intprops inttypes-h largefile lstat maintainer-makefile manywarnings mbscasecmp mcel-prefer mempcpy minmax mkstemp mktime nstrftime-limited nullptr openat pclose perl popen progname propername-lite quote raise rawmemchr readdir readlinkat readme-release regex same-inode sh-quote sigaction signal-h sigprocmask stat stat-macros stat-size stat-time stdc_bit_width stdckdint-h stdcountof-h stdint-h stpcpy strcase strptime strtoimax system-quote sys_types-h sys_wait-h timespec timespec_get time_rz unistd-h unlocked-io update-copyright verify version-etc version-etc-fsf xalloc xfreopen xmalloca xstdopen xstrtoimax year2038 ' # Additional xgettext options to use. Use "\\\newline" to break lines. XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ --flag=asnprintf:3:c-format\\\ --flag=asprintf:2:c-format\\\ --from-code=UTF-8\\\ --flag=message:1:c-format\\\ --flag=try_help:1:c-format\\\ --flag=vasprintf:2:c-format\\\ --flag=vasnprintf:3:c-format\\\ ' gnulib_tool_option_extras="--tests-base=gnulib-tests --local-dir=gl --with-tests --symlink --makefile-name=gnulib.mk $avoided_gnulib_modules $avoided_gnulib_tests " # Build prerequisites buildreq="\ autoconf 2.64 automake 1.14 autopoint 0.19.2 gettext 0.19.2 git 1.4.4 gperf - gzip - help2man - m4 - makeinfo - perl 5.5 texi2pdf 6.1 tar - wget - xz - " bootstrap_post_import_hook () { # Automake requires that ChangeLog exist. touch ChangeLog || exit 1 # Copy tests/init.sh from Gnulib. $gnulib_tool --copy-file tests/init.sh # Copy pkg-config's pkg.m4 so that our downstream users don't need to. local ac_dir=`aclocal --print-ac-dir` test -s "$ac_dir/dirlist" && ac_dir=$ac_dir:`tr '\n' : < "$ac_dir/dirlist"` oIFS=$IFS IFS=: for dir in \ $ACLOCAL_PATH $ac_dir /usr/share/aclocal '' do IFS=$oIFS if test -n "$dir" && test -r "$dir/pkg.m4"; then cp "$dir/pkg.m4" m4/pkg.m4 return fi done IFS=$oIFS die 'Cannot find pkg.m4; perhaps you need to install pkg-config' } bootstrap_epilogue() { perl -pi -e "s/\@PACKAGE\@/$package/g" README-release # Since this is a "GNU" package, replace this line # if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null \ # | grep -v 'libtool:' >/dev/null; then # with this: # if true; then # Why? That pipeline searches all files in $(top_srcdir), and if you # happen to have large files (or apparently large sparse files), the # first grep may well run out of memory. perl -pi -e 's/if LC_ALL=C grep .GNU .PACKAGE.*; then/if true; then/' \ po/Makefile.in.in # Install our git hooks, as long as "cp" accepts the --backup option, # so that we can back up any existing files. case $(cp --help) in *--backup*) backup=1;; *) backup=0;; esac if test $backup = 1; then hooks=$(cd scripts/git-hooks && git ls-files) for f in $hooks; do # If it is identical, skip it. cmp scripts/git-hooks/$f .git/hooks/$f > /dev/null \ && continue cp --backup=numbered scripts/git-hooks/$f .git/hooks chmod a-w .git/hooks/$f done fi }