MKncurses_def.sh 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #! /bin/sh
  2. # $Id: MKncurses_def.sh,v 1.2 2003/10/25 16:19:46 tom Exp $
  3. ##############################################################################
  4. # Copyright (c) 2000 Free Software Foundation, Inc. #
  5. # #
  6. # Permission is hereby granted, free of charge, to any person obtaining a #
  7. # copy of this software and associated documentation files (the "Software"), #
  8. # to deal in the Software without restriction, including without limitation #
  9. # the rights to use, copy, modify, merge, publish, distribute, distribute #
  10. # with modifications, sublicense, and/or sell copies of the Software, and to #
  11. # permit persons to whom the Software is furnished to do so, subject to the #
  12. # following conditions: #
  13. # #
  14. # The above copyright notice and this permission notice shall be included in #
  15. # all copies or substantial portions of the Software. #
  16. # #
  17. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
  18. # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
  19. # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
  20. # THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
  21. # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
  22. # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
  23. # DEALINGS IN THE SOFTWARE. #
  24. # #
  25. # Except as contained in this notice, the name(s) of the above copyright #
  26. # holders shall not be used in advertising or otherwise to promote the sale, #
  27. # use or other dealings in this Software without prior written #
  28. # authorization. #
  29. ##############################################################################
  30. #
  31. # MKncurses_def.sh -- generate fallback definitions for ncurses_cfg.h
  32. #
  33. # Author: Thomas E. Dickey 2000
  34. #
  35. # Given the choice between constructs such as
  36. #
  37. # #if defined(foo) && foo
  38. # #if foo
  39. #
  40. # we chose the latter. It is guaranteed by the language standard, and there
  41. # appear to be no broken compilers that do not honor that detail. But some
  42. # people want to use gcc's -Wundef option (corresponding to one of the less
  43. # useful features in Watcom's compiler) to check for misspellings. So we
  44. # generate a set of fallback definitions to quiet the warnings without making
  45. # the code ugly.
  46. #
  47. DEFS="${1-ncurses_defs}"
  48. cat <<EOF
  49. /*
  50. * This file is generated by $0
  51. */
  52. #ifndef NC_DEFINE_H
  53. #define NC_DEFINE_H 1
  54. EOF
  55. ${AWK-awk} <$DEFS '
  56. !/^[@#]/ {
  57. if ( NF == 1 )
  58. {
  59. print "#ifndef", $1
  60. print "#define", $1, "0"
  61. print "#endif"
  62. print ""
  63. } else if ( NF != 0 ) {
  64. print "#ifndef", $1
  65. printf "#define"
  66. for (n = 1; n <= NF; n++) {
  67. printf " %s", $n
  68. }
  69. print ""
  70. print "#endif"
  71. print ""
  72. }
  73. }
  74. END {
  75. print "#endif /* NC_DEFINE_H */"
  76. }
  77. '