# Copyright (C) 2016,2018 Tim Rühsen
# Copyright (C) 2016-2017 Simon Josefsson
# 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 .
# gnulib library name
source_base=gl
tests_base=gl/tests
m4_base=m4
gnulib_name=libgnu
gnulib_tool_option_extras="--without-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --lgpl=2"
use_libtool=1
checkout_only_file=
local_gl_dir=gl/override/
required_submodules="tests/suite/tls-fuzzer/python-ecdsa tests/suite/tls-fuzzer/tlsfuzzer tests/suite/tls-fuzzer/tlslite-ng tests/suite/tls-interoperability cligen devel/abi-dump devel/nettle devel/openssl devel/libtasn1"
# Those modules are common to lib/ and src/.
common_modules="
alloca attribute byteswap c-ctype c-strcase explicit_bzero fopen-gnu func getline gettext-h gettimeofday hash hash-pjw-bare arpa_inet inet_ntop inet_pton intprops lock memmem-simple minmax netdb netinet_in read-file secure_getenv setsockopt snprintf stdint stpcpy strcase strdup-posix strndup strtok_r strverscmp sys_socket sys_stat sys_types threadlib time_r unistd valgrind-tests vasprintf verify vsnprintf xalloc-oversized
"
gnulib_modules="
$common_modules dirname-lgpl extensions gendocs havelib ldd lib-msvc-compat lib-symbol-versions maintainer-makefile manywarnings pmccabe2html warnings
"
unistring_modules="
unictype/category-all unictype/property-default-ignorable-code-point unictype/property-join-control unictype/property-not-a-character uninorm/nfc uninorm/nfkc uninorm/u16-normalize uninorm/u32-normalize uninorm/u8-normalize unistr/u16-to-u8 unistr/u32-to-u8 unistr/u8-check unistr/u8-to-u16 unistr/u8-to-u32
"
src_modules="
$common_modules accept bind close close-stream connect getaddrinfo getpass inttypes listen linked-list parse-datetime progname read-file reallocarray recv recvfrom select send sendto servent setsockopt shutdown socket sockets socklen xalloc xlist xsize
"
# Build prerequisites
buildreq="\
autoconf 2.62
automake 1.11.1
gettext 0.17
git 1.4.4
perl 5.5
gperf -
autopoint -
gtkdocize -
"
# update git submodules
git_options=
if test -n "$SUBMODULE_NOFETCH"; then
git_options="--no-fetch"
fi
for mod in $required_submodules; do
git submodule update --init $git_options $mod
done
# This check needs to be done before actual import.
TMP_GNULIB_SRCDIR="${GNULIB_SRCDIR:-gnulib}"
if test -d "$TMP_GNULIB_SRCDIR"; then
if ${TMP_GNULIB_SRCDIR}/gnulib-tool --extract-recursive-dependencies ${gnulib_modules} | grep -E 'select|poll|sockets|recv|send' > /dev/null 2>&1; then
die "the library cannot include the gnulib sockets; see CONTRIBUTING.md"
fi
fi
bootstrap_post_import_hook ()
{
${GNULIB_SRCDIR}/gnulib-tool --import --local-dir=lib/unistring/override --lib=libunistring --source-base=lib/unistring --m4-base=lib/unistring/m4 --doc-base=doc --aux-dir=build-aux --lgpl=3orGPLv2 --no-conditional-dependencies --libtool --without-tests --macro-prefix=unistring ${unistring_modules}
${GNULIB_SRCDIR}/gnulib-tool --import --local-dir=src/gl/override --lib=libgnu_gpl --source-base=src/gl --m4-base=src/gl/m4 --doc-base=doc --tests-base=src/gl/tests --aux-dir=build-aux --no-conditional-dependencies --libtool --macro-prefix=ggl --with-tests --no-vc-files ${src_modules}
gtkdocize || {
echo "No gtk-doc support found. You can't build the docs."
# rm because gtk-doc.make might be a link to a protected file
rm -f gtk-doc.make
# Those need to be defined because the upstream Makefile boilerplate
# (doc/reference/Makefile.am) relies on them.
cat > gtk-doc.make <