• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1##############################################################################
2# Copyright 2019-2022,2024 Thomas E. Dickey                                  #
3# Copyright 1998-2015,2018 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:  Juergen Pfeifer, 1996
31#     and:  Thomas E. Dickey, 1997
32#
33#  $Id: Makefile.in,v 1.103 2024/01/19 16:51:56 tom Exp $
34#
35.SUFFIXES:
36
37SHELL		= @SHELL@
38VPATH		= @srcdir@
39THIS		= Makefile
40
41x		= @EXEEXT@
42
43top_srcdir	= @top_srcdir@
44DESTDIR		= @DESTDIR@
45srcdir		= @srcdir@
46prefix		= @prefix@
47exec_prefix	= @exec_prefix@
48bindir		= @bindir@
49includedir	= @includedir@
50
51INSTALL		= @INSTALL@ @INSTALL_OPT_O@
52INSTALL_SCRIPT	= @INSTALL_SCRIPT@
53INSTALL_DATA	= @INSTALL_DATA@
54
55AWK		= @AWK@
56LN_S		= @LN_S@
57
58CC		= @CC@
59HOST_CC		= @BUILD_CC@
60
61CFLAGS		= @CFLAGS@ @EXTRA_CFLAGS@
62HOST_CFLAGS	= @BUILD_CFLAGS@
63
64CPPFLAGS	= @CPPFLAGS@
65HOST_CPPFLAGS	= @ACPPFLAGS@ @BUILD_CPPFLAGS@ \
66		  -DHAVE_CONFIG_H -I$(srcdir)
67
68CCFLAGS		= $(HOST_CPPFLAGS) $(HOST_CFLAGS)
69CFLAGS_NORMAL	= $(CCFLAGS) -DNCURSES_STATIC
70CFLAGS_DEBUG	= $(CCFLAGS) -DNCURSES_STATIC @CC_G_OPT@ -DTRACE
71CFLAGS_PROFILE	= $(CCFLAGS) -DNCURSES_STATIC -pg
72CFLAGS_SHARED	= $(CCFLAGS) @CC_SHARED_OPTS@
73
74CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)
75
76REL_VERSION	= @cf_cv_rel_version@
77ABI_VERSION	= @cf_cv_abi_version@
78LOCAL_LIBDIR	= @top_builddir@/lib
79
80LINK		= $(HOST_CC)
81LDFLAGS		= @LDFLAGS@
82LIBS		= @LIBS@
83
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.
88NATIVE_LDFLAGS	= @LD_MODEL@ $(LOCAL_LIBS) @TINFO_LDFLAGS2@ $(LDFLAGS) @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS) @TINFO_LIBS@
89CROSS_LDFLAGS	= @BUILD_LDFLAGS@ @BUILD_LIBS@
90
91ACTUAL_LDFLAGS	= @ADAGEN_LDFLAGS@
92
93RANLIB		= @RANLIB@
94
95M4		= m4
96M4FLAGS		= -DNCURSES_EXT_FUNCS=@NCURSES_EXT_FUNCS@
97
98ADACURSES_CONFIG = adacurses@USE_CFG_SUFFIX@-config
99
100WRAPPER		= @NCURSES_SHLIB2@
101
102PROG_GENERATE	= ./generate$x
103GENERATE	= $(PROG_GENERATE) '@USE_ARG_SUFFIX@'
104DEL_ADAMODE	= sed -e '/^\-\-\ \ \-\*\-\ ada\ \-\*\-.*/d'
105
106GNATHTML	= `command -v gnathtml || command -v gnathtml.pl`
107
108################################################################################
109ALIB            = @cf_ada_package@
110ABASE		= $(ALIB)-curses
111
112ADA_SRCDIR	= ../src
113
114GEN_TARGETS     = $(ADA_SRCDIR)/$(ABASE).ads         			\
115		  $(ADA_SRCDIR)/$(ABASE).adb         			\
116	          $(ADA_SRCDIR)/$(ABASE)-aux.ads   			\
117	          $(ADA_SRCDIR)/$(ABASE)-trace.ads   			\
118	          $(ADA_SRCDIR)/$(ABASE)-menus.ads   			\
119	          $(ADA_SRCDIR)/$(ABASE)-forms.ads   			\
120	          $(ADA_SRCDIR)/$(ABASE)-mouse.ads 			\
121	          $(ADA_SRCDIR)/$(ABASE)-panels.ads			\
122	          $(ADA_SRCDIR)/$(ABASE)-menus-menu_user_data.ads	\
123	          $(ADA_SRCDIR)/$(ABASE)-menus-item_user_data.ads	\
124	          $(ADA_SRCDIR)/$(ABASE)-forms-form_user_data.ads	\
125	          $(ADA_SRCDIR)/$(ABASE)-forms-field_types.ads		\
126	          $(ADA_SRCDIR)/$(ABASE)-forms-field_user_data.ads	\
127	          $(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads           \
128                  $(ADA_SRCDIR)/$(ABASE)_constants.ads
129
130GEN_SRC		= $(srcdir)/$(ABASE).ads.m4				\
131		  $(srcdir)/$(ABASE).adb.m4				\
132	          $(srcdir)/$(ABASE)-aux.ads.m4 	  		\
133	          $(srcdir)/$(ABASE)-trace.ads.m4 	  		\
134	          $(srcdir)/$(ABASE)-menus.ads.m4 	  		\
135	          $(srcdir)/$(ABASE)-forms.ads.m4   			\
136	          $(srcdir)/$(ABASE)-mouse.ads.m4			\
137	          $(srcdir)/$(ABASE)-panels.ads.m4			\
138	          $(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4	\
139	          $(srcdir)/$(ABASE)-menus-item_user_data.ads.m4	\
140	          $(srcdir)/$(ABASE)-forms-form_user_data.ads.m4	\
141	          $(srcdir)/$(ABASE)-forms-field_types.ads.m4		\
142	          $(srcdir)/$(ABASE)-forms-field_user_data.ads.m4	\
143	          $(srcdir)/$(ABASE)-panels-user_data.ads.m4
144
145################################################################################
146
147@MAKE_PHONY@.PHONY :	all
148@MAKE_PHONY@.PHONY :	clean
149@MAKE_PHONY@.PHONY :	distclean
150@MAKE_PHONY@.PHONY :	install
151@MAKE_PHONY@.PHONY :	install.libs
152@MAKE_PHONY@.PHONY :	libs
153@MAKE_PHONY@.PHONY :	mostlyclean
154@MAKE_PHONY@.PHONY :	realclean
155@MAKE_PHONY@.PHONY :	sources
156@MAKE_PHONY@.PHONY :	uninstall
157@MAKE_PHONY@.PHONY :	uninstall.libs
158
159all \
160libs :	$(GEN_TARGETS)
161	@echo made $@
162
163sources:
164
165$(DESTDIR)$(bindir) :
166	mkdir -p $@
167
168install \
169install.libs :: $(DESTDIR)$(bindir) $(ADACURSES_CONFIG)
170	$(INSTALL_SCRIPT) $(ADACURSES_CONFIG) $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
171
172uninstall \
173uninstall.libs ::
174	-rm -f $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
175
176$(PROG_GENERATE):  gen.o
177	@ECHO_LD@ $(LINK) $(CFLAGS_NORMAL) gen.o $(ACTUAL_LDFLAGS) -o $@
178
179gen.o:	$(srcdir)/gen.c
180	$(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c
181
182$(ADA_SRCDIR)/$(ABASE)_constants.ads: $(PROG_GENERATE)
183	$(WRAPPER) "$(GENERATE) $@"
184################################################################################
185$(ADA_SRCDIR)/$(ABASE).ads: 	$(srcdir)/$(ABASE).ads.m4 \
186				$(srcdir)/normal.m4 \
187				options.m4
188	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
189	$(srcdir)/$(ABASE).ads.m4 |\
190	$(DEL_ADAMODE) >$@
191
192$(ADA_SRCDIR)/$(ABASE).adb: 	$(srcdir)/$(ABASE).adb.m4 \
193				$(srcdir)/normal.m4
194	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
195	$(srcdir)/$(ABASE).adb.m4 |\
196	$(DEL_ADAMODE) >$@
197
198$(ADA_SRCDIR)/$(ABASE)-aux.ads: $(srcdir)/$(ABASE)-aux.ads.m4 \
199				$(srcdir)/normal.m4
200	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
201	$(srcdir)/$(ABASE)-aux.ads.m4 |\
202	$(DEL_ADAMODE) >$@
203
204$(ADA_SRCDIR)/$(ABASE)-trace.ads: $(srcdir)/$(ABASE)-trace.ads.m4 \
205				  $(srcdir)/normal.m4
206	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
207	$(srcdir)/$(ABASE)-trace.ads.m4 |\
208	$(DEL_ADAMODE) >$@
209
210$(ADA_SRCDIR)/$(ABASE)-menus.ads: $(srcdir)/$(ABASE)-menus.ads.m4 \
211				  $(srcdir)/normal.m4
212	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
213	$(srcdir)/$(ABASE)-menus.ads.m4 |\
214	$(DEL_ADAMODE) >$@
215
216$(ADA_SRCDIR)/$(ABASE)-forms.ads: $(srcdir)/$(ABASE)-forms.ads.m4 \
217				  $(srcdir)/normal.m4
218	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
219	$(srcdir)/$(ABASE)-forms.ads.m4 |\
220	$(DEL_ADAMODE) >$@
221
222$(ADA_SRCDIR)/$(ABASE)-mouse.ads: $(srcdir)/$(ABASE)-mouse.ads.m4 \
223				  $(srcdir)/normal.m4
224	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
225	$(srcdir)/$(ABASE)-mouse.ads.m4 |\
226	$(DEL_ADAMODE) >$@
227
228$(ADA_SRCDIR)/$(ABASE)-panels.ads: $(srcdir)/$(ABASE)-panels.ads.m4 \
229				   $(srcdir)/normal.m4
230	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
231	$(srcdir)/$(ABASE)-panels.ads.m4 |\
232	$(DEL_ADAMODE) >$@
233
234$(ADA_SRCDIR)/$(ABASE)-menus-menu_user_data.ads: \
235		$(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4 \
236		$(srcdir)/normal.m4
237	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
238	$(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4 |\
239	$(DEL_ADAMODE) >$@
240
241$(ADA_SRCDIR)/$(ABASE)-menus-item_user_data.ads: \
242		$(srcdir)/$(ABASE)-menus-item_user_data.ads.m4 \
243		$(srcdir)/normal.m4
244	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
245	$(srcdir)/$(ABASE)-menus-item_user_data.ads.m4 |\
246	$(DEL_ADAMODE) >$@
247
248$(ADA_SRCDIR)/$(ABASE)-forms-form_user_data.ads: \
249		$(srcdir)/$(ABASE)-forms-form_user_data.ads.m4 \
250		$(srcdir)/normal.m4
251	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
252	$(srcdir)/$(ABASE)-forms-form_user_data.ads.m4 |\
253	$(DEL_ADAMODE) >$@
254
255$(ADA_SRCDIR)/$(ABASE)-forms-field_types.ads: \
256		$(srcdir)/$(ABASE)-forms-field_types.ads.m4 \
257		$(srcdir)/normal.m4
258	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
259	$(srcdir)/$(ABASE)-forms-field_types.ads.m4 |\
260	$(DEL_ADAMODE) >$@
261
262$(ADA_SRCDIR)/$(ABASE)-forms-field_user_data.ads: \
263		$(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 \
264		$(srcdir)/normal.m4
265	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
266	$(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 |\
267	$(DEL_ADAMODE) >$@
268
269$(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads: \
270		$(srcdir)/$(ABASE)-panels-user_data.ads.m4 \
271		$(srcdir)/normal.m4
272	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
273	$(srcdir)/$(ABASE)-panels-user_data.ads.m4 |\
274	$(DEL_ADAMODE) >$@
275
276install.progs ::
277
278tags:
279	ctags *.[ch]
280
281@MAKE_UPPER_TAGS@TAGS:
282@MAKE_UPPER_TAGS@	etags *.[ch]
283
284mostlyclean ::
285	-rm -f a.out core $(PROG_GENERATE) *.o
286
287clean :: mostlyclean
288	-rm -f options.m4
289	-rm -f $(GEN_TARGETS) instab.tmp *.ad[bs] *.html *.ali *.tmp
290
291distclean :: clean
292	-rm -f $(ADACURSES_CONFIG)
293	-rm -f Makefile
294
295realclean :: distclean
296
297HTML_DIR = @ADAHTML_DIR@
298
299options.m4 :
300	$(SHELL) -c "if [ @cf_cv_enable_sigwinch@ = 0 ]; \
301		then \
302			dashes='   --'; \
303		else \
304			dashes='';\
305		fi; \
306		echo \"define(OPT_KEY_RESIZE,\\\`\$$dashes')dnl\" > $@"
307
308instab.tmp : table.m4 $(GEN_SRC)
309	@rm -f $@
310	@for f in $(GEN_SRC) ; do \
311	  $(M4) $(M4FLAGS) -DM4MACRO=table.m4 $$f | $(DEL_ADAMODE) >> $@ ;\
312	done;
313
314TABLE_TITLE=Correspondence between ncurses C and Ada functions
315
316$(HTML_DIR)/table.html : instab.tmp
317	@-touch $@
318	@-chmod +w $@
319	@echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">' > $@
320	@echo '<html>' >> $@
321	@echo '<head>' >> $@
322	@echo '<title>$(TABLE_TITLE)</title>' >>$@
323	@echo '</head>' >> $@
324	@echo '<body>' >> $@
325	@echo '<h1>$(TABLE_TITLE)</h1>' >>$@
326	@echo '<h2>Sorted by C function name</h2>' >>$@
327	@echo '<table align="center" border summary="$(TABLE_TITLE)">' >>$@
328	@echo '<tr align="left">' >>$@
329	@echo '<th>C name</th><th>Ada name</th><th>man page</th></tr>' >>$@
330	@sort < instab.tmp >> $@
331	@echo '</table></body></html>' >>$@
332	@rm -f instab.tmp
333
334adahtml:
335	test -n "$(GNATHTML)" || exit 1
336	@find $(HTML_DIR) -type f -exec rm -f {} \;
337	@mkdir -p $(HTML_DIR)
338	( cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb] )
339@USE_OLD_MAKERULES@	ln -sf ../src/*.ali .
340@USE_GNAT_PROJECTS@	ln -sf ../static-ali/*.ali .
341	@echo "Filtering generated files"
342	@for f in $(GEN_SRC); do \
343	   h=`basename $$f` ;\
344	   g=`basename $$f .ads.m4` ;\
345	   if test "$$g" != "$$h" ; then \
346	      $(M4) $(M4FLAGS) -DM4MACRO=html.m4 $$f | $(DEL_ADAMODE) > $$g.ads ;\
347	      echo "... $$g.ads" ;\
348	   fi \
349	done
350	@-rm -f $(HTML_DIR)/$(ALIB)*.htm*
351	$(GNATHTML) -d -f $(ALIB)*.ads
352	for f in html/$(ALIB)*.htm*; do \
353	   a=`basename $$f` ; \
354	   sed -e 's/You may also.*body.*//' <$$f |\
355	   sed -e 's%\<GNAT\>%<strong>GNAT</strong>%g' |\
356	   sed -e 's%&lt;A HREF%<A HREF%g' |\
357	   sed -e 's%"&gt;%">%g' |\
358	   sed -e 's%#1A\([[:space:]]*NAME="[^"]*"\)#2%<A\1>%' |\
359	   sed -e 's%#1/A#2%</A>%' |\
360	   sed -e 's/3X/3x/g' |\
361	   sed -e 's/$$\([ABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvwxz0123456789_]*:.*\)\$$/@\1@/' |\
362	   sed -e 's%&lt;/A&gt;%</A>%g' > $$a.tmp ;\
363	   mv $$a.tmp $$f ;\
364	done
365	@rm -f *.ad[sb] *.ali *.tmp
366	@for f in funcs.htm main.htm ; do \
367	  sed -e "\%<A HREF=funcs/ .htm>\[ \]</A>%d" < html/$$f > $$f ;\
368	  mv $$f html/$$f ;\
369	done
370	@rm -f "html/funcs/ .htm"
371	@cp -pdrf html/* $(HTML_DIR)/
372	@rm -rf html
373
374html : adahtml $(HTML_DIR)/table.html
375	@echo made $@
376
377###############################################################################
378# The remainder of this file is automatically generated during configuration
379###############################################################################
380