X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2FMKlib_gen.sh;h=9e41cea2f35965b08aa48db45a59e26104f6868a;hp=b91398c740a266f10edbbce19f19c52b9709556f;hb=6a530b46563470c2ca73579d1994a0c8e275dd98;hpb=32f9f5f12cd9159261f9db228461049e8c770404;ds=sidebyside diff --git a/ncurses/base/MKlib_gen.sh b/ncurses/base/MKlib_gen.sh index b91398c7..9e41cea2 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.48 2015/07/25 19:02:45 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" | sed -e 's/[[:space:]].*$//'` +FSF=`"$PRG" --version 2>/dev/null | fgrep "Free Software Foundation" | head -n 1` +ALL=`"$PRG" -dumpversion 2>/dev/null ` +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 \