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%<A HREF%<A HREF%g' |\ 357 sed -e 's%">%">%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%</A>%</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