# Bootstrap configuration.                                   -*-shell-script-*-

# Copyright (C) 2018-2025 Free Software Foundation, Inc.

# GNU Make 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.

# GNU Make 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 <https://www.gnu.org/licenses/>.

# Allow bootstrap to know that this is not a package
checkout_only_file=README.git

# Choose a specific version of gnulib, when checking out
GNULIB_REVISION=stable-202507

# Always copy files rather than symlink
copy=true

# Additional xgettext options to use.  Use "\\\newline" to break lines.
# Ensure that all our magical output macros are correctly marked as
# C (printf) format strings.
XGETTEXT_OPTIONS='\\\
 --from-code=UTF-8\\\
 --flag=_:1:pass-c-format\\\
 --flag=N_:1:pass-c-format\\\
 --flag=DB:2:c-format --flag=DBF:2:c-format --flag=DBS:2:c-format\\\
 --flag=O:3:c-format  --flag=OSN:3:c-format --flag=ONS:3:c-format\\\
 --flag=OS:3:c-format --flag=OSS:3:c-format --flag=OSSS:3:c-format\\\
 --flag=ON:3:c-format --flag=ONN:3:c-format\\\
'

# We manage our own .gitignore files
vc_ignore=

# Build prerequisites
buildreq="\
autoconf   2.72
automake   1.16.5
"

gnulib_name=libgnu
gnulib_files="doc/make-stds.texi m4/sig_atomic_t.m4"

# Using the full strtoll module pulls in a lot of stuff.  But, it's pretty
# simple to use just the base source file, so pull that.  We'll use it in
# src/misc.c if strtoll() is not found.
gnulib_files="$gnulib_files lib/strtol.c"

gnulib_modules="\
alloca
fdl
findprog-in
getloadavg
host-cpu-c-abi
largefile
make-glob
make-macros"
