ncurses 5.8 - patch 20110226
[ncurses.git] / Ada95 / mk-1st.awk
1 # $Id: mk-1st.awk,v 1.4 2011/02/22 09:40:01 tom Exp $
2 ##############################################################################
3 # Copyright (c) 2010,2011 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
31 #
32 # Generate compile-rules for the Ada95 modules that we are using in libraries
33 # or programs.  This script is used for older versions of gnatmake, which do
34 # not build libraries reliably, e.g., gnatmake 3.15.
35 #
36 # Fields in src/modules:
37 #       $1 = module name
38 #       $2 = directory where spec-dependency ".ads" is found
39 #       $3 = directory where body-dependency ".adb" is found
40 #       $4 = unit to compile (spec or body)
41 #
42 BEGIN   {
43                 printf "\n";
44                 printf "# generated by Ada95/mk-1st.awk\n";
45         }
46         /^[#]/ {
47                 next
48         }
49         /^$/ {
50                 next
51         }
52         {
53                 printf "\n";
54                 printf "%s.o :", $1;
55
56                 if ( $2 == "none" ) {
57                         pre_spec = "";
58                 } else if ( $2 == "." ) {
59                         pre_spec = "";
60                         printf " \\\n\t\t%s.ads", $1;
61                 } else {
62                         pre_spec = sprintf("%s/", $2);
63                         printf " \\\n\t\t%s%s.ads", pre_spec, $1;
64                 }
65
66                 if ( $3 == "none" ) {
67                         pre_body = "";
68                 } else if ( $3 == "." ) {
69                         pre_body = "";
70                         printf " \\\n\t\t%s.adb", $1;
71                 } else {
72                         pre_body = sprintf("%s/", $3);
73                         printf " \\\n\t\t%s%s.adb", pre_body, $1;
74                         printf " \\\n\t\t$(BASEDEPS)";
75                 }
76
77                 if ( $4 == "spec" ) {
78                         suffix = "ads";
79                         prefix = pre_spec;
80                 } else {
81                         suffix = "adb";
82                         prefix = pre_body;
83                 }
84
85                 printf  "\n";
86                 printf "\t$(ADA) $(ADAFLAGS) -c -o $@ %s%s.%s\n", prefix, $1, suffix
87         }
88 END     {
89                 print  ""
90         }