Detect a working terminfo a little better.diff -r0 -r1.1 pkgsrc/mk/terminfo.buildlink3.mk
(roy)
# $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
@@ -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 | |||
3 | BUILTIN_PKG:= terminfo | 3 | BUILTIN_PKG:= terminfo | |
4 | 4 | |||
5 | BUILTIN_FIND_LIBS:= terminfo curses tinfo | 5 | BUILTIN_FIND_LIBS:= terminfo curses tinfo | |
6 | BUILTIN_FIND_FILES_VAR:= H_TERM | 6 | BUILTIN_FIND_FILES_VAR:= H_TERM | |
7 | BUILTIN_FIND_FILES.H_TERM:= /usr/include/term.h | 7 | BUILTIN_FIND_FILES.H_TERM:= /usr/include/term.h | |
8 | BUILTIN_FIND_GREP.H_TERM:= tigetent | 8 | BUILTIN_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) | |
17 | IS_BUILTIN.terminfo= no | 17 | IS_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]) | |||
21 | IS_BUILTIN.terminfo= yes | 22 | IS_BUILTIN.terminfo= yes | |
23 | . endif | |||
22 | . endif | 24 | . endif | |
23 | .endif | 25 | .endif | |
24 | MAKEVARS+= IS_BUILTIN.terminfo | 26 | MAKEVARS+= 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" | |
32 | USE_BUILTIN.terminfo= no | 34 | USE_BUILTIN.terminfo= no | |
33 | . else | 35 | . else | |
34 | USE_BUILTIN.terminfo= ${IS_BUILTIN.terminfo} | 36 | USE_BUILTIN.terminfo= ${IS_BUILTIN.terminfo} |