From 8128141e3cbd714f56537a26a71f63de749a8ba3 Mon Sep 17 00:00:00 2001 From: roy Date: Sun, 7 Feb 2010 09:46:13 +0000 Subject: Add builtin for working out if we have terminfo installed natively. --- mk/terminfo.builtin.mk | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 mk/terminfo.builtin.mk (limited to 'mk/terminfo.builtin.mk') diff --git a/mk/terminfo.builtin.mk b/mk/terminfo.builtin.mk new file mode 100644 index 00000000000..713672b0214 --- /dev/null +++ b/mk/terminfo.builtin.mk @@ -0,0 +1,82 @@ +# $NetBSD: terminfo.builtin.mk,v 1.1 2010/02/07 09:46:14 roy Exp $ + +BUILTIN_PKG:= terminfo + +BUILTIN_FIND_LIBS:= terminfo curses tinfo +BUILTIN_FIND_FILES_VAR:= H_TERM +BUILTIN_FIND_FILES.H_TERM:= /usr/include/term.h +BUILTIN_FIND_GREP.H_TERM:= tigetent + +.include "buildlink3/bsd.builtin.mk" + +### +### Determine if there is a built-in implementation of the package and +### set IS_BUILTIN. appropriately ("yes" or "no"). +### +.if !defined(IS_BUILTIN.terminfo) +IS_BUILTIN.terminfo= no +. if !empty(BUILTIN_LIB_FOUND.terminfo:M[yY[eE][sS]) || \ + !empty(BUILTIN_LIB_FOUND.curses:M[yY][eE][sS]) || \ + !empty(BUILTIN_LIB_FOUND.tinfo:M[yY][eE][sS]) +IS_BUILTIN.terminfo= yes +. endif +.endif +MAKEVARS+= IS_BUILTIN.terminfo + +### +### Determine whether we should use the built-in implementation if it +### exists, and set USE_BUILTIN. appropriate ("yes" or "no"). +### +.if !defined(USE_BUILTIN.terminfo) +. if ${PREFER.terminfo} == "pkgsrc" +USE_BUILTIN.terminfo= no +. else +USE_BUILTIN.terminfo= ${IS_BUILTIN.terminfo} +. endif # PREFER.terminfo +.endif +MAKEVARS+= USE_BUILTIN.terminfo + +# Define BUILTIN_LIBNAME.termcap to be the base name of the built-in +# termcap library. +# +# The way this is determined is: +# +# (1) If exists and libterminfo exists, then it's "terminfo". +# (1) If exists and libtinfo exists, then it's "tinfo". +# (2) If exists and libcurses exists, then it's "curses". +# (3) If exists and lib{curses,terminfo,tinfo} don't, then it's "c". +# +.if empty(H_TERM:M__nonexistent__) && empty(H_TERM:M${LOCALBASE}/*) +. if !empty(BUILTIN_LIB_FOUND.terminfo:M[yY][eE][sS]) +BUILTIN_LIBNAME.terminfo= terminfo +. elif !empty(BUILTIN_LIB_FOUND.tinfo:M[yY][eE][sS]) +BUILTIN_LIBNAME.terminfo= tinfo +. elif !empty(BUILTIN_LIB_FOUND.curses:M[yY][eE][sS]) +BUILTIN_LIBNAME.terminfo= curses +. else +BUILTIN_LIBNAME.terminfo= c +. endif +.endif + +### +### The section below only applies if we are not including this file +### solely to determine whether a built-in implementation exists. +### +CHECK_BUILTIN.terminfo?= no +.if !empty(CHECK_BUILTIN.terminfo:M[nN][oO]) + +. if !empty(USE_BUILTIN.terminfo:M[yY][eE][sS]) +BUILDLINK_LIBNAME.terminfo= ${BUILTIN_LIBNAME.terminfo} +. endif + +# If the package wants both "terminfo" and "curses", then we must not +# remove the -l options for the curses libraries; otherwise, we should +# remove them as GNU configure scripts commonly check for one or both +# of those library options. +# +. if empty(BUILDLINK_TREE:Mcurses) && empty(BUILDLINK_TREE:Mncurses) +BUILDLINK_TRANSFORM+= rm:-lcurses +BUILDLINK_TRANSFORM+= rm:-lncurses +. endif + +.endif # CHECK_BUILTIN.terminfo -- cgit v1.2.3