mk-hdr.awk 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. # $Id: mk-hdr.awk,v 1.2 2007/03/31 15:48:45 tom Exp $
  2. ##############################################################################
  3. # Copyright (c) 2007 Free Software Foundation, Inc. #
  4. # #
  5. # Permission is hereby granted, free of charge, to any person obtaining a #
  6. # copy of this software and associated documentation files (the "Software"), #
  7. # to deal in the Software without restriction, including without limitation #
  8. # the rights to use, copy, modify, merge, publish, distribute, distribute #
  9. # with modifications, sublicense, and/or sell copies of the Software, and to #
  10. # permit persons to whom the Software is furnished to do so, subject to the #
  11. # following conditions: #
  12. # #
  13. # The above copyright notice and this permission notice shall be included in #
  14. # all copies or substantial portions of the Software. #
  15. # #
  16. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
  17. # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
  18. # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
  19. # THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
  20. # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
  21. # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
  22. # DEALINGS IN THE SOFTWARE. #
  23. # #
  24. # Except as contained in this notice, the name(s) of the above copyright #
  25. # holders shall not be used in advertising or otherwise to promote the sale, #
  26. # use or other dealings in this Software without prior written #
  27. # authorization. #
  28. ##############################################################################
  29. #
  30. # Author: Thomas E. Dickey 2007
  31. #
  32. # Generate install/uninstall rules for header files
  33. # Variables:
  34. # subset ("none", "base", "base+ext_funcs" or "termlib", etc.)
  35. # compat ("yes" or "no", flag to add link to curses.h
  36. #
  37. function basename(path) {
  38. sub(/^.*\//,"",path)
  39. return path;
  40. }
  41. BEGIN {
  42. found = 0
  43. using = 1
  44. count = 0
  45. }
  46. /^@/ {
  47. using = 0
  48. if (subset == "none") {
  49. using = 1
  50. } else if (index(subset,$2) > 0) {
  51. using = 1
  52. } else {
  53. using = 0
  54. }
  55. }
  56. /^[@#]/ {
  57. next
  58. }
  59. {
  60. if (using && NF != 0) {
  61. if (found == 0) {
  62. print ""
  63. print "# generated by mk-hdr.awk"
  64. printf "# subset: %s\n", subset
  65. printf "# compat: %s\n", compat
  66. print ""
  67. found = 1
  68. }
  69. data[count] = $1
  70. count = count + 1
  71. }
  72. }
  73. END {
  74. if ( count > 0 )
  75. {
  76. print "${DESTDIR}${includedir} :"
  77. print " sh ${srcdir}/../mkdirs.sh $@"
  78. print ""
  79. print "install \\"
  80. print "install.libs \\"
  81. print "install.includes :: ${AUTO_SRC} ${DESTDIR}${includedir} \\"
  82. for (i = 0; i < count - 1; ++i) {
  83. printf " %s \\\n", data[i]
  84. }
  85. printf " %s\n", data[count - 1]
  86. for (i = 0; i < count; ++i) {
  87. printf " @ (cd ${DESTDIR}${includedir} && rm -f %s) ; ../headers.sh ${INSTALL_DATA} ${DESTDIR}${includedir} ${srcdir} %s\n", basename(data[i]), data[i]
  88. if (data[i] == "curses.h" && compat == "yes") {
  89. printf " @ (cd ${DESTDIR}${includedir} && rm -f ncurses.h && ${LN_S} %s ncurses.h)\n", data[i]
  90. }
  91. }
  92. print ""
  93. print "uninstall \\"
  94. print "uninstall.libs \\"
  95. print "uninstall.includes ::"
  96. for (i = 0; i < count; ++i) {
  97. printf " -@ (cd ${DESTDIR}${includedir} && rm -f %s)\n", basename(data[i])
  98. if (data[i] == "curses.h" && compat == "yes") {
  99. printf " -@ (cd ${DESTDIR}${includedir} && rm -f ncurses.h)\n"
  100. }
  101. }
  102. }
  103. }
  104. # vile:ts=4 sw=4