Mon Feb 8 22:11:43 2010 UTC ()
Detect a working terminfo a little better.


(roy)
diff -r0 -r1.1 pkgsrc/mk/terminfo.buildlink3.mk
diff -r1.1 -r1.2 pkgsrc/mk/terminfo.builtin.mk

File Added: pkgsrc/mk/terminfo.buildlink3.mk
# $NetBSD: terminfo.buildlink3.mk,v 1.1 2010/02/08 22:11:43 roy Exp $
#
# This Makefile fragment is meant to be included by packages that require
# any terminfo implementation instead of one particular one.  The available
# terminfo implementations are "terminfo" if built-in, "ncurses", and
# "pdcurses".
#
# If a package genuinely requires ncurses or pdcurses, then it should
# directly include the appropriate buildlink3.mk instead of this file in
# the package Makefile.
#
# === User-settable variables ===
#
# TERMINFO_DEFAULT
#	This value represents the type of curses we wish to use on the
#	system.  Setting this to "curses" means that the system curses
#	implementation is fine.
#
#	Possible: terminfo, ncurses, pdcurses
#	Default: (depends)
#
# === Variables set by this file ===
#
# TERMINFO_TYPE
#	The name of the selected curses implementation.

TERMINFO_BUILDLINK3_MK:=	${TERMINFO_BUILDLINK3_MK}+
.include "bsd.fast.prefs.mk"

.if !empty(TERMINFO_BUILDLINK3_MK:M+)

# _TERMINFO_PKGS is an exhaustive list of all of the curses implementations
# that may be used with curses.buildlink3.mk.
#
_TERMINFO_PKGS?=		terminfo ncurses pdcurses

CHECK_BUILTIN.terminfo:=	yes
.  include "terminfo.builtin.mk"
CHECK_BUILTIN.terminfo:=	no

# Set the value of TERMINFO_DEFAULT depending on the platform and what's
# available in the base system.
#
.if defined(USE_BUILTIN.terminfo) && !empty(USE_BUILTIN.terminfo:M[yY][eE][sS])
TERMINFO_DEFAULT?=	terminfo
.else
TERMINFO_DEFAULT?=	ncurses
.endif

_TERMINFO_ACCEPTED=	# empty
.if defined(USE_BUILTIN.terminfo) && !empty(USE_BUILTIN.terminfo:M[yY][eE][sS])
_TERMINFO_ACCEPTED+=	terminfo	# system curses exists
.endif
_TERMINFO_ACCEPTED+=	ncurses		# pkgsrc ncurses
_TERMINFO_ACCEPTED+=	pdcurses	# pkgsrc pdcurses

_TERMINFO_TYPE=		${TERMINFO_DEFAULT}
.  if !empty(_TERMINFO_ACCEPTED:M${_TERMINFO_TYPE})
TERMINFO_TYPE=		${_TERMINFO_TYPE}
.  else
TERMINFO_TYPE=		none
.  endif

BUILD_DEFS+=		TERMINFO_DEFAULT
BUILD_DEFS_EFFECTS+=	TERMINFO_TYPE

.endif	# TERMINFO_BUILDLINK3_MK

.if ${TERMINFO_TYPE} == "none"
PKG_FAIL_REASON=	\
	"${_TERMINFO_TYPE} is not an acceptable terminfo type for ${PKGNAME}."
.elif ${TERMINFO_TYPE} == "terminfo"
.elif ${TERMINFO_TYPE} == "ncurses"
USE_NCURSES=			yes
.  include "../../devel/ncurses/buildlink3.mk"
BUILDLINK_PREFIX.curses?=	${BUILDLINK_PREFIX.ncurses}
BUILDLINK_LIBNAME.curses?=	${BUILDLINK_LIBNAME.ncurses}
BUILDLINK_LDADD.curses?=	${BUILDLINK_LDADD.ncurses}
.elif ${TERMINFO_TYPE} == "pdcurses"
.  include "../../devel/pdcurses/buildlink3.mk"
BUILDLINK_PREFIX.curses?=	${BUILDLINK_PREFIX.pdcurses}
BUILDLINK_LIBNAME.curses?=	${BUILDLINK_LIBNAME.pdcurses}
BUILDLINK_LDADD.curses?=	${BUILDLINK_LDADD.pdcurses}
.endif

