Mercurial > gnulib
changeset 18604:1bfb1ca01cac
posix-modules: Add options for specific platforms.
* posix-modules (func_usage): Document options --for-mingw, --for-msvc.
(exclude_for_mingw, exclude_for_msvc, exclude): New variables.
Invoke func_tmpdir. Filter out the excludes.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 17 Dec 2016 11:50:06 +0100 |
parents | 2a7f4c436fe2 |
children | 33b898f9e587 |
files | ChangeLog posix-modules |
diffstat | 2 files changed, 53 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sun Dec 18 13:07:43 2016 +0100 +++ b/ChangeLog Sat Dec 17 11:50:06 2016 +0100 @@ -1,3 +1,10 @@ +2016-12-18 Bruno Haible <bruno@clisp.org> + + posix-modules: Add options for specific platforms. + * posix-modules (func_usage): Document options --for-mingw, --for-msvc. + (exclude_for_mingw, exclude_for_msvc, exclude): New variables. + Invoke func_tmpdir. Filter out the excludes. + 2016-12-18 Bruno Haible <bruno@clisp.org> getopt: Fix link error for users of getopt() in <unistd.h>.
--- a/posix-modules Sun Dec 18 13:07:43 2016 +0100 +++ b/posix-modules Sat Dec 17 11:50:06 2016 +0100 @@ -24,10 +24,15 @@ func_usage () { echo "\ -Usage: posix-modules +Usage: posix-modules [option] Lists the gnulib modules that implement POSIX interfaces. +Options: + + --for-mingw list only modules that work on mingw + --for-msvc list only modules that work on MSVC + Report bugs to <bug-gnulib@gnu.org>." } @@ -217,9 +222,27 @@ } fi +# Excludes for mingw. +exclude_for_mingw= +# <grp.h> does not exist. +exclude_for_mingw="$exclude_for_mingw pt_chown grantpt posix_openpt-tests posix_openpt" +# The functions getuid, getgid, geteuid, getegid don't exist. +exclude_for_mingw="$exclude_for_mingw euidaccess faccessat" +exclude_for_mingw="$exclude_for_mingw fchownat-tests fchownat" + +# Excludes for MSVC. +exclude_for_msvc="$exclude_for_mingw" + # Command-line option processing. +exclude= while test $# -gt 0; do case "$1" in + --for-mingw | --for-ming | --for-min | --for-mi ) + exclude="$exclude $exclude_for_mingw" + shift ;; + --for-msvc | --for-msv | --for-ms ) + exclude="$exclude $exclude_for_msvc" + shift ;; --help | --hel | --he | --h ) func_usage exit $? ;; @@ -238,6 +261,18 @@ done func_gnulib_dir +func_tmpdir +trap 'exit_status=$? + if test "$signal" != 0; then + echo "caught signal $signal" >&2 + fi + rm -rf "$tmp" + exit $exit_status' 0 +for signal in 1 2 3 13 15; do + trap '{ signal='$signal'; func_exit 1; }' $signal +done +signal=0 + ( # Get the header modules. LC_ALL=C grep -h '^Gnulib module: ' "$gnulib_dir"/doc/posix-headers/*.texi 2>/dev/null \ @@ -250,7 +285,16 @@ | { # Then filter out the words "---", "and", "or" and remove *-gnu modules. tr ' ' '\012' | sed -e '/^---$/d' -e '/^and$/d' -e '/^or$/d' -e '/-gnu$/d' } \ - | LC_ALL=C sort | LC_ALL=C uniq + | LC_ALL=C sort | LC_ALL=C uniq \ + | { # Then filter out the excludes. + if test -n "$exclude"; then + for m in $exclude; do echo $m; done | LC_ALL=C sort -u > "$tmp"/excludes + LC_ALL=C join -v 1 - "$tmp"/excludes + rm -f "$tmp"/excludes + else + cat + fi + } # Local Variables: # indent-tabs-mode: nil