-#!/bin/sh
+#!/usr/bin/env sh
+
+# Caveats:
+# - checks with textprocessing assuming that system language is English.
+# - maybe check last return status instead?
+# - Do we need to set awk to which awk becomes available or is awk
+# always available as just awk?
progname=${0##*/}
statusmsg "========================================="
}
-# It is okay to assume which(1) here because we provide
-# more than 1 fallback.
-TEST=`type type|grep not`
-if test -n "$TEST"; then
- WHICH=which
-else
- WHICH=type
+errmsg=''
+
+# Check if shell support 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
os_check()
# awk isn't there it can't be found.
awk_check()
{
- if test -n "`awk 2>&1 | tail -1 | awk '{print $1}'`"; then
+ if test -z "`type awk 2>&1 | awk '/not found/'`"; then
infomsg "awk : Found"
else
warningmsg "awk : Not found!"
+ exit 1
fi
}
gcc_check()
{
- TEST=`$WHICH gcc | grep -v "not found" 2>/dev/null`
- if test -n "$TEST"; then
+ if test -z "`type gcc | awk '/not found/' 2>/dev/null`"; then
VERS=`gcc --version 2>/dev/null | head -n 1`
infomsg "gcc : $VERS"
elif test -n "`gcc 2>&1 | tail -1 | awk '{print $1}'`"; then
cc_check()
{
- TEST=`$WHICH cc | grep -v "not found" 2>/dev/null`
- if test -n "$TEST"; then
+ if test -z "`type cc | awk '/not found/' 2>/dev/null`"; then
VERS=`cc --version 2>/dev/null | head -n 1`
infomsg "cc : $VERS"
else
cplusplus_check()
{
- TEST=`$WHICH c++ | grep -v "not found" 2>/dev/null`
- if test -n "$TEST"; then
+ if test -z "`type c++ | awk '/not found/' 2>/dev/null`"; then
VERS=`c++ --version 2>/dev/null | head -n 1`
infomsg "c++ : $VERS"
else
clang_check()
{
- TEST=`$WHICH clang | grep -v "not found" 2>/dev/null`
- if test -n "$TEST"; then
+ TEST=`type clang | awk '/not found/' 2>/dev/null`
+ if test -z "$TEST"; then
VERS=`clang --version 2>/dev/null | head -n 1`
infomsg "clang : $VERS"
elif test -n "`clang 2>&1 | tail -1 | awk '{print $1}'`"; then
clangplusplus_check()
{
- TEST=`$WHICH clang++ | grep -v "not found" 2>/dev/null`
+ TEST=`type clang++ | awk '/not found/' 2>/dev/null`
if test -n "$TEST"; then
VERS=`clang++ --version 2>/dev/null | head -n 1`
infomsg "clang++ : $VERS"
gmake_check()
{
- TEST=`$WHICH gmake | grep -v "not found" 2>/dev/null`
- if test -n "$TEST" ; then
+ TEST=`type gmake | awk '/not found/' 2>/dev/null`
+ if test -z "$TEST" ; then
VER=$(gmake --version 2>/dev/null | awk '/GNU Make/ {print $3}')
infomsg "gmake : $VER"
else
TEST=`make --version 2>/dev/null`
if test -n "$TEST"; then
- VER=$(make --version 2>/dev/null | awk '/GNU Make/ {print $3}')
+ VER=$(make --version 2>/dev/null | awk '/GNU Make/ {print $3}')
infomsg "gmake : $VER"
else
- warningmsg "gmake : Not Found"
+ warningmsg "gmake : Not Found"
fi
fi
}
-# Applies for NetBSD make and possibly every make.
+# Applies at least for NetBSD make. This test is a little awkward,
+# we should probably grep the output of 'make -dA'. nbmake identifies,
+# NetBSD make from NetBSD (nbmake is portable, external) does not identify.
make_check()
{
- if test -n "`make 2>/dev/null`"; then
- infomsg "make : Found"
- else
- warningmsg "make : Not Found"
+ TEST=`type make | awk '/not found/' 2>/dev/null`
+ if test -z "$TEST"; then
+ VER=$(make --version 2>/dev/null | awk '// {print $0}')
+ if test -z "$VER"; then
+ infomsg "make : Found"
+ else
+ warningmsg "make : Not Found (unexpected result)"
+ fi
fi
}
autoconf_check()
{
- TEST=`$WHICH autoconf | grep -v "not found" 2>/dev/null`
- if test -n "$TEST"; then
+ TEST=`type autoconf | awk '/not found/' 2>/dev/null`
+ if test -z "$TEST"; then
autoconf --version |\
head -n 1 |\
awk '{\
automake_check()
{
- TEST=`$WHICH automake | grep -v "not found" 2>/dev/null`
- if test -n "$TEST"; then
+ TEST=`type automake | awk '/not found/' 2>/dev/null`
+ if test -z "$TEST"; then
VER=`automake --version 2>/dev/null | head -n 1 | awk '{print $4}'`
infomsg "automake : $VER"
else
# TODO: More libtool variants.
libtool_check()
{
- TEST=`$WHICH libtoolize | grep -v "not found" 2>/dev/null`
- if test -n "$TEST"; then
+ TEST=`type libtoolize | awk '/not found/' 2>/dev/null`
+ if test -z "$TEST"; then
VER=`libtoolize --version 2>/dev/null | head -n 1 | awk '{print $4}'`
infomsg "libtool : $VER"
else
libextractor_check()
{
- TEST=`$WHICH extract | grep -v "not found" 2>/dev/null`
- if test -n "$TEST"; then
+ TEST=`type extract | awk '/not found/' 2>/dev/null`
+ if test -z "$TEST"; then
VER=`extract -v 2>/dev/null | head -n 1 | awk '{print $2}'`
infomsg "libextractor : $VER"
else
fi
}
-gnunet08_check()
+gnunet_version_check()
{
- if test -x gnunetd; then
- VER=`gnunetd -v | sed -e "s/v//" 2>/dev/null`
- warningmsg "GNUnet 0.8 : $VER (may conflict!)"
- else
+ # historical, should not be matched
+ T08=`type gnunetd | awk '/not found/' 2>/dev/null`
+ if test -z "$T08"; then
+ VER08=`gnunetd -v | awk '{if(/0.8/) { gsub("v",""); print $2}}'`
infomsg "GNUnet 0.8 : Not Found (good)"
+ # else
+ # warningmsg "GNUnet 0.8 : $VER08 (may conflict!)"
fi
-}
-
-gnunet09x_check()
-{
- TEST=`$WHICH gnunet-arm | grep -v "not found" 2>/dev/null`
- if test -n "$TEST"; then
- VER=`gnunet-arm -v | sed -e "s/v//" 2>/dev/null | awk '{print $2}'`
- VER9=`echo $VER | grep ^0\.9\.`
- if test -n "$VER9"; then
- warningmsg "GNUnet 0.9 : $VER"
- else
- infomsg "GNUnet 0.9 : Not Found (good)"
- fi
- else
- infomsg "GNUnet 0.9 : Not Found (good)"
- fi
-}
-
-gnunet010x_check()
-{
- TEST=`$WHICH gnunet-arm | grep -v "not found" 2>/dev/null`
- if test -n "$TEST"; then
- VER=`gnunet-arm -v | sed -e "s/v//" 2>/dev/null | awk '{print $2}'`
- VER10=`echo $VER | grep ^0\.10\.`
- if test -n "$VER10"; then
- warningmsg "GNUnet 0.10 : $VER"
- else
- infomsg "GNUnet 0.10 : Not Found (good)"
- fi
- else
- infomsg "GNUnet 0.10 : Not Found (good)"
- fi
-}
-
-gnunet011x_check()
-{
- TEST=`$WHICH gnunet-arm | grep -v "not found" 2>/dev/null`
- if test -n "$TEST"; then
- VER=`gnunet-arm -v | sed -e "s/v//" 2>/dev/null | awk '{print $2}'`
- infomsg "GNUnet 0.11 : $VER"
+ TEST=`type gnunet-arm | awk '/not found/' 2>/dev/null`
+ if test -z "$TEST"; then
+ gnunet-arm --version |\
+ awk '{\
+ if (/not found/) {\
+ print " INFO: GNUnet : Not found"\
+ } else if (/[0-9]/) {\
+ gsub("v",""); print " INFO: GNUnet : "$2\
+ } else {\
+ print " INFO: GNUnet : Test failed"\
+ }}'
else
- warningmsg "GNUnet 0.11.x : Not Found"
+ warningmsg "GNUnet : Not Found"
fi
}
gitcommit_check()
{
- TEST=$(git | grep -v "not found" 2> /dev/null)
- if test -n "$TEST"; then
+ TEST=$(git | awk '/not found/' 2> /dev/null)
+ if test -z "$TEST"; then
VER=$(git rev-parse HEAD)
infomsg "git commit : $VER"
else
gcrypt_check()
{
- TEST=`$WHICH libgcrypt-config | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
+ TEST=`type libgcrypt-config | awk '/not found/' 2> /dev/null`
+ if test -z "$TEST"; then
VER=`libgcrypt-config --version 2> /dev/null`
infomsg "libgcrypt : $VER"
else
mysql_check()
{
- TEST=`$WHICH mysql_config | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
+ TEST=`type mysql_config | awk '/not found/' 2> /dev/null`
+ if test -z "$TEST"; then
VER=`mysql_config --version 2> /dev/null`
infomsg "mysql : $VER"
else
pkgconf_check()
{
- TEST=`$WHICH pkgconf | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
+ TEST=`type pkgconf | awk '/not found/' 2> /dev/null`
+ if test -z "$TEST"; then
pkgconf --version 2> /dev/null | awk '{print " INFO: pkgconf : "$1}'
else
infomsg "pkgconf : Not Found"
fi
-}
-
-pkgconfig_check()
-{
- TEST=`$WHICH pkg-config | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
+ TEST=`type pkg-config | awk '/not found/' 2> /dev/null`
+ if test -z "$TEST"; then
VER=`pkg-config --version 2> /dev/null | awk '{print $1}'`
infomsg "pkg-config : $VER"
else
glib2_check()
{
- TEST=`$WHICH pkg-config | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
+ TEST=`type pkg-config | awk '/not found/' 2> /dev/null`
+ if test -z "$TEST"; then
VER=`pkg-config --modversion glib-2.0 2> /dev/null | awk '{print $1}'`
infomsg "glib2 : $VER"
else
fi
}
-gtk2_check()
+gtk_check()
{
- TEST=`$WHICH pkg-config | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
+ TEST=`type pkg-config | awk '/not found/' 2> /dev/null`
+ if test -z "$TEST"; then
VER=`pkg-config --modversion gtk+-2.0 2> /dev/null | awk '{print $1}'`
if test -n "$VER"; then
- infomsg "gtk2+ : $VER"
+ infomsg "GTK2 : $VER"
else
- infomsg "gtk2+ : Not found"
+ infomsg "GTK2 : Not found"
fi
else
- infomsg "gtk2+ : Not Found"
+ infomsg "GTK2 : Not Found"
fi
-}
-gtk3_check()
-{
- TEST=`$WHICH pkg-config | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
+ if test -z "$TEST"; then
VER=`pkg-config --modversion gtk+-3.0 2> /dev/null | awk '{print $1}'`
if test -n "$VER"; then
- infomsg "gtk3+ : $VER"
+ infomsg "GTK3 : $VER"
else
- infomsg "gtk3+ : Not found"
+ infomsg "GTK3 : Not found"
fi
else
- infomsg "gtk3+ : Not Found"
+ infomsg "GTK3 : Not Found"
fi
-}
-gtk4_check()
-{
- TEST=`$WHICH pkg-config | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
+ if test -z "$TEST"; then
VER=`pkg-config --modversion gtk+-4.0 2> /dev/null | awk '{print $1}'`
- if test -n "$VER"; then
- infomsg "gtk4+ : $VER"
+ if test -z "$VER"; then
+ infomsg "GTK4 : $VER"
else
- infomsg "gtk4+ : Not found"
+ infomsg "GTK4 : Not found"
fi
else
- infomsg "gtk4+ : Not Found"
+ infomsg "GTK4 : Not Found"
fi
}
gmp_check()
{
- TEST=`$WHICH dpkg | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
+ TEST=`type dpkg | awk '/not found/' 2> /dev/null`
+ if test -z "$TEST"; then
LINES=`dpkg -s libgmp-dev | grep Version | wc -l 2> /dev/null`
if test "$LINES" = "1"
then
errormsg "GMP : dpkg: libgmp-dev not installed"
fi
else
- TEST=`$WHICH rpm | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
+ TEST=`type rpm | awk '/not found/' 2> /dev/null`
+ if test -z "$TEST"; then
rpm -q gmp | sed -e "s/gmp-//" 2> /dev/null | \
infomsg "GMP : $1.rpm"
else
infomsg "GMP : Test not available"
fi
- TEST=$($WHICH pkg_info | grep -v "not found" 2> /dev/null)
- if test -n "$TEST"; then
+ TEST=$(type pkg_info | awk '/not found/' 2> /dev/null)
+ if test -z "$TEST"; then
VER=$(pkg_info -e gmp)
infomsg "GMP : $VER"
else
libunistring_check()
{
- TEST=`$WHICH dpkg | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
- LINES=`dpkg -s libunistring-dev | grep Version | wc -l`
+ TEST=`type dpkg | awk '/not found/' 2> /dev/null`
+ if test -z "$TEST"; then
+ LINES=`dpkg -s libunistring-dev | awk '/Version/' | wc -l`
if test "$LINES" = "1"
then
- VERSION=`dpkg -s libunistring-dev | grep Version | awk '{print $2}'`
+ VERSION=`dpkg -s libunistring-dev | awk '/Version/ {print $2}'`
infomsg "libunistring : libunistring3-dev-$VERSION.deb"
else
errormsg "libunistring : dpkg: libunistring3-dev not installed"
fi
else
- TEST=`$WHICH rpm | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
+ TEST=`type rpm | awk '/not found/' 2> /dev/null`
+ if test -z "$TEST"; then
rpm -q unistring | sed -e "s/unistring-//" 2> /dev/null | \
awk '{print "libunistring : "$1.rpm}'
else
infomsg "libunistring : Test not available"
fi
- TEST=$($WHICH pkg_info | grep -v "not found" 2> /dev/null)
- if test -n "$TEST"; then
+ TEST=$(type pkg_info | awk '/not found/' 2> /dev/null)
+ if test -z "$TEST"; then
VER=$(pkg_info -e libunistring)
infomsg "libunistring : $VER"
else
gnugettext_check()
{
- TEST=`$WHICH gettext | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
+ TEST=`type gettext | awk '/not found/' 2> /dev/null`
+ if test -z "$TEST"; then
if test -n "$(gettext --version 2>&1 | awk '/unknown option/')"; then
infomsg "GNU gettext : Not found"
else
gettext_check()
{
- if test -n "`$WHICH getext 2>/dev/null`"; then
+ if test -n "`type getext 2>/dev/null`"; then
infomsg "gettext : Found"
else
infomsg "gettext : Not Found"
# found (yes those systems exist)
curl_check()
{
- TEST=`$WHICH curl-config | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
- VER=`curl-config --version | head -n1 2> /dev/null | awk '{print $2}'`
+ TEST=`type curl-config | awk '/not found/' 2> /dev/null`
+ if test -z "$TEST"; then
+ VER=`curl-config --version 2> /dev/null | awk '{print $NF}'`
infomsg "libcurl : $VER"
else
infomsg "libcurl : Not found"
gnurl_check()
{
- TEST=`$WHICH gnurl-config | grep -v "not found" 2> /dev/null`
- if test -n "$TEST"; then
- VER=`gnurl-config --version | head -n1 2> /dev/null | awk '{print $2}'`
+ TEST=`type gnurl-config | awk '/not found/' 2> /dev/null`
+ if test -z "$TEST"; then
+ VER=`gnurl-config --version 2> /dev/null | awk '{print $NF}'`
infomsg "libgnurl : $VER"
else
infomsg "libgnurl : Not found"
return 0;
}
EOF
- if test -x `$WHICH gcc | awk '{print $NF}'`; then
+ if test -x `type gcc | awk '{print $NF}'`; then
gcc $CPPFLAGS $CFLAGS -o "$TMPFILE".bin "$TMPFILE"
VER=`./"$TMPFILE".bin`
- elif test -x `$WHICH cc | awk '{print $NF}'`; then
+ elif test -x `type cc | awk '{print $NF}'`; then
cc $CPPFLAGS $CFLAGS -o $TMPFILE.bin $TMPFILE
VER=`./$TMPFILE.bin`
else
return 0;
}
EOF
- if test -x `$WHICH gcc | awk '{print $NF}'`; then
+ if test -x `type gcc | awk '{print $NF}'`; then
gcc $CPPFLAGS $CFLAGS -o "$TMPFILE".bin $TMPFILE
VER=`./$TMPFILE.bin`
- elif test -x `$WHICH cc | awk '{print $NF}'`; then
+ elif test -x `type cc | awk '{print $NF}'`; then
cc $CPPFLAGS $CFLAGS -o "$TMPFILE".bin $TMPFILE
VER=`./"$TMPFILE".bin`
else
return 0;
}
EOF
- if test -x `$WHICH gcc | awk '{print $NF}'`; then
+ if test -x `type gcc | awk '{print $NF}'`; then
gcc $CPPFLAGS $CFLAGS -o "$TMPFILE".bin $TMPFILE
VER=`./"$TMPFILE".bin`
- elif test -x `$WHICH cc | awk '{print $NF}'`; then
+ elif test -x `type cc | awk '{print $NF}'`; then
cc $CPPFLAGS $CFLAGS -o "$TMPFILE".bin $TMPFILE
VER=`./"$TMPFILE".bin`
else
echo "CPPFLAGS='-I/usr/pkg/include' LDFLAGS='-L/usr/pkg/lib' ${progname}"
return 0
fi
- echo $LDFLAGS
- echo $CPPFLAGS
+ #echo $LDFLAGS
+ #echo $CPPFLAGS
infomsg "${progname} 0.11.0"
infomsg
infomsg "Please submit the following"
cplusplus_check
clang_check
clangplusplus_check
- gmake_check
make_check
+ gmake_check
autoconf_check
automake_check
libtool_check
libextractor_check
- gnunet08_check
- gnunet09x_check
- gnunet010x_check
- gnunet011x_check
+ gnunet_version_check
gitcommit_check
gcrypt_check
mysql_check
pkgconf_check
- pkgconfig_check
glib2_check
- gtk2_check
- gtk3_check
- gtk4_check
+ gtk_check
gmp_check
libunistring_check
gnugettext_check