# $Id: Makefile.in,v 1.56 2025/10/18 13:33:46 tom Exp $
##############################################################################
# Copyright 2019-2024,2025 Thomas E. Dickey                                  #
# Copyright 1998-2013,2015 Free Software Foundation, Inc.                    #
#                                                                            #
# Copyright (c) 2026                                                         #
# Project Tick. All rights reserved.                                         #
#                                                                            #
# Permission is hereby granted, free of charge, to any person obtaining a    #
# copy of this software and associated documentation files (the "Software"), #
# to deal in the Software without restriction, including without limitation  #
# the rights to use, copy, modify, merge, publish, distribute, distribute    #
# with modifications, sublicense, and/or sell copies of the Software, and to #
# permit persons to whom the Software is furnished to do so, subject to the  #
# following conditions:                                                      #
#                                                                            #
# The above copyright notice and this permission notice shall be included in #
# all copies or substantial portions of the Software.                        #
#                                                                            #
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
# DEALINGS IN THE SOFTWARE.                                                  #
#                                                                            #
# Except as contained in this notice, the name(s) of the above copyright     #
# holders shall not be used in advertising or otherwise to promote the sale, #
# use or other dealings in this Software without prior written               #
# authorization.                                                             #
##############################################################################
#
# Author: Thomas E. Dickey 1996-on
#
# Makefile for ncurses source code.
#
# This makes/installs ncurses include-files
#
# The variable 'srcdir' refers to the source-distribution, and can be set with
# the configure script by "--srcdir=DIR".

# turn off _all_ suffix rules; we'll generate our own
.SUFFIXES:

SHELL		= @SHELL@
VPATH		= @srcdir@
THIS		= Makefile

@SET_DESTDIR@
srcdir		= @srcdir@
prefix		= @prefix@
exec_prefix	= @exec_prefix@
includedir	= @includedir@
includesubdir	= @includesubdir@

INCLUDEDIR	= $(DESTDIR)$(includedir@MERGE_PREFIX@)$(includesubdir)

INSTALL		= @INSTALL@
INSTALL_DATA	= @INSTALL_DATA@

AWK		= @AWK@
LN_S		= @LN_S@

CC		= @CC@
CFLAGS		= @CFLAGS@ @EXTRA_CFLAGS@
CPPFLAGS	= -DHAVE_CONFIG_H -I. @CPPFLAGS@

CTAGS		= @CTAGS@
ETAGS		= @ETAGS@

VERSION		= @cf_cv_rel_version@

# The "Caps" file specifies the terminfo database format, as well as the list
# of function keys.
TERMINFO_CAPS	= $(srcdir)/@TERMINFO_CAPS@
CAPLIST	=	$(TERMINFO_CAPS) \
		$(srcdir)/Caps-ncurses

# These files are generated by the configure script
CONFIG_SRC = \
	MKterm.h.awk \
	curses.head \
	nc_win32.h \
	ncurses_dll.h \
	termcap.h \
	unctrl.h

# These files are generated by this makefile
AUTO_SRC = \
	curses.h \
	hashsize.h \
	ncurses_def.h \
	parametrized.h \
	config.h \
	term.h

################################################################################

@MAKE_PHONY@.PHONY :	all
@MAKE_PHONY@.PHONY :	check
@MAKE_PHONY@.PHONY :	clean
@MAKE_PHONY@.PHONY :	depend
@MAKE_PHONY@.PHONY :	distclean
@MAKE_PHONY@.PHONY :	install
@MAKE_PHONY@.PHONY :	install.libs
@MAKE_PHONY@.PHONY :	libs
@MAKE_PHONY@.PHONY :	mostlyclean
@MAKE_PHONY@.PHONY :	realclean
@MAKE_PHONY@.PHONY :	sources
@MAKE_PHONY@.PHONY :	uninstall
@MAKE_PHONY@.PHONY :	uninstall.libs

all \
libs \
depend \
sources \
install ::	$(AUTO_SRC)

curses.h :	$(CAPLIST) \
		curses.head \
		$(srcdir)/curses.tail \
		$(srcdir)/MKkey_defs.sh
	cat curses.head >$@
	AWK=$(AWK) $(SHELL) $(srcdir)/MKkey_defs.sh $(CAPLIST) >>$@
	$(SHELL) -c 'if test "@NCURSES_WGETCH_EVENTS@" = "1" ; then cat $(srcdir)/curses.events >>$@ ; fi'
	$(SHELL) -c 'if test "@NCURSES_CH_T@" = "cchar_t" ; then cat $(srcdir)/curses.wide >>$@ ; fi'
	cat $(srcdir)/curses.tail >>$@

term.h: 	$(CAPLIST) \
		MKterm.h.awk
	$(AWK) -f MKterm.h.awk $(CAPLIST) > $@
	$(SHELL) $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@

hashsize.h:	$(CAPLIST) \
		$(srcdir)/MKhashsize.sh
	$(SHELL) $(srcdir)/MKhashsize.sh $(CAPLIST) >$@

ncurses_def.h: $(srcdir)/ncurses_defs $(srcdir)/MKncurses_def.sh
	AWK=$(AWK) $(SHELL) $(srcdir)/MKncurses_def.sh $(srcdir)/ncurses_defs >$@

parametrized.h: $(CAPLIST) \
		$(srcdir)/MKparametrized.sh
	AWK=$(AWK) $(SHELL) $(srcdir)/MKparametrized.sh $(CAPLIST) >$@

# This is required by pthread.h on MinGW
config.h:
	touch $@

tags:
	$(CTAGS) *.[ch]

@MAKE_UPPER_TAGS@TAGS:
@MAKE_UPPER_TAGS@	$(ETAGS) *.[ch]

mostlyclean ::
	-rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace

clean :: mostlyclean
	-rm -f $(AUTO_SRC)
	-rm -rf *.dSYM

distclean :: clean
	-rm -f Makefile $(CONFIG_SRC) config.h

realclean :: distclean

# Verify that each header-file can be compiled without including another.
check:
	@$(SHELL) -c "for header in *.h;\
		do \
			echo \"** testing \$${header}\" ; \
			echo \"#include <\$${header}>\" >headers.c; \
			echo \"int main(void) { return 0; }\" >>headers.c; \
			$(CC) -c $(CFLAGS) $(CPPFLAGS) headers.c; \
		done"
	-@rm -f headers.*

###############################################################################
# The remainder of this file is automatically generated during configuration
###############################################################################
