X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;ds=sidebyside;f=ncurses%2Fbase%2FMKlib_gen.sh;h=4f7f19de362edccc43dada6cb304bff8fc02a397;hb=02f02dcd4464143580e783ae32c822d8eb8cdcbf;hp=b91398c740a266f10edbbce19f19c52b9709556f;hpb=97bb4678dc03e753290b39bbff30ba2825df9517;p=ncurses.git diff --git a/ncurses/base/MKlib_gen.sh b/ncurses/base/MKlib_gen.sh index b91398c7..4f7f19de 100755 --- a/ncurses/base/MKlib_gen.sh +++ b/ncurses/base/MKlib_gen.sh @@ -2,10 +2,10 @@ # # MKlib_gen.sh -- generate sources from curses.h macro definitions # -# ($Id: MKlib_gen.sh,v 1.47 2014/12/06 18:56:25 tom Exp $) +# ($Id: MKlib_gen.sh,v 1.50 2015/08/07 00:48:24 tom Exp $) # ############################################################################## -# Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. # +# Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # @@ -66,6 +66,23 @@ preprocessor="$1 -DNCURSES_INTERNALS -I../include" AWK="$2" USE="$3" +# A patch discussed here: +# https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html +# introduces spurious #line markers into the preprocessor output. The result +# appears in gcc 5.0 and (with modification) in 5.1, making it necessary to +# determine if we are using gcc, and if so, what version because the proposed +# solution uses a nonstandard option. +PRG=`echo "$1" | $AWK '{ sub(/^[[:space:]]*/,""); sub(/[[:space:]].*$/, ""); print; }' || exit 0` +FSF=`"$PRG" --version 2>/dev/null || exit 0 | fgrep "Free Software Foundation" | head -n 1` +ALL=`"$PRG" -dumpversion 2>/dev/null || exit 0` +ONE=`echo "$ALL" | sed -e 's/\..*$//'` +if test -n "$FSF" && test -n "$ALL" && test -n "$ONE" ; then + if test $ONE -ge 5 ; then + echo ".. adding -P option to work around $PRG $ALL" >&2 + preprocessor="$preprocessor -P" + fi +fi + PID=$$ ED1=sed1_${PID}.sed ED2=sed2_${PID}.sed @@ -474,22 +491,11 @@ sed -n -f $ED1 \ -e 's/gen_$//' \ -e 's/ / /g' >>$TMP -cat >$ED1 < $ED2 -cat $ED2 >$TMP - $preprocessor $TMP 2>/dev/null \ -| sed -f $ED1 \ +| sed \ + -e 's/ / /g' \ + -e 's/^ //' \ + -e 's/_Bool/NCURSES_BOOL/g' \ | $AWK -f $AW2 \ | sed -f $ED3 \ | sed \