diff options
author | jlam <jlam@pkgsrc.org> | 2008-02-27 04:47:02 +0000 |
---|---|---|
committer | jlam <jlam@pkgsrc.org> | 2008-02-27 04:47:02 +0000 |
commit | f686df4e6c1895ff3eada380075cdc6d8854c01a (patch) | |
tree | 56928d0e8dbf992555dfd701e1f90d6e512a5196 | |
parent | 8dbadc06accb49d6b11e837958e72aaf205a15bb (diff) | |
download | pkgsrc-f686df4e6c1895ff3eada380075cdc6d8854c01a.tar.gz |
+ 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.
-rw-r--r-- | devel/ncurses/buildlink3.mk | 9 | ||||
-rw-r--r-- | devel/ncurses/builtin.mk | 10 | ||||
-rw-r--r-- | devel/pdcurses/buildlink3.mk | 5 | ||||
-rw-r--r-- | mk/curses.buildlink3.mk | 4 | ||||
-rw-r--r-- | mk/curses.builtin.mk | 5 | ||||
-rw-r--r-- | mk/termlib.buildlink3.mk | 48 | ||||
-rw-r--r-- | mk/termlib.builtin.mk | 44 |
7 files changed, 110 insertions, 15 deletions
diff --git a/devel/ncurses/buildlink3.mk b/devel/ncurses/buildlink3.mk index 0dce2a298a3..0b79c893f24 100644 --- a/devel/ncurses/buildlink3.mk +++ b/devel/ncurses/buildlink3.mk @@ -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: diff --git a/devel/ncurses/builtin.mk b/devel/ncurses/builtin.mk index e7e6dce54d7..63d23ec0924 100644 --- a/devel/ncurses/builtin.mk +++ b/devel/ncurses/builtin.mk @@ -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 diff --git a/devel/pdcurses/buildlink3.mk b/devel/pdcurses/buildlink3.mk index 84246da4fd6..c5ee527cc76 100644 --- a/devel/pdcurses/buildlink3.mk +++ b/devel/pdcurses/buildlink3.mk @@ -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. diff --git a/mk/curses.buildlink3.mk b/mk/curses.buildlink3.mk index 673dc05305a..84a4c8116dd 100644 --- a/mk/curses.buildlink3.mk +++ b/mk/curses.buildlink3.mk @@ -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 diff --git a/mk/curses.builtin.mk b/mk/curses.builtin.mk index 8e4a67a94db..e35b4ee4da3 100644 --- a/mk/curses.builtin.mk +++ b/mk/curses.builtin.mk @@ -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 diff --git a/mk/termlib.buildlink3.mk b/mk/termlib.buildlink3.mk new file mode 100644 index 00000000000..352e1512c48 --- /dev/null +++ b/mk/termlib.buildlink3.mk @@ -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 diff --git a/mk/termlib.builtin.mk b/mk/termlib.builtin.mk new file mode 100644 index 00000000000..5af985bd75d --- /dev/null +++ b/mk/termlib.builtin.mk @@ -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 |