123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #!/bin/sh
- #
- # We should use /usr/bin/env sh, but some systems are notoriously picky.
- # In fact we could ommit this line if some automations wouldn't rely on
- # running this file via ./bootstrap.
- #
- # This file is in the public domain.
- # SPDX-License-Identifier: 0BSD
- #
- # We can't set -eu because we encounter warnings which
- # result in stops, whereas the warnings can for now be
- # safely ignored.
- # set -eu
- cleanup()
- {
- echo "Removing folder 'libltdl'..."
- rm -rf libltdl
- }
- errmsg=''
- # Check if shell supports builtin 'type'.
- if test -z "$errmsg"; then
- if ! (eval 'type type') >/dev/null 2>&1
- then
- errmsg='Shell does not support type builtin'
- exit 1
- fi
- fi
- # This is more portable than `which' but comes with
- # the caveat of not(?) properly working on busybox's ash:
- existence()
- {
- type "$1" >/dev/null 2>&1
- }
- check_uncrustify()
- {
- if existence uncrustify; then
- echo "Installing uncrustify hook and configuration"
- ln -fs contrib/build-common/conf/uncrustify.cfg uncrustify.cfg 2> /dev/null
- ln -fs contrib/build-common/conf/uncrustify_precommit .git/hooks/pre-commit 2> /dev/null
- else
- echo "Uncrustify not detected, hook not installed."
- echo "Please install uncrustify if you plan on doing development"
- fi
- }
- # yapf can be a suffixed binary, don't change the essential logic
- # of this if you change it.
- check_yapf()
- {
- if existence yapf || \
- existence yapf3.0 || \
- existence yapf3.1 || \
- existence yapf3.2 || \
- existence yapf3.3 || \
- existence yapf3.4 || \
- existence yapf3.5 || \
- existence yapf3.6 || \
- existence yapf3.7 || \
- existence yapf3.8 || \
- existence yapf3.9 || \
- existence yapf4.0; then
- echo "Installing yapf symlink"
- ln -fs contrib/build-common/conf/.style.yapf .style.yapf 2> /dev/null
- else
- echo "yapf not detected, please install yapf if you plan on contributing python code"
- fi
- }
- check_libtool()
- {
- echo "checking for libtoolize / libtool... "
- if existence libtool || \
- existence libtoolize || \
- existence glibtoolize || \
- existence slibtool; then
- autoreconf -if || exit 1
- . "bin/pogen.sh" || exit 1
- else
- echo "*** No libtoolize (libtool) or libtool found, please install it ***" >&2;
- exit 1
- fi
- }
- submodules()
- {
- # Try to update the submodule. Since bootstrap
- # is also invoked by distributors, we must
- # ignore any failing of this function as we
- # could have no outgoing network connection
- # in a restricted environment.
- if ! git --version >/dev/null; then
- echo "git not installed, skipping submodule update"
- else
- git submodule update --init || exit 1
- git submodule update --recursive || exit 1
- git submodule sync || exit 1
- fi
- }
- init_buildcommon_include()
- {
- cp contrib/build-common/Makefile.inc contrib/Makefile.inc || exit 1
- }
- main()
- {
- cleanup
- submodules
- init_buildcommon_include
- check_uncrustify
- check_yapf
- check_libtool
- }
- main "$@"
|