doc: Fix enums.texi failure on out-of-tree builds

enums.texi is a generated file so we should not look for it in $(srcdir).
When we do, chaos ensues:

    mv -f enums.texi-tmp enums.texi
    mkdir enums
    ../../doc/scripts/split-texi.pl enums enum < ../../doc/enums.texi
    /bin/bash: ../../doc/enums.texi: No such file or directory
    make[4]: *** [stamp_enums] Error 1
    make[4]: Leaving directory `/home/user/gnutls/build/doc'
    make[3]: *** [all-recursive] Error 1
    make[3]: Leaving directory `/home/user/gnutls/build/doc'
    make[2]: *** [all] Error 2
    make[2]: Leaving directory `/home/user/gnutls/build/doc'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/user/gnutls/build'
    make: *** [all] Error 2

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Rename psk-args.def to psktool-args.def

Other utilities generate invoke-%.texi from %-args.def, but currently
invoke-psktool.texi is generated from psk-args.def.  If we make psktool
conform to the same convention as the other utilities, we can use a
generic pattern to handle all of them the same way.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
separated types for easier verification
more type separation
use psktool-args
more type separation
updated gnulib

This pulls in upstream commit cb3c90598 (stdint, read-file: fix missing
SIZE_MAX on Android).

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
README-alpha: Add gperf dependency for building from git

Without gperf, priority-options.h does not get built and this results
in a compile error.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Fix build failures involving doc/invoke-*.texi

Several problems were found in this area:

1) Currently, if SRC_DEF_* are undefined, autogen will get invoked with
no input file and it will hang forever waiting for content from stdin:

    mv -f enums.texi-tmp enums.texi
    mkdir enums
    ../../doc/scripts/split-texi.pl enums enum < enums.texi
    echo stamp_enums > stamp_enums
    cd ../src/ && autogen -Tagtexi-cmd.tpl  && \
        rm -f ../doc/invoke-gnutls-cli.texi && \
        ../doc/scripts/cleanup-autogen.pl <../src/invoke-gnutls-cli.texi >../doc/invoke-gnutls-cli.texi.tmp && \
        mv -f ../doc/invoke-gnutls-cli.texi.tmp ../doc/invoke-gnutls-cli.texi && \
        rm -f ../src/invoke-gnutls-cli.texi
    <HANG>

Since these documents are @include'd by other documents, it is probably
a good idea to make sure the targets are buildable in case they get
listed as prerequisites.

2) SRC_DEF_* used relative paths which are correct for an in-place build,
but incorrect for an out-of-tree build.  They should use something like
$(top_srcdir)/src to resolve the ambiguity.

3) cleanup-autogen.pl was also referenced using a relative pathname,
breaking out-of-tree builds.

4) The non-portable "sed -i" flag was used.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Fix build failures on autogen'ed docs

autogen needs to be invoked with $(srcdir)/<FOO>-args.def or else it
will not be able to find the input file if GnuTLS is built out of tree,
e.g.

    mkdir build
    cd build
    ../configure
    make

Also, add missing targets for %-args.h, to avoid this error:

    make[2]: Entering directory `/home/user/gnutls/src'
    autogen srptool-args.def
    autogen psk-args.def
    make[2]: *** No rule to make target `ocsptool-args.h', needed by `all'.  Stop.
    make[2]: Leaving directory `/home/user/gnutls/src'
    make[1]: *** [all-recursive] Error 1

For portability's sake we will spell out the rule for each target instead
of using a GNU '%' pattern rule:

https://www.gnu.org/software/make/manual/html_node/Features.html#Features

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
removed unused variables.
clang warning fixes
silence some warnings
more fixes due to clang
explicit type conversions when needed
stricter type usage
ciphersuites that utilize SHA256 or SHA384 are only available in TLS 1.0

The SSL 3.0 protocol (rfc6101) uses a variant of HMAC that is only
defined for MD5 and SHA1. Thus if such a ciphersuite is negotiated under
SSL 3.0, it will during MAC initialization.
re-enabled certificate verification