# Bootstrap configuration. # Copyright (C) 2006-2023 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 . # We don't need these modules. avoided_gnulib_modules=' --avoid=canonicalize-lgpl --avoid=dummy ' # gnulib modules used by this package. gnulib_modules=" $avoided_gnulib_modules acl alignalloc alignasof alloca announce-gen areadlink-with-size areadlinkat-with-size argmatch argv-iter assert assert-h assure attribute autobuild backupfile backup-rename base32 base64 btowc buffer-lcm byteswap c-strcase cl-strtod cl-strtold calloc-gnu canon-host canonicalize chmodat chown chownat cloexec closein closeout config-h configmake copy-file-range count-leading-zeros crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 crypto/sm3 cycle-check d-ino d-type di-set dirfd dirname do-release-commit-and-tag dtoastr dup2 environ error euidaccess exclude exitfail explicit_bzero faccessat fadvise fchdir fchmodat fchownat fclose fcntl fcntl-safer fd-reopen fdatasync fdopen fdutimensat file-has-acl file-type fileblocks filemode filenamecat filevercmp flexmember fnmatch-gnu fopen-safer fprintftime fpurge free-posix freopen freopen-safer fseeko fstatat fsusage fsync ftoastr ftruncate fts full-read full-write getgroups gethrxtime getline getloadavg getlogin getndelim2 getopt-gnu getpagesize getpass-gnu gettext-h gettime gettime-res getugroups getusershell git-version-gen gitlog-to-changelog gnu-make gnu-web-doc-update gnumakefile gnupload group-member hard-locale hash hash-triple heap host-os human idcache idx ignore-value inttostr inttypes isapipe isatty isblank largefile lchmod lchown ldtoastr lib-ignore libgmp linebuffer link link-follow linkat long-options lstat maintainer-makefile malloc-gnu manywarnings mbrlen mbrtowc mbsalign mbschr mbslen mbswidth memcasecmp memchr memcmp2 mempcpy memrchr minmax mgetgroups mkancesdirs mkdir mkdir-p mkdirat mkfifo mkfifoat mknod mkostemp mkstemp mktime nullptr modechange mountlist mpsort netinet_in nproc nstrftime obstack open openat-safer parse-datetime parse-datetime2 pathmax perl physmem pipe-posix pipe2 posix-shell posixtm posixver priv-set progname propername-lite pthread-cond pthread-mutex pthread-thread pthread_sigmask putenv quote quotearg randint randperm rawmemchr read-file readlink readtokens readtokens0 readutmp realloc-gnu regex remove rename renameat renameatu rmdir root-dev-ino rpmatch safe-read same save-cwd savedir savewd select selinux-at setenv settime sig2str sigaction smack ssize_t stat-macros stat-size stat-time stdbool stdckdint stdlib-safer stpcpy stpncpy strdup-posix strncat strnumcmp strsignal strtoimax strtoumax symlinkat sys_ioctl sys_resource sys_stat sys_wait targetdir tempname termios time_rz timer-time timespec tmpdir tzset uname unicodeio unistd-safer unlink-busy unlinkat unlinkdir unlocked-io unsetenv update-copyright useless-if-before-free userspec utimecmp utimens utimensat vasprintf-posix vc-list-files verify verror version-etc-fsf wchar-single wcswidth wcwidth winsz-ioctl winsz-termios write-any-file xalignalloc xalloc xbinary-io xdectoint xfts xgetcwd xgetgroups xgethostname xmemcoll xnanosleep xprintf xprintf-posix xreadlink xstrtod xstrtoimax xstrtol xstrtol-error xstrtold xstrtoumax year2038-recommended yesno " # Other locale categories that need message catalogs. EXTRA_LOCALE_CATEGORIES=LC_TIME # Additional xgettext options to use. Use "\\\newline" to break lines. XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ --flag=asnprintf:3:c-format\\\ --flag=asprintf:2:c-format\\\ --flag=error:3:c-format\\\ --flag=error_at_line:5:c-format\\\ --flag=vasnprintf:3:c-format\\\ --flag=vasprintf:2:c-format\\\ --flag=verror:3:c-format\\\ --flag=verror_at_line:5:c-format\\\ --flag=wrapf:1:c-format\\\ --flag=xasprintf:1:c-format\\\ --flag=xfprintf:2:c-format\\\ --flag=xprintf:1:c-format\\\ --from-code=UTF-8\\\ ' # Append these, since we use the propername module. see_manual='"This is a proper name. See the gettext manual, section Names."' see_manual=\'"$see_manual"\' XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ --keyword=proper_name:1,'"$see_manual"'\\\ --keyword=proper_name_lite:1,'"$see_manual"'\\\ ' gnulib_tool_option_extras="--tests-base=gnulib-tests --with-tests --symlink\ --makefile-name=gnulib.mk --automake-subdir " # Build prerequisites buildreq="\ autoconf 2.64 automake 1.11.2 autopoint 0.19.2 bison - gettext 0.19.2 git 1.4.4 gperf - gzip - m4 - makeinfo 6.1 texi2pdf 6.1 patch - perl 5.5 tar - wget - xz - " bootstrap_post_import_hook () { # Automake requires that ChangeLog exist. touch ChangeLog || return 1 # List of coreutils programs. See heading comments in the invoked # script for more info. Keep this in sync with the rules in (m4f=m4/cu-progs.m4 mkf=src/cu-progs.mk tmp=cu-progs.tmp \ && rm -f $m4f $mkf $tmp-1 $tmp-2 \ && build-aux/gen-lists-of-programs.sh --autoconf >$tmp-1 \ && build-aux/gen-lists-of-programs.sh --automake >$tmp-2 \ && chmod a-w $tmp-1 $tmp-2 \ && mv -f $tmp-1 $m4f && mv -f $tmp-2 $mkf) # Regenerate src/single-binary.mk (mkf=src/single-binary.mk tmp=single-binary.tmp \ && rm -f $mkf $tmp \ && build-aux/gen-single-binary.sh src/local.mk >$tmp \ && chmod a-w $tmp \ && mv -f $tmp $mkf) } bootstrap_epilogue() { # 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 # Add dummy 'install-html' target, required for packages using # non-recursive makefiles with older gettext. # See https://debbugs.gnu.org/25690 if ! grep -w 'install-html' po/Makefile.in.in ; then printf 'install-%s:;\n' dvi ps pdf html >> po/Makefile.in.in fi # 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 }