1# $Id: Makefile.in,v 1.111 2021/07/03 15:45:33 tom Exp $ 2############################################################################## 3# Copyright 2020,2021 Thomas E. Dickey # 4# Copyright 1998-2016,2018 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 1996-on 32# 33# Makefile for ncurses source code. 34# 35# This makes the ncurses utility programs. 36# 37# The variable 'srcdir' refers to the source-distribution, and can be set with 38# the configure script by "--srcdir=DIR". 39# 40# The rules are organized to produce the libraries for the configured models, 41# and the programs with the configured default model. 42 43# turn off _all_ suffix rules; we'll generate our own 44.SUFFIXES: 45 46SHELL = @SHELL@ 47VPATH = @srcdir@ 48THIS = Makefile 49 50TOP_MFLAGS = @cf_cv_makeflags@ DESTDIR="$(DESTDIR)" RPATH_LIST="$(RPATH_LIST)" 51@SET_MAKE@ 52 53x = @EXEEXT@ 54o = .@OBJEXT@ 55 56MODEL = ../@DFT_OBJ_SUBDIR@ 57DESTDIR = @DESTDIR@ 58top_srcdir = @top_srcdir@ 59srcdir = @srcdir@ 60prefix = @prefix@ 61exec_prefix = @exec_prefix@ 62bindir = @bindir@ 63libdir = @libdir@ 64includedir = @includedir@ 65datarootdir = @datarootdir@ 66datadir = @datadir@ 67includesubdir = @includesubdir@ 68 69INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) 70 71PACKAGE = @PACKAGE@ 72 73LIBTOOL = @LIBTOOL@ 74LIBTOOL_OPTS = @LIBTOOL_OPTS@ 75LIBTOOL_CLEAN = @LIB_CLEAN@ 76LIBTOOL_COMPILE = @LIB_COMPILE@ 77LIBTOOL_LINK = @LIB_LINK@ 78LIBTOOL_INSTALL = @LIB_INSTALL@ 79LIBTOOL_UNINSTALL = @LIB_UNINSTALL@ 80 81INSTALL = @INSTALL@ 82INSTALL_PROG = @INSTALL_PROGRAM@ @INSTALL_OPT_S@ 83transform = @program_transform_name@ 84 85AWK = @AWK@ 86LN_S = @LN_S@ 87 88CTAGS = @CTAGS@ 89ETAGS = @ETAGS@ 90 91CC = @CC@ 92CPP = @CPP@ 93CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@ 94 95INCDIR = $(top_srcdir)/include 96CPPFLAGS = -DHAVE_CONFIG_H -I../progs @CPPFLAGS@ 97 98CCFLAGS = $(CPPFLAGS) $(CFLAGS) 99 100CFLAGS_LIBTOOL = $(CCFLAGS) 101CFLAGS_NORMAL = $(CCFLAGS) -DNCURSES_STATIC 102CFLAGS_DEBUG = $(CCFLAGS) -DNCURSES_STATIC @CC_G_OPT@ -DTRACE 103CFLAGS_PROFILE = $(CCFLAGS) -DNCURSES_STATIC -pg 104CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@ 105 106CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@) 107 108REL_VERSION = @cf_cv_rel_version@ 109ABI_VERSION = @cf_cv_abi_version@ 110LOCAL_LIBDIR = @top_builddir@/lib 111 112LD = @LD@ 113LINK = @LINK_PROGS@ $(LIBTOOL_LINK) 114LDFLAGS = @EXTRA_LDFLAGS@ @LDFLAGS@ 115RPATH_LIST = @RPATH_LIST@ 116 117LDFLAGS_LIBTOOL = $(LDFLAGS) $(CFLAGS_LIBTOOL) 118LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL) 119LDFLAGS_DEBUG = $(LDFLAGS) $(CFLAGS_DEBUG) 120LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE) 121LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@ 122 123LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@) 124 125LIBS_TIC = @TINFO_LDFLAGS@ @LDFLAGS_STATIC@ @TICS_LIBS@ @TINFO_LIBS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@ 126LDFLAGS_TIC = @TICS_LDFLAGS@ $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TIC) 127 128LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_LIBS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@ 129LDFLAGS_TINFO = @TINFO_LDFLAGS@ $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO) 130 131LINT = @LINT@ 132LINT_OPTS = @LINT_OPTS@ 133LINT_LIBS = -lncurses @LIBS@ 134 135AUTO_SRC = \ 136 termsort.h \ 137 transform.h 138 139# tic relies on direct access to the terminfo database 140GET_PROGS = infocmp$x clear$x tabs$x tput$x tset$x toe$x 141PUT_PROGS = @MAKE_TERMINFO@ tic$x 142PROGS = $(PUT_PROGS) $(GET_PROGS) 143 144# Default library, for linking applications 145DEPS_CURSES = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@ 146 147HEADER_DEPS = \ 148 ../include/curses.h \ 149 $(INCDIR)/term_entry.h \ 150 $(INCDIR)/tic.h \ 151 $(INCDIR)/nc_alloc.h 152 153################################################################################ 154 155@MAKE_PHONY@.PHONY : all 156@MAKE_PHONY@.PHONY : check 157@MAKE_PHONY@.PHONY : clean 158@MAKE_PHONY@.PHONY : distclean 159@MAKE_PHONY@.PHONY : install 160@MAKE_PHONY@.PHONY : install.libs 161@MAKE_PHONY@.PHONY : install.progs 162@MAKE_PHONY@.PHONY : libs 163@MAKE_PHONY@.PHONY : lint 164@MAKE_PHONY@.PHONY : mostlyclean 165@MAKE_PHONY@.PHONY : realclean 166@MAKE_PHONY@.PHONY : sources 167@MAKE_PHONY@.PHONY : uninstall 168@MAKE_PHONY@.PHONY : uninstall.libs 169@MAKE_PHONY@.PHONY : uninstall.progs 170 171all: $(AUTO_SRC) $(PROGS) 172 173sources: $(AUTO_SRC) 174 175install: $(AUTO_SRC) install.progs 176uninstall: uninstall.progs 177 178# this line simplifies the configure-script 179libs \ 180install.libs \ 181uninstall.libs: 182 183TRANSFORM = sed 's/$x$$//'|sed '$(transform)'|sed 's/$$/$x/' 184 185# transformed names for installing files 186actual_captoinfo = `echo captoinfo$x| $(TRANSFORM)` 187actual_clear = `echo clear$x| $(TRANSFORM)` 188actual_infocmp = `echo infocmp$x| $(TRANSFORM)` 189actual_infotocap = `echo infotocap$x| $(TRANSFORM)` 190actual_init = `echo init$x| $(TRANSFORM)` 191actual_reset = `echo reset$x| $(TRANSFORM)` 192actual_tabs = `echo tabs$x| $(TRANSFORM)` 193actual_tic = `echo tic$x| $(TRANSFORM)` 194actual_toe = `echo toe$x| $(TRANSFORM)` 195actual_tput = `echo tput$x| $(TRANSFORM)` 196actual_tset = `echo tset$x| $(TRANSFORM)` 197 198# transformed names for comparing at runtime 199define_captoinfo = `echo captoinfo| $(TRANSFORM)` 200define_clear = `echo clear| $(TRANSFORM)` 201define_infotocap = `echo infotocap| $(TRANSFORM)` 202define_init = `echo init| $(TRANSFORM)` 203define_reset = `echo reset| $(TRANSFORM)` 204 205transform.h : 206 echo "#ifndef __TRANSFORM_H" >$@ 207 echo "#define __TRANSFORM_H 1" >>$@ 208 echo "#include <progs.priv.h>" >>$@ 209 echo "extern bool same_program(const char *, const char *);" >>$@ 210 -$(SHELL) -c 'if test -n "$x" ; then echo "#define SUFFIX_IGNORED \"$x\"">>$@; fi' 211 echo "#define PROG_CAPTOINFO \"$(define_captoinfo)\"" >>$@ 212 echo "#define PROG_INFOTOCAP \"$(define_infotocap)\"" >>$@ 213 echo "#define PROG_CLEAR \"$(define_clear)\"" >>$@ 214 echo "#define PROG_RESET \"$(define_reset)\"" >>$@ 215 echo "#define PROG_INIT \"$(define_init)\"" >>$@ 216 echo "#endif /* __TRANSFORM_H */" >>$@ 217 218install.progs: $(AUTO_SRC) $(PROGS) $(DESTDIR)$(bindir) 219@MAKE_TERMINFO@ $(LIBTOOL_INSTALL) $(INSTALL_PROG) tic$x $(DESTDIR)$(bindir)/$(actual_tic) 220@MAKE_TERMINFO@ $(LIBTOOL_INSTALL) $(INSTALL_PROG) toe$x $(DESTDIR)$(bindir)/$(actual_toe) 221@MAKE_TERMINFO@ @echo "linking $(actual_infotocap) to $(actual_tic)" 222@MAKE_TERMINFO@ -@rm -f $(DESTDIR)$(bindir)/$(actual_infotocap) 223@MAKE_TERMINFO@ ( cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tic) $(actual_infotocap) ) 224@MAKE_TERMINFO@ @echo "linking $(actual_captoinfo) to $(actual_tic)" 225@MAKE_TERMINFO@ -@rm -f $(DESTDIR)$(bindir)/$(actual_captoinfo) 226@MAKE_TERMINFO@ ( cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tic) $(actual_captoinfo) ) 227 $(LIBTOOL_INSTALL) $(INSTALL_PROG) infocmp$x $(DESTDIR)$(bindir)/$(actual_infocmp) 228 $(LIBTOOL_INSTALL) $(INSTALL_PROG) clear$x $(DESTDIR)$(bindir)/$(actual_clear) 229 $(LIBTOOL_INSTALL) $(INSTALL_PROG) tabs$x $(DESTDIR)$(bindir)/$(actual_tabs) 230 $(LIBTOOL_INSTALL) $(INSTALL_PROG) tput$x $(DESTDIR)$(bindir)/$(actual_tput) 231 $(LIBTOOL_INSTALL) $(INSTALL_PROG) tset$x $(DESTDIR)$(bindir)/$(actual_tset) 232 @echo "linking $(actual_reset) to $(actual_tset)" 233 -@rm -f $(DESTDIR)$(bindir)/$(actual_reset) 234 ( cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tset) $(actual_reset) ) 235 236uninstall.progs: 237@MAKE_TERMINFO@ -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_tic) 238@MAKE_TERMINFO@ -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_toe) 239@MAKE_TERMINFO@ -@rm -f $(DESTDIR)$(bindir)/$(actual_captoinfo) 240@MAKE_TERMINFO@ -@rm -f $(DESTDIR)$(bindir)/$(actual_infotocap) 241 -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_infocmp) 242 -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_clear) 243 -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_tabs) 244 -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_tput) 245 -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_tset) 246 -@rm -f $(DESTDIR)$(bindir)/$(actual_reset) 247 248$(DESTDIR)$(bindir) : 249 mkdir -p $@ 250 251# 252# Utilities normally built by make all start here 253# 254 255DEPS_TIC = \ 256 $(MODEL)/tic$o \ 257 $(MODEL)/dump_entry$o \ 258 $(MODEL)/tparm_type$o \ 259 $(MODEL)/transform$o 260 261tic$x: $(DEPS_TIC) $(DEPS_CURSES) transform.h 262 @ECHO_LD@ $(LINK) $(DEPS_TIC) $(LDFLAGS_TIC) -o $@ 263 264DEPS_TOE = \ 265 $(MODEL)/toe$o 266 267toe$x: $(DEPS_TOE) $(DEPS_CURSES) 268 @ECHO_LD@ $(LINK) $(DEPS_TOE) $(LDFLAGS_TIC) -o $@ 269 270DEPS_CLEAR = \ 271 $(MODEL)/clear$o \ 272 $(MODEL)/clear_cmd$o \ 273 $(MODEL)/tty_settings$o 274 275clear$x: $(DEPS_CLEAR) $(DEPS_CURSES) 276 @ECHO_LD@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_TINFO) -o $@ 277 278DEPS_TABS = \ 279 $(MODEL)/tabs$o \ 280 $(MODEL)/tty_settings$o 281 282tabs$x: $(DEPS_TABS) $(DEPS_TABS) 283 @ECHO_LD@ $(LINK) $(DEPS_TABS) $(LDFLAGS_TINFO) -o $@ 284 285DEPS_TPUT = \ 286 $(MODEL)/tput$o \ 287 $(MODEL)/clear_cmd$o \ 288 $(MODEL)/reset_cmd$o \ 289 $(MODEL)/tparm_type$o \ 290 $(MODEL)/transform$o \ 291 $(MODEL)/tty_settings$o 292 293tput$x: $(DEPS_TPUT) $(DEPS_CURSES) transform.h 294 @ECHO_LD@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_TINFO) -o $@ 295 296DEPS_INFOCMP = \ 297 $(MODEL)/infocmp$o \ 298 $(MODEL)/dump_entry$o 299 300infocmp$x: $(DEPS_INFOCMP) $(DEPS_CURSES) 301 @ECHO_LD@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_TIC) -o $@ 302 303DEPS_TSET = \ 304 $(MODEL)/tset$o \ 305 $(MODEL)/reset_cmd$o \ 306 $(MODEL)/transform$o \ 307 $(MODEL)/tty_settings$o 308 309tset$x: $(DEPS_TSET) $(DEPS_CURSES) transform.h 310 @ECHO_LD@ $(LINK) $(DEPS_TSET) $(LDFLAGS_TINFO) -o $@ 311 312termsort.h: $(srcdir)/MKtermsort.sh 313 $(SHELL) $(srcdir)/MKtermsort.sh $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@ >$@ 314 315# 316# Utility productions start here 317# 318 319tags: 320 $(CTAGS) *.[ch] 321 322@MAKE_UPPER_TAGS@TAGS: 323@MAKE_UPPER_TAGS@ $(ETAGS) *.[ch] 324 325mostlyclean :: 326 -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace 327 328clean :: mostlyclean 329 -$(SHELL) -c "if test -n '$x' ; then $(MAKE) clean x=''; fi" 330 -rm -f $(AUTO_SRC) 331 -rm -f $(PROGS) 332 -rm -rf .libs *.dSYM 333 334distclean :: clean 335 -rm -f Makefile 336 337realclean :: distclean 338 339# These rules are used to allow "make -n" to work on a clean directory-tree 340../include/hashsize.h \ 341../include/parametrized.h \ 342../include/term.h : 343 ( cd ../include && $(MAKE) $(TOP_MFLAGS) ) 344$(DEPS_CURSES) : 345 ( cd ../ncurses && $(MAKE) $(TOP_MFLAGS) ) 346 347lint: 348@MAKE_TERMINFO@ $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tic.c $(srcdir)/dump_entry.c $(LINT_LIBS) 349@MAKE_TERMINFO@ $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/toe.c $(LINT_LIBS) 350 $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/clear.c $(LINT_LIBS) 351 $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/infocmp.c $(srcdir)/dump_entry.c $(LINT_LIBS) 352 $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tabs.c $(LINT_LIBS) 353 $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tput.c $(LINT_LIBS) 354 $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tset.c $(LINT_LIBS) 355 356# Verify that each header-file can be compiled without including another. 357check: 358 @$(SHELL) -c "for header in *.h;\ 359 do \ 360 echo \"** testing \$${header}\" ; \ 361 echo \"#include <\$${header}>\" >headers.c; \ 362 echo \"int main(void) { return 0; }\" >>headers.c; \ 363 $(CC) -c $(CFLAGS) $(CPPFLAGS) headers.c; \ 364 done" 365 -@rm -f headers.* 366 367############################################################################### 368# The remainder of this file is automatically generated during configuration 369############################################################################### 370