+ The termlib.buildlink3.mk file is meant to be included by packages
that need basic termlib functionality, i.e. tgetent(), tgoto(), tputs(), etc. Together with the termlib.builtin.mk file, they will use either a built-in termcap library, a built-in X/Open "enhanced" curses library, or ncurses to provide these functions. + Add BUILDLINK_LIBNAME.* definitions to the various curses buildlink3.mk and builtin.mk files that give the "base" library name of the curses library, e.g. curses, ncurses, etc. These are used by the termlib files to set BUILDLINK_LIBNAME.termlib.
This commit is contained in:
parent
8dbadc06ac
commit
f686df4e6c
7 changed files with 110 additions and 15 deletions
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: buildlink3.mk,v 1.29 2008/02/26 17:21:13 jlam Exp $
|
||||
# $NetBSD: buildlink3.mk,v 1.30 2008/02/27 04:47:02 jlam Exp $
|
||||
|
||||
BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+
|
||||
NCURSES_BUILDLINK3_MK:= ${NCURSES_BUILDLINK3_MK}+
|
||||
|
@ -15,13 +15,14 @@ BUILDLINK_ORDER:= ${BUILDLINK_ORDER} ${BUILDLINK_DEPTH}ncurses
|
|||
BUILDLINK_API_DEPENDS.ncurses+= ncurses>=5.3nb1
|
||||
BUILDLINK_ABI_DEPENDS.ncurses+= ncurses>=5.4nb1
|
||||
BUILDLINK_PKGSRCDIR.ncurses?= ../../devel/ncurses
|
||||
BUILDLINK_LDADD.ncurses?= -lncurses
|
||||
BUILDLINK_LIBNAME.ncurses= ncurses
|
||||
BUILDLINK_LDADD.ncurses?= -l${BUILDLINK_LIBNAME.ncurses}
|
||||
|
||||
# Many packages expect the ncurses headers and libraries to be usable as
|
||||
# <curses.h> and -lcurses.
|
||||
#
|
||||
BUILDLINK_TARGETS+= buildlink-ncurses-curses-h
|
||||
BUILDLINK_TRANSFORM+= l:curses:ncurses
|
||||
BUILDLINK_TARGETS+= buildlink-ncurses-curses-h
|
||||
BUILDLINK_TRANSFORM+= l:curses:${BUILDLINK_LIBNAME.ncurses}
|
||||
|
||||
.PHONY: buildlink-ncurses-curses-h
|
||||
buildlink-ncurses-curses-h:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: builtin.mk,v 1.16 2008/02/26 17:21:13 jlam Exp $
|
||||
# $NetBSD: builtin.mk,v 1.17 2008/02/27 04:47:02 jlam Exp $
|
||||
|
||||
BUILTIN_PKG:= ncurses
|
||||
|
||||
|
@ -107,12 +107,11 @@ USE_BUILTIN.ncurses= no
|
|||
CHECK_BUILTIN.ncurses?= no
|
||||
.if !empty(CHECK_BUILTIN.ncurses:M[nN][oO])
|
||||
|
||||
BUILDLINK_LDADD.ncurses= -lncurses
|
||||
BUILDLINK_TRANSFORM+= l:ncurses:${BUILDLINK_LIBNAME.ncurses}
|
||||
. if !empty(USE_BUILTIN.ncurses:M[yY][eE][sS])
|
||||
. if !empty(BUILTIN_LIB_FOUND.ncurses:M[nN][oO]) && \
|
||||
!empty(BUILTIN_LIB_FOUND.curses:M[yY][eE][sS])
|
||||
BUILDLINK_LDADD.ncurses= -lcurses
|
||||
BUILDLINK_TRANSFORM+= l:ncurses:curses
|
||||
BUILDLINK_LIBNAME.ncurses= curses
|
||||
. endif
|
||||
#
|
||||
# On Interix, there is a libncurses.a and a libcurses.so but strangely,
|
||||
|
@ -121,8 +120,7 @@ BUILDLINK_TRANSFORM+= l:ncurses:curses
|
|||
#
|
||||
. if (${OPSYS} == "Interix") && \
|
||||
!empty(BUILTIN_LIB_FOUND.curses:M[yY][eE][sS])
|
||||
BUILDLINK_LDADD.ncurses= -lcurses
|
||||
BUILDLINK_TRANSFORM+= l:ncurses:curses
|
||||
BUILDLINK_LIBNAME.ncurses= curses
|
||||
. endif
|
||||
BUILDLINK_TARGETS+= buildlink-curses-ncurses-h
|
||||
BUILDLINK_TARGETS+= buildlink-ncurses-extra-includes
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: buildlink3.mk,v 1.2 2008/02/25 04:19:34 jlam Exp $
|
||||
# $NetBSD: buildlink3.mk,v 1.3 2008/02/27 04:47:02 jlam Exp $
|
||||
|
||||
BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+
|
||||
PDCURSES_BUILDLINK3_MK:= ${PDCURSES_BUILDLINK3_MK}+
|
||||
|
@ -14,7 +14,8 @@ BUILDLINK_ORDER:= ${BUILDLINK_ORDER} ${BUILDLINK_DEPTH}pdcurses
|
|||
.if !empty(PDCURSES_BUILDLINK3_MK:M+)
|
||||
BUILDLINK_API_DEPENDS.pdcurses+= pdcurses>=3.3
|
||||
BUILDLINK_PKGSRCDIR.pdcurses?= ../../devel/pdcurses
|
||||
BUILDLINK_LDADD.pdcurses?= -lXCurses
|
||||
BUILDLINK_LIBNAME.pdcurses= XCurses
|
||||
BUILDLINK_LDADD.pdcurses?= -l${BUILDLINK_LIBNAME.pdcurses}
|
||||
|
||||
# _PKG_USE_CURSES is defined by curses.buildlink3.mk to indicate that
|
||||
# the headers and libraries should be usable as <curses.h> and -lcurses.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: curses.buildlink3.mk,v 1.7 2008/02/27 02:26:07 jlam Exp $
|
||||
# $NetBSD: curses.buildlink3.mk,v 1.8 2008/02/27 04:47:02 jlam Exp $
|
||||
#
|
||||
# This Makefile fragment is meant to be included by packages that require
|
||||
# any curses implementation instead of one particular one. The available
|
||||
|
@ -91,8 +91,10 @@ BUILDLINK_BUILTIN_MK.curses= ../../mk/curses.builtin.mk
|
|||
.elif ${CURSES_TYPE} == "ncurses"
|
||||
USE_NCURSES= yes
|
||||
. include "../../devel/ncurses/buildlink3.mk"
|
||||
BUILDLINK_LIBNAME.curses?= ${BUILDLINK_LIBNAME.ncurses}
|
||||
BUILDLINK_LDADD.curses?= ${BUILDLINK_LDADD.ncurses}
|
||||
.elif ${CURSES_TYPE} == "pdcurses"
|
||||
. include "../../devel/pdcurses/buildlink3.mk"
|
||||
BUILDLINK_LIBNAME.curses?= ${BUILDLINK_LIBNAME.pdcurses}
|
||||
BUILDLINK_LDADD.curses?= ${BUILDLINK_LDADD.pdcurses}
|
||||
.endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: curses.builtin.mk,v 1.2 2008/02/27 02:26:07 jlam Exp $
|
||||
# $NetBSD: curses.builtin.mk,v 1.3 2008/02/27 04:47:02 jlam Exp $
|
||||
|
||||
BUILTIN_PKG:= curses
|
||||
|
||||
|
@ -58,7 +58,8 @@ CHECK_BUILTIN.curses?= no
|
|||
BUILDLINK_INCDIRS.curses?= ${H_CURSES:H:S/^${BUILDLINK_PREFIX.curses}\///}
|
||||
. endif
|
||||
. if !empty(BUILTIN_LIB_FOUND.curses:M[yY][eE][sS])
|
||||
BUILDLINK_LDADD.curses?= -lcurses
|
||||
BUILDLINK_LIBNAME.curses= curses
|
||||
BUILDLINK_LDADD.curses?= -l${BUILDLINK_LIBNAME.curses}
|
||||
. endif
|
||||
. endif
|
||||
|
||||
|
|
48
mk/termlib.buildlink3.mk
Normal file
48
mk/termlib.buildlink3.mk
Normal file
|
@ -0,0 +1,48 @@
|
|||
# $NetBSD: termlib.buildlink3.mk,v 1.1 2008/02/27 04:47:02 jlam Exp $
|
||||
#
|
||||
# This Makefile fragment is meant to be included by packages that require
|
||||
# a basic termlib implementation.
|
||||
#
|
||||
# === Variables set by this file ===
|
||||
#
|
||||
# TERMLIB_TYPE
|
||||
# The name of the selected termlib implementation.
|
||||
|
||||
TERMLIB_BUILDLINK3_MK:= ${TERMLIB_BUILDLINK3_MK}+
|
||||
|
||||
.include "bsd.fast.prefs.mk"
|
||||
|
||||
.if !empty(TERMLIB_BUILDLINK3_MK:M+)
|
||||
|
||||
CHECK_BUILTIN.termlib:= yes
|
||||
. include "termlib.builtin.mk"
|
||||
CHECK_BUILTIN.termlib:= no
|
||||
|
||||
. if !empty(USE_BUILTIN.termlib:M[yY][eE][sS])
|
||||
. if defined(BUILTIN_LIBNAME.termlib)
|
||||
TERMLIB_TYPE= ${BUILTIN_LIBNAME.termlib}
|
||||
. else
|
||||
TERMLIB_TYPE= none
|
||||
. endif
|
||||
. else
|
||||
TERMLIB_TYPE= curses
|
||||
. endif
|
||||
|
||||
BUILD_DEFS+= TERMLIB_TYPE
|
||||
|
||||
.endif # TERMLIB_BUILDLINK3_MK
|
||||
|
||||
.if ${TERMLIB_TYPE} == "none"
|
||||
PKG_FAIL_REASON= "No usable terminal library found on the system."
|
||||
.elif (${TERMLIB_TYPE} == "termcap")
|
||||
BUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Ntermlib}
|
||||
BUILDLINK_PACKAGES+= termlib
|
||||
BUILDLINK_ORDER:= ${BUILDLINK_ORDER} ${BUILDLINK_DEPTH}termlib
|
||||
BUILDLINK_LIBNAME.termlib?= termcap
|
||||
BUILDLINK_LDADD.termlib?= -l${BUILDLINK_LIBNAME.termlib}
|
||||
BUILDLINK_BUILTIN_MK.termlib= ../../mk/termlib.builtin.mk
|
||||
.elif ${TERMLIB_TYPE} == "curses"
|
||||
. include "../../mk/curses.buildlink3.mk"
|
||||
BUILDLINK_LIBNAME.termlib?= ${BUILDLINK_LIBNAME.curses}
|
||||
BUILDLINK_LDADD.termlib?= ${BUILDLINK_LDADD.curses}
|
||||
.endif
|
44
mk/termlib.builtin.mk
Normal file
44
mk/termlib.builtin.mk
Normal file
|
@ -0,0 +1,44 @@
|
|||
# $NetBSD: termlib.builtin.mk,v 1.1 2008/02/27 04:47:02 jlam Exp $
|
||||
|
||||
BUILTIN_PKG:= termlib
|
||||
|
||||
BUILTIN_FIND_LIBS:= termcap curses
|
||||
|
||||
.include "buildlink3/bsd.builtin.mk"
|
||||
|
||||
###
|
||||
### Determine if there is a built-in implementation of the package and
|
||||
### set IS_BUILTIN.<pkg> appropriately ("yes" or "no").
|
||||
###
|
||||
.if !defined(IS_BUILTIN.termlib)
|
||||
IS_BUILTIN.termlib= no
|
||||
. if !empty(BUILTIN_LIB_FOUND.termcap:M[yY][eE][sS]) || \
|
||||
!empty(BUILTIN_LIB_FOUND.curses:M[yY][eE][sS])
|
||||
IS_BUILTIN.termlib= yes
|
||||
. endif
|
||||
.endif
|
||||
MAKEVARS+= IS_BUILTIN.termlib
|
||||
|
||||
###
|
||||
### Determine whether we should use the built-in implementation if it
|
||||
### exists, and set USE_BUILTIN.<pkg> appropriate ("yes" or "no").
|
||||
###
|
||||
.if !defined(USE_BUILTIN.termlib)
|
||||
. if ${PREFER.termlib} == "pkgsrc"
|
||||
USE_BUILTIN.termlib= no
|
||||
. else
|
||||
USE_BUILTIN.termlib= ${IS_BUILTIN.termlib}
|
||||
. endif # PREFER.termlib
|
||||
.endif
|
||||
MAKEVARS+= USE_BUILTIN.termlib
|
||||
|
||||
# Define BUILTIN_LIBNAME.termlib to be the built-in terminal library
|
||||
# only if we're using the built-in termlib.
|
||||
#
|
||||
.if !empty(USE_BUILTIN.termlib:M[yY][eE][sS])
|
||||
. if !empty(BUILTIN_LIB_FOUND.termcap:M[yY][eE][sS])
|
||||
BUILTIN_LIBNAME.termlib= termcap
|
||||
. elif !empty(BUILTIN_LIB_FOUND.curses:M[yY][eE][sS])
|
||||
BUILTIN_LIBNAME.termlib= curses
|
||||
. endif
|
||||
.endif
|
Loading…
Reference in a new issue