blob: 9b6bee4108c65e708d4e8658c10094ba50faa0a3 [file] [log] [blame]
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301# $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#
37function basename(path) {
38 sub(/^.*\//,"",path)
39 return path;
40}
41BEGIN {
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 }
73END {
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
83 for (i = 0; i < count - 1; ++i) {
84 printf " %s \\\n", data[i]
85 }
86 printf " %s\n", data[count - 1]
87
88 for (i = 0; i < count; ++i) {
89 printf " @ (cd ${DESTDIR}${includedir} && rm -f %s) ; ../headers.sh ${INSTALL_DATA} ${DESTDIR}${includedir} ${srcdir} %s\n", basename(data[i]), data[i]
90 if (data[i] == "curses.h" && compat == "yes") {
91 printf " @ (cd ${DESTDIR}${includedir} && rm -f ncurses.h && ${LN_S} %s ncurses.h)\n", data[i]
92 }
93 }
94 print ""
95 print "uninstall \\"
96 print "uninstall.libs \\"
97 print "uninstall.includes ::"
98
99 for (i = 0; i < count; ++i) {
100 printf " -@ (cd ${DESTDIR}${includedir} && rm -f %s)\n", basename(data[i])
101 if (data[i] == "curses.h" && compat == "yes") {
102 printf " -@ (cd ${DESTDIR}${includedir} && rm -f ncurses.h)\n"
103 }
104 }
105 }
106 }
107# vile:ts=4 sw=4