libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 50e28fbb90706a255d006fcc1988546078d64dac
parent 31ce530d6b9757f5489aa943d53553dc8a045f20
Author: Evgeny Grin <k2k@narod.ru>
Date:   Mon, 15 May 2023 13:37:41 +0300

bootstrap script: improved portability

Diffstat:
Mautogen.sh | 2+-
Mbootstrap | 64++++++++++++++++++++++++++++++++++++++++++++--------------------
2 files changed, 45 insertions(+), 21 deletions(-)

diff --git a/autogen.sh b/autogen.sh @@ -4,4 +4,4 @@ # It is recommended to use 'bootstrap' directly instead. ag_srcdir="${0%/*}" && ag_srcdir="${ag_srcdir}${ag_srcdir:+/}" -"${ag_srcdir}bootstrap" ${1+"$@"} +"${ag_srcdir}./bootstrap" ${1+"$@"} diff --git a/bootstrap b/bootstrap @@ -1,40 +1,64 @@ #!/bin/sh -unset bs_srcdir -if test X"`dirname / 2>/dev/null`" = X"/"; then - bs_scrdir=`dirname $0` -else - bs_scrdir="${0%/*}" -fi - -test -n "$bs_scrdir" && cd "$bs_scrdir" || echo "Warning: cannot get sources directory" 1>&2 # This is more portable than `which' but comes with # the caveat of not(?) properly working on busybox's ash: -existence() +have_command() { command -v "$1" >/dev/null 2>&1 } +unset bs_srcdir +if test X"`dirname / 2>/dev/null`" = X"/"; then + bs_scrdir=`dirname $0` +else + case $0 in + */*) bs_scrdir=`echo $0 | ${SED-sed} -n -e 's|/.*$||p'` ;; + *) bs_scrdir='.' ;; + esac +fi + +test -n "$bs_scrdir" && cd "$bs_scrdir" || echo "Warning: cannot detect sources directory" 1>&2 + +if test ! -f './configure.ac'; then + echo "Error: no 'configure.ac' found. Wrong sources directory?" 1>&2 + exit 2 +fi +if test ! -f './src/include/microhttpd.h'; then + echo "Error: src/include/libmicrohttpd.h not found. Wrong sources directory?" 1>&2 + exit 2 +fi -if existence uncrustify; then - echo "Installing uncrustify hook and configuration" - # Install uncrustify format symlink (if possible) - ln -s contrib/uncrustify.cfg uncrustify.cfg 2> /dev/null - # Install pre-commit hook (if possible) - ln -s ../../contrib/uncrustify_precommit .git/hooks/pre-commit 2> /dev/null +if have_command uncrustify; then + if test -f uncrustify.cfg; then + echo "Uncrustify configuration already exists, skipping installation from the upstream file." + else + echo "Installing configuration" + ln -s contrib/uncrustify.cfg uncrustify.cfg + fi + if test -d '.git'; then + if test -f .git/hooks/pre-commit; then + echo "Pre-commit git hook already exists, skipping installation from the upstream file." + else + echo "Installing uncrustify pre-commit git hook" + ln -s ../../contrib/uncrustify_precommit .git/hooks/pre-commit + fi + else + echo "No '.git' directory found, skipping installation of pre-commit git hook." + fi else - echo "Uncrustify not detected, hook not installed. Please install uncrustify if you plan on doing development" + echo "Uncrustify not detected, hook not installed. Please install uncrustify if you plan on doing development." fi -if existence libtool || existence libtoolize || existence glibtoolize || existence slibtool; then +if have_command libtool || have_command libtoolize || have_command glibtoolize || have_command slibtool; then echo "Running autotools..." - aclocal -I m4 --install && \ + have_command libtoolize && \ + aclocal -I m4 --install && \ libtoolize -c -i -v && \ autoconf && \ autoheader && \ automake -a -c --gnu if test $? -ne 0 || ! test -x configure || ! test -f Makefile.in ; then - echo "Autotools failed, retrying with autoreconf..." + echo "Trying with autoreconf..." if ! autoreconf -i ${1+"$@"} ; then echo "Failed to autoreconf, retrying with force install..." if ! autoreconf -i -f ${1+"$@"} ; then @@ -45,6 +69,6 @@ if existence libtool || existence libtoolize || existence glibtoolize || existen fi echo "The ${bs_scrdir-.}/configure is ready to run." else - echo "*** No libtoolize (libtool) or libtool found, please install it ***" >&2; + echo "*** No libtoolize or libtool found, please install it ***" >&2; exit 1 fi