1 ##############################################################################
2 # Copyright 2019-2020,2021 Thomas E. Dickey #
3 # Copyright 1998-2015,2018 Free Software Foundation, Inc. #
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: #
13 # The above copyright notice and this permission notice shall be included in #
14 # all copies or substantial portions of the Software. #
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. #
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 #
28 ##############################################################################
30 # Author: Juergen Pfeifer, 1996
31 # and: Thomas E. Dickey, 1997
33 # $Id: Makefile.in,v 1.97 2021/07/03 15:45:33 tom Exp $
43 top_srcdir = @top_srcdir@
47 exec_prefix = @exec_prefix@
49 includedir = @includedir@
51 INSTALL = @INSTALL@ @INSTALL_OPT_O@
52 INSTALL_SCRIPT = @INSTALL_SCRIPT@
53 INSTALL_DATA = @INSTALL_DATA@
61 CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
62 HOST_CFLAGS = @BUILD_CFLAGS@
65 HOST_CPPFLAGS = @ACPPFLAGS@ @BUILD_CPPFLAGS@ \
66 -DHAVE_CONFIG_H -I$(srcdir)
68 CCFLAGS = $(HOST_CPPFLAGS) $(HOST_CFLAGS)
69 CFLAGS_NORMAL = $(CCFLAGS) -DNCURSES_STATIC
70 CFLAGS_DEBUG = $(CCFLAGS) -DNCURSES_STATIC @CC_G_OPT@ -DTRACE
71 CFLAGS_PROFILE = $(CCFLAGS) -DNCURSES_STATIC -pg
72 CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
74 CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
76 REL_VERSION = @cf_cv_rel_version@
77 ABI_VERSION = @cf_cv_abi_version@
78 LOCAL_LIBDIR = @top_builddir@/lib
84 # For the wide-character configuration combined with broken_linker, we need
85 # addresses of ACS_xxx constants, which requires linking with the newly built
86 # ncurses library. If cross-compiling, the developer has to fill in a workable
87 # native library for this purpose.
88 NATIVE_LDFLAGS = @LD_MODEL@ $(LOCAL_LIBS) @TINFO_LDFLAGS2@ $(LDFLAGS) @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS) @TINFO_LIBS@
89 CROSS_LDFLAGS = @BUILD_LDFLAGS@ @BUILD_LIBS@
91 ACTUAL_LDFLAGS = @ADAGEN_LDFLAGS@
96 M4FLAGS = -DNCURSES_EXT_FUNCS=@NCURSES_EXT_FUNCS@
98 ADACURSES_CONFIG = adacurses@USE_CFG_SUFFIX@-config
100 WRAPPER = @NCURSES_SHLIB2@
102 PROG_GENERATE = ./generate$x
103 GENERATE = $(PROG_GENERATE) '@USE_ARG_SUFFIX@'
104 DEL_ADAMODE = sed -e '/^\-\-\ \ \-\*\-\ ada\ \-\*\-.*/d'
106 GNATHTML = `type -p gnathtml || type -p gnathtml.pl 2>/dev/null`
107 GNATHP = www.gnat.com
109 ################################################################################
110 ALIB = @cf_ada_package@
111 ABASE = $(ALIB)-curses
115 GEN_TARGETS = $(ADA_SRCDIR)/$(ABASE).ads \
116 $(ADA_SRCDIR)/$(ABASE).adb \
117 $(ADA_SRCDIR)/$(ABASE)-aux.ads \
118 $(ADA_SRCDIR)/$(ABASE)-trace.ads \
119 $(ADA_SRCDIR)/$(ABASE)-menus.ads \
120 $(ADA_SRCDIR)/$(ABASE)-forms.ads \
121 $(ADA_SRCDIR)/$(ABASE)-mouse.ads \
122 $(ADA_SRCDIR)/$(ABASE)-panels.ads \
123 $(ADA_SRCDIR)/$(ABASE)-menus-menu_user_data.ads \
124 $(ADA_SRCDIR)/$(ABASE)-menus-item_user_data.ads \
125 $(ADA_SRCDIR)/$(ABASE)-forms-form_user_data.ads \
126 $(ADA_SRCDIR)/$(ABASE)-forms-field_types.ads \
127 $(ADA_SRCDIR)/$(ABASE)-forms-field_user_data.ads \
128 $(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads \
129 $(ADA_SRCDIR)/$(ABASE)_constants.ads
131 GEN_SRC = $(srcdir)/$(ABASE).ads.m4 \
132 $(srcdir)/$(ABASE).adb.m4 \
133 $(srcdir)/$(ABASE)-aux.ads.m4 \
134 $(srcdir)/$(ABASE)-trace.ads.m4 \
135 $(srcdir)/$(ABASE)-menus.ads.m4 \
136 $(srcdir)/$(ABASE)-forms.ads.m4 \
137 $(srcdir)/$(ABASE)-mouse.ads.m4 \
138 $(srcdir)/$(ABASE)-panels.ads.m4 \
139 $(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4 \
140 $(srcdir)/$(ABASE)-menus-item_user_data.ads.m4 \
141 $(srcdir)/$(ABASE)-forms-form_user_data.ads.m4 \
142 $(srcdir)/$(ABASE)-forms-field_types.ads.m4 \
143 $(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 \
144 $(srcdir)/$(ABASE)-panels-user_data.ads.m4
146 ################################################################################
148 @MAKE_PHONY@.PHONY : all
149 @MAKE_PHONY@.PHONY : clean
150 @MAKE_PHONY@.PHONY : distclean
151 @MAKE_PHONY@.PHONY : install
152 @MAKE_PHONY@.PHONY : install.libs
153 @MAKE_PHONY@.PHONY : libs
154 @MAKE_PHONY@.PHONY : mostlyclean
155 @MAKE_PHONY@.PHONY : realclean
156 @MAKE_PHONY@.PHONY : sources
157 @MAKE_PHONY@.PHONY : uninstall
158 @MAKE_PHONY@.PHONY : uninstall.libs
161 libs : $(GEN_TARGETS)
166 $(DESTDIR)$(bindir) :
170 install.libs :: $(DESTDIR)$(bindir) $(ADACURSES_CONFIG)
171 $(INSTALL_SCRIPT) $(ADACURSES_CONFIG) $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
175 -rm -f $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
177 $(PROG_GENERATE): gen.o
178 @ECHO_LD@ $(LINK) $(CFLAGS_NORMAL) gen.o $(ACTUAL_LDFLAGS) -o $@
180 gen.o: $(srcdir)/gen.c
181 $(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c
183 $(ADA_SRCDIR)/$(ABASE)_constants.ads: $(PROG_GENERATE)
184 $(WRAPPER) "$(GENERATE) $@"
185 ################################################################################
186 $(ADA_SRCDIR)/$(ABASE).ads: $(srcdir)/$(ABASE).ads.m4 \
188 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
189 $(srcdir)/$(ABASE).ads.m4 |\
192 $(ADA_SRCDIR)/$(ABASE).adb: $(srcdir)/$(ABASE).adb.m4 \
194 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
195 $(srcdir)/$(ABASE).adb.m4 |\
198 $(ADA_SRCDIR)/$(ABASE)-aux.ads: $(srcdir)/$(ABASE)-aux.ads.m4 \
200 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
201 $(srcdir)/$(ABASE)-aux.ads.m4 |\
204 $(ADA_SRCDIR)/$(ABASE)-trace.ads: $(srcdir)/$(ABASE)-trace.ads.m4 \
206 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
207 $(srcdir)/$(ABASE)-trace.ads.m4 |\
210 $(ADA_SRCDIR)/$(ABASE)-menus.ads: $(srcdir)/$(ABASE)-menus.ads.m4 \
212 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
213 $(srcdir)/$(ABASE)-menus.ads.m4 |\
216 $(ADA_SRCDIR)/$(ABASE)-forms.ads: $(srcdir)/$(ABASE)-forms.ads.m4 \
218 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
219 $(srcdir)/$(ABASE)-forms.ads.m4 |\
222 $(ADA_SRCDIR)/$(ABASE)-mouse.ads: $(srcdir)/$(ABASE)-mouse.ads.m4 \
224 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
225 $(srcdir)/$(ABASE)-mouse.ads.m4 |\
228 $(ADA_SRCDIR)/$(ABASE)-panels.ads: $(srcdir)/$(ABASE)-panels.ads.m4 \
230 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
231 $(srcdir)/$(ABASE)-panels.ads.m4 |\
234 $(ADA_SRCDIR)/$(ABASE)-menus-menu_user_data.ads: \
235 $(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4 \
237 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
238 $(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4 |\
241 $(ADA_SRCDIR)/$(ABASE)-menus-item_user_data.ads: \
242 $(srcdir)/$(ABASE)-menus-item_user_data.ads.m4 \
244 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
245 $(srcdir)/$(ABASE)-menus-item_user_data.ads.m4 |\
248 $(ADA_SRCDIR)/$(ABASE)-forms-form_user_data.ads: \
249 $(srcdir)/$(ABASE)-forms-form_user_data.ads.m4 \
251 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
252 $(srcdir)/$(ABASE)-forms-form_user_data.ads.m4 |\
255 $(ADA_SRCDIR)/$(ABASE)-forms-field_types.ads: \
256 $(srcdir)/$(ABASE)-forms-field_types.ads.m4 \
258 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
259 $(srcdir)/$(ABASE)-forms-field_types.ads.m4 |\
262 $(ADA_SRCDIR)/$(ABASE)-forms-field_user_data.ads: \
263 $(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 \
265 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
266 $(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 |\
269 $(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads: \
270 $(srcdir)/$(ABASE)-panels-user_data.ads.m4 \
272 $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
273 $(srcdir)/$(ABASE)-panels-user_data.ads.m4 |\
281 @MAKE_UPPER_TAGS@TAGS:
282 @MAKE_UPPER_TAGS@ etags *.[ch]
285 -rm -f a.out core $(PROG_GENERATE) *.o
288 -rm -f $(GEN_TARGETS) instab.tmp *.ad[bs] *.html *.ali *.tmp
291 -rm -f $(ADACURSES_CONFIG)
294 realclean :: distclean
296 HTML_DIR = @ADAHTML_DIR@
298 instab.tmp : table.m4 $(GEN_SRC)
300 @for f in $(GEN_SRC) ; do \
301 $(M4) $(M4FLAGS) -DM4MACRO=table.m4 $$f | $(DEL_ADAMODE) >> $@ ;\
304 $(HTML_DIR)/table.html : instab.tmp
307 @echo '<!DOCTYPE HTML' > $@
308 @echo 'PUBLIC "-//IETF//DTD HTML 3.0//EN">' >> $@
311 @echo '<TITLE>Correspondence between ncurses C and Ada functions</TITLE>' >>$@
312 @echo '</HEAD>' >> $@
314 @echo '<H1>Correspondence between ncurses C and Ada functions</H1>' >>$@
315 @echo '<H2>Sorted by C function name</H2>' >>$@
316 @echo '<TABLE ALIGN=CENTER BORDER>' >>$@
317 @echo '<TR ALIGN=LEFT>' >>$@
318 @echo '<TH>C name</TH><TH>Ada name</TH><TH>man page</TH></TR>' >>$@
319 @sort < instab.tmp >> $@
320 @echo '</TABLE></BODY></HTML>' >>$@
324 test -n "$(GNATHTML)" || exit 1
325 @find $(HTML_DIR) -type f -exec rm -f {} \;
326 @mkdir -p $(HTML_DIR)
327 ( cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb] )
328 @USE_OLD_MAKERULES@ ln -sf ../src/*.ali .
329 @USE_GNAT_PROJECTS@ ln -sf ../static-ali/*.ali .
330 @echo "Filtering generated files"
331 @for f in $(GEN_SRC); do \
333 g=`basename $$f .ads.m4` ;\
334 if test "$$g" != "$$h" ; then \
335 $(M4) $(M4FLAGS) -DM4MACRO=html.m4 $$f | $(DEL_ADAMODE) > $$g.ads ;\
336 echo "... $$g.ads" ;\
339 @-rm -f $(HTML_DIR)/$(ALIB)*.htm*
340 $(GNATHTML) -d -f $(ALIB)*.ads
341 for f in html/$(ALIB)*.htm*; do \
343 sed -e 's/You may also.*body.*//' <$$f |\
344 sed -e 's%GNAT%<A HREF="http://$(GNATHP)">GNAT</A>%g' |\
345 sed -e 's%<A HREF%<A HREF%g' |\
346 sed -e 's%">%">%g' |\
347 sed -e 's%#1A\([[:space:]]*NAME="[^"]*"\)#2%<A\1>%' |\
348 sed -e 's%#1/A#2%</A>%' |\
349 sed -e 's/3X/3x/g' |\
350 sed -e 's/$$\([ABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvwxz0123456789_]*:.*\)\$$/@\1@/' |\
351 sed -e 's%</A>%</A>%g' > $$a.tmp ;\
354 @rm -f *.ad[sb] *.ali *.tmp
355 @for f in funcs.htm main.htm ; do \
356 sed -e "\%<A HREF=funcs/ .htm>\[ \]</A>%d" < html/$$f > $$f ;\
359 @rm -f "html/funcs/ .htm"
360 @cp -pdrf html/* $(HTML_DIR)/
363 html : adahtml $(HTML_DIR)/table.html
366 ###############################################################################
367 # The remainder of this file is automatically generated during configuration
368 ###############################################################################