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