xref: /freebsd/contrib/ncurses/ncurses/Makefile.in (revision 61e21613)
1# $Id: Makefile.in,v 1.178 2021/01/23 20:34:00 tom Exp $
2##############################################################################
3# Copyright 2018-2020,2021 Thomas E. Dickey                                  #
4# Copyright 1998-2017,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 following:
36#	programs
37#	includes
38#	libraries (normal/debug/profile/shared)
39#
40# The variable 'srcdir' refers to the source-distribution, and can be set with
41# the configure script by "--srcdir=DIR".
42#
43# The rules are organized to produce the libraries for the configured models,
44# and the programs with the configured default model.
45
46# turn off _all_ suffix rules; we'll generate our own
47.SUFFIXES:
48
49SHELL		= @SHELL@
50VPATH		= @srcdir@
51THIS		= Makefile
52
53TOP_MFLAGS	= @cf_cv_makeflags@ DESTDIR="$(DESTDIR)" RPATH_LIST="$(RPATH_LIST)"
54@SET_MAKE@
55
56x		= @EXEEXT@
57o		= .@OBJEXT@
58
59MODEL		= @DFT_LWR_MODEL@
60DESTDIR		= @DESTDIR@
61top_srcdir	= @top_srcdir@
62srcdir		= @srcdir@
63prefix		= @prefix@
64exec_prefix	= @exec_prefix@
65bindir		= @bindir@
66libdir		= @libdir@
67includedir	= @includedir@
68datarootdir	= @datarootdir@
69datadir		= @datadir@
70includesubdir	= @includesubdir@
71
72INCLUDEDIR	= $(DESTDIR)$(includedir)$(includesubdir)
73
74PACKAGE		= @PACKAGE@
75
76LIBTOOL		= @LIBTOOL@
77LIBTOOL_OPTS	= @LIBTOOL_OPTS@ @EXPORT_SYMS@
78LIBTOOL_CLEAN	= @LIB_CLEAN@
79LIBTOOL_COMPILE	= @LIB_COMPILE@
80LIBTOOL_LINK	= @LIB_LINK@
81LIBTOOL_INSTALL	= @LIB_INSTALL@
82LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
83LT_UNDEF	= @LT_UNDEF@
84
85INSTALL		= @INSTALL@
86INSTALL_LIB	= @INSTALL@ @INSTALL_LIB@
87INSTALL_PROG	= @INSTALL_PROGRAM@ @INSTALL_OPT_S@
88INSTALL_DATA	= @INSTALL_DATA@
89
90AR		= @AR@
91ARFLAGS		= @ARFLAGS@
92AWK		= @AWK@
93LD		= @LD@
94LN_S		= @LN_S@
95NM		= @NM@
96
97CTAGS		= @CTAGS@
98ETAGS		= @ETAGS@
99
100CC		= @CC@
101CPP		= @CPP@
102CFLAGS		= @CFLAGS@ @EXTRA_CFLAGS@
103LIBS		= @LIBS@
104
105INCDIR		= $(srcdir)/../include
106CPPFLAGS	= -DHAVE_CONFIG_H -DBUILDING_NCURSES -I../ncurses @CPPFLAGS@
107
108CCFLAGS		= $(CPPFLAGS) $(CFLAGS)
109
110BUILD_CPPFLAGS	= -DHAVE_CONFIG_H -DUSE_BUILD_CC -I../ncurses -I$(srcdir) -I../include -I$(INCDIR) @BUILD_CPPFLAGS@
111BUILD_CC	= @BUILD_CC@
112BUILD_CCFLAGS	= @BUILD_CFLAGS@
113BUILD_LDFLAGS	= @BUILD_LDFLAGS@
114BUILD_LIBS	= @BUILD_LIBS@
115
116# The executables built in this directory are used for generating source that
117# is compiled into the build, or are test-programs that are not installed.
118
119BUILD_EXEEXT	= @BUILD_EXEEXT@
120x		= @EXEEXT@
121
122CFLAGS_LIBTOOL	= $(CCFLAGS)
123CFLAGS_NORMAL	= $(CCFLAGS) -DNCURSES_STATIC
124CFLAGS_DEBUG	= $(CCFLAGS) -DNCURSES_STATIC @CC_G_OPT@ -DTRACE
125CFLAGS_PROFILE	= $(CCFLAGS) -DNCURSES_STATIC -pg
126CFLAGS_SHARED	= $(CCFLAGS) @CC_SHARED_OPTS@
127
128CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)
129
130LINK		= $(LIBTOOL)
131LDFLAGS		= @LDFLAGS@ @LD_MODEL@
132
133SHLIB_DIRS	= -L../lib
134SHLIB_LIST	= $(SHLIB_DIRS) @SHLIB_LIST@ @LIBS@
135TINFO_LIST	= $(SHLIB_DIRS) @TINFO_LIST@ @LIBS@
136TICS_LIST	= $(SHLIB_DIRS) @TICS_LIST@ @LIBS@
137
138RPATH_LIST	= @RPATH_LIST@
139RESULTING_SYMS	= @RESULTING_SYMS@
140VERSIONED_SYMS	= @VERSIONED_SYMS@
141MK_SHARED_LIB	= @MK_SHARED_LIB@
142
143NCURSES_MAJOR	= @NCURSES_MAJOR@
144NCURSES_MINOR	= @NCURSES_MINOR@
145REL_VERSION	= @cf_cv_rel_version@
146ABI_VERSION	= @cf_cv_abi_version@
147
148RANLIB		= @LIB_PREP@
149
150LIBRARIES	= @Libs_To_Make@
151
152LINT		= @LINT@
153LINT_OPTS	= @LINT_OPTS@
154LINT_LIBS	= -lncurses @LIBS@
155
156FALLBACK_LIST	= @FALLBACK_LIST@
157
158USE_BIG_STRINGS	= @USE_BIG_STRINGS@
159TERMINFO_CAPS	= $(top_srcdir)/include/@TERMINFO_CAPS@
160CAPLIST		= $(TERMINFO_CAPS) $(top_srcdir)/include/Caps-ncurses
161
162TERMINFO	= @TERMINFO@
163TERMINFO_SRC	= @TERMINFO_SRC@
164TIC_PATH	= @TIC@
165INFOCMP_PATH	= @INFOCMP@
166
167AUTO_SRC = \
168	./codes.c \
169	./comp_captab.c \
170	./comp_userdefs.c \
171	./expanded.c \
172	./fallback.c \
173	./lib_gen.c \
174	./lib_keyname.c \
175	./link_test.c \
176	./names.c \
177	./unctrl.c \
178	init_keytry.h \
179	keys.list
180
181HEADER_DEPS	= @INTERNALS_HDR@ \
182	../include/ncurses_cfg.h \
183	../include/ncurses_def.h \
184	../include/ncurses_dll.h \
185	../include/curses.h \
186	../include/term.h \
187	../include/unctrl.h \
188	$(INCDIR)/nc_alloc.h \
189	$(INCDIR)/nc_panel.h \
190	$(INCDIR)/nc_string.h \
191	$(INCDIR)/nc_termios.h \
192	$(INCDIR)/nc_tparm.h \
193	$(INCDIR)/nc_win32.h \
194	$(INCDIR)/term_entry.h \
195	$(srcdir)/curses.priv.h \
196	$(srcdir)/new_pair.h
197
198TEST_DEPS	= ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
199TEST_ARGS	= @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
200TEST_LDFLAGS	= @LD_MODEL@ $(TEST_ARGS) @LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
201
202TEST_PROGS = \
203	captoinfo$x \
204	hardscroll$x \
205	hashmap$x \
206	lib_mvcur$x \
207	link_test$x \
208	report_hashing$x
209
210LOCAL_LIBDIR	= @top_builddir@/lib
211
212base	 = $(srcdir)/base
213serial	 = $(srcdir)/tty
214tinfo	 = $(srcdir)/tinfo
215trace	 = $(srcdir)/trace
216wide	 = $(srcdir)/widechar
217win32con = $(srcdir)/win32con
218
219################################################################################
220all libs ::	$(AUTO_SRC) ../lib $(LIBRARIES)
221
222@CHECK_BUILD@all libs ::	report_offsets$(BUILD_EXEEXT)
223
224sources:	$(AUTO_SRC)
225
226$(DESTDIR)$(bindir) \
227$(DESTDIR)$(libdir) :
228	mkdir -p $@
229
230../lib : ; mkdir $@
231
232./fallback.c : $(tinfo)/MKfallback.sh
233	$(SHELL) -e $(tinfo)/MKfallback.sh $(TERMINFO) $(TERMINFO_SRC) "$(TIC_PATH)" "$(INFOCMP_PATH)" $(FALLBACK_LIST) >$@
234
235./lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h
236	$(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@
237
238init_keytry.h: make_keys$(BUILD_EXEEXT) keys.list
239	./make_keys$(BUILD_EXEEXT) keys.list > $@
240
241keys.list :	$(tinfo)/MKkeys_list.sh
242	AWK=$(AWK) $(SHELL) $(tinfo)/MKkeys_list.sh $(CAPLIST) | LC_ALL=C sort >$@
243
244make_keys$(BUILD_EXEEXT) : \
245		build.priv.h \
246		$(tinfo)/make_keys.c \
247		./names.c
248	$(BUILD_CC) -o $@ $(BUILD_CPPFLAGS) $(BUILD_CCFLAGS) $(tinfo)/make_keys.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
249
250make_hash$(BUILD_EXEEXT) : \
251		build.priv.h \
252		$(tinfo)/make_hash.c \
253		../include/hashsize.h
254	$(BUILD_CC) -o $@ $(BUILD_CPPFLAGS) $(BUILD_CCFLAGS) $(tinfo)/make_hash.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
255
256report_offsets$(BUILD_EXEEXT) : \
257		$(srcdir)/curses.priv.h \
258		$(srcdir)/report_offsets.c
259	$(BUILD_CC) -o $@ $(BUILD_CPPFLAGS) $(BUILD_CCFLAGS) $(srcdir)/report_offsets.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
260	./report_offsets$(BUILD_EXEEXT)
261
262./expanded.c : $(srcdir)/curses.priv.h $(serial)/MKexpanded.sh
263	$(SHELL) -e $(serial)/MKexpanded.sh "$(CPP)" $(CPPFLAGS) > $@
264
265./comp_captab.c: \
266		make_hash$(BUILD_EXEEXT) \
267		../include/hashsize.h \
268		$(tinfo)/MKcaptab.sh \
269		$(tinfo)/MKcaptab.awk
270	$(SHELL) -e $(tinfo)/MKcaptab.sh $(AWK) $(USE_BIG_STRINGS) $(tinfo)/MKcaptab.awk $(CAPLIST) > $@
271
272./comp_userdefs.c: \
273		make_hash$(BUILD_EXEEXT) \
274		../include/hashsize.h \
275		$(tinfo)/MKuserdefs.sh
276	$(SHELL) -e $(tinfo)/MKuserdefs.sh $(AWK) $(USE_BIG_STRINGS) $(CAPLIST) > $@
277
278./lib_keyname.c: keys.list $(base)/MKkeyname.awk
279	$(AWK) -f $(base)/MKkeyname.awk bigstrings=$(USE_BIG_STRINGS) keys.list > $@
280
281./codes.c: $(tinfo)/MKcodes.awk
282	$(AWK) -f $(tinfo)/MKcodes.awk bigstrings=$(USE_BIG_STRINGS) $(CAPLIST) >$@
283
284./names.c: $(tinfo)/MKnames.awk
285	$(AWK) -f $(tinfo)/MKnames.awk bigstrings=$(USE_BIG_STRINGS) $(CAPLIST) >$@
286
287./unctrl.c: $(base)/MKunctrl.awk
288	echo | $(AWK) -f $(base)/MKunctrl.awk bigstrings=$(USE_BIG_STRINGS) >$@
289
290tags:
291	$(CTAGS) *.[ch] */*.[ch]
292
293@MAKE_UPPER_TAGS@TAGS:
294@MAKE_UPPER_TAGS@	$(ETAGS) *.[ch] */*.[ch]
295
296mostlyclean ::
297	-rm -f core tags TAGS *~ *.bak *.i *.ln *.atac
298	-test -d trace || rm -f trace
299	-rm -f $(TEST_PROGS)
300
301clean :: mostlyclean
302	-rm -f $(AUTO_SRC)
303	-rm -f make_keys$(BUILD_EXEEXT)
304	-rm -f make_hash$(BUILD_EXEEXT)
305	-rm -f report_offsets$(BUILD_EXEEXT)
306	-rm -rf .libs *.dSYM *.map
307
308distclean :: clean
309	-rm -f Makefile
310
311realclean :: distclean
312
313# These rules are used to allow "make -n" to work on a clean directory-tree
314../include/hashsize.h \
315../include/parametrized.h \
316../include/term.h :
317	( cd ../include && $(MAKE) $(TOP_MFLAGS) )
318
319# These rules build test-programs for the modules that have test-drivers
320test_progs : $(TEST_PROGS)
321
322./link_test.c : $(base)/MKlib_gen.sh ../include/curses.h
323	$(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@
324
325captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS)
326	@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
327
328hardscroll$x : $(serial)/hardscroll.c $(TEST_DEPS)
329	@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
330
331hashmap$x : $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_DEPS)
332	@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_LDFLAGS)
333
334lib_mvcur$x : $(serial)/lib_mvcur.c $(TEST_DEPS) \
335		../@DFT_OBJ_SUBDIR@/dump_entry$o
336	@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS)
337
338link_test$x : ./link_test.c $(TEST_DEPS) \
339		../@DFT_OBJ_SUBDIR@/link_test$o
340	@ECHO_LD@ $(CC) -o $@ $(CFLAGS_DEFAULT) ../@DFT_OBJ_SUBDIR@/link_test$o $(TEST_LDFLAGS)
341
342../@DFT_OBJ_SUBDIR@/dump_entry$o:
343	( cd ../progs && $(MAKE) ../@DFT_OBJ_SUBDIR@/dump_entry$o )
344
345report_hashing$x : \
346		$(srcdir)/curses.priv.h \
347		$(srcdir)/report_hashing.c $(TEST_DEPS)
348	@ECHO_LD@ $(CC) -o $@ $(CFLAGS_DEFAULT) report_hashing.c $(TEST_LDFLAGS)
349
350###############################################################################
351# The remainder of this file is automatically generated during configuration
352###############################################################################
353