cvs diff -r1.1 -r1.2 pkgsrc/mk/terminfo.builtin.mk (expand / switch to unified diff)

--- pkgsrc/mk/terminfo.builtin.mk 2010/02/07 09:46:14 1.1
+++ pkgsrc/mk/terminfo.builtin.mk 2010/02/08 22:11:43 1.2
@@ -1,34 +1,36 @@ @@ -1,34 +1,36 @@
1# $NetBSD: terminfo.builtin.mk,v 1.1 2010/02/07 09:46:14 roy Exp $ 1# $NetBSD: terminfo.builtin.mk,v 1.2 2010/02/08 22:11:43 roy Exp $
2 2
3BUILTIN_PKG:= terminfo 3BUILTIN_PKG:= terminfo
4 4
5BUILTIN_FIND_LIBS:= terminfo curses tinfo 5BUILTIN_FIND_LIBS:= terminfo curses tinfo
6BUILTIN_FIND_FILES_VAR:= H_TERM 6BUILTIN_FIND_FILES_VAR:= H_TERM
7BUILTIN_FIND_FILES.H_TERM:= /usr/include/term.h 7BUILTIN_FIND_FILES.H_TERM:= /usr/include/term.h
8BUILTIN_FIND_GREP.H_TERM:= tigetent 8BUILTIN_FIND_GREP.H_TERM:= tigetstr
9 9
10.include "buildlink3/bsd.builtin.mk" 10.include "buildlink3/bsd.builtin.mk"
11 11
12### 12###
13### Determine if there is a built-in implementation of the package and 13### Determine if there is a built-in implementation of the package and
14### set IS_BUILTIN.<pkg> appropriately ("yes" or "no"). 14### set IS_BUILTIN.<pkg> appropriately ("yes" or "no").
15### 15###
16.if !defined(IS_BUILTIN.terminfo) 16.if !defined(IS_BUILTIN.terminfo)
17IS_BUILTIN.terminfo= no 17IS_BUILTIN.terminfo= no
18. if !empty(BUILTIN_LIB_FOUND.terminfo:M[yY[eE][sS]) || \ 18. if empty(H_TERM:M__nonexistent__) && empty(H_TERM:M${LOCALBASE}/*)
19 !empty(BUILTIN_LIB_FOUND.curses:M[yY][eE][sS]) || \ 19. if !empty(BUILTIN_LIB_FOUND.terminfo:M[yY[eE][sS]) || \
20 !empty(BUILTIN_LIB_FOUND.tinfo:M[yY][eE][sS]) 20 !empty(BUILTIN_LIB_FOUND.curses:M[yY][eE][sS]) || \
 21 !empty(BUILTIN_LIB_FOUND.tinfo:M[yY][eE][sS])
21IS_BUILTIN.terminfo= yes 22IS_BUILTIN.terminfo= yes
 23. endif
22. endif 24. endif
23.endif 25.endif
24MAKEVARS+= IS_BUILTIN.terminfo 26MAKEVARS+= IS_BUILTIN.terminfo
25 27
26### 28###
27### Determine whether we should use the built-in implementation if it 29### Determine whether we should use the built-in implementation if it
28### exists, and set USE_BUILTIN.<pkg> appropriate ("yes" or "no"). 30### exists, and set USE_BUILTIN.<pkg> appropriate ("yes" or "no").
29### 31###
30.if !defined(USE_BUILTIN.terminfo) 32.if !defined(USE_BUILTIN.terminfo)
31. if ${PREFER.terminfo} == "pkgsrc" 33. if ${PREFER.terminfo} == "pkgsrc"
32USE_BUILTIN.terminfo= no 34USE_BUILTIN.terminfo= no
33. else 35. else
34USE_BUILTIN.terminfo= ${IS_BUILTIN.terminfo} 36USE_BUILTIN.terminfo= ${IS_BUILTIN.terminfo}