summaryrefslogtreecommitdiff
path: root/mk/termcap.buildlink3.mk
diff options
context:
space:
mode:
authorjlam <jlam@pkgsrc.org>2008-03-05 16:23:52 +0000
committerjlam <jlam@pkgsrc.org>2008-03-05 16:23:52 +0000
commit3a9a5fdff858769244394789b68a5ee0358a8cbf (patch)
tree2e3b65e89a0fa5365e9ad6a27c6e0c9c7b6dab87 /mk/termcap.buildlink3.mk
parentcfdba2b9391ccff56fc5b6daf27225863ee35105 (diff)
downloadpkgsrc-3a9a5fdff858769244394789b68a5ee0358a8cbf.tar.gz
+ Fix error in previous commit -- too much of the termcap buildlink
code was moved to the builtin.mk file. The buildlink3.mk file should contain the bits that always apply to all packages that include it. The builtin.mk file should include the bits that only apply if "termcap" is listed in ${BUILDLINK_PACKAGES} (this isn't the case if we use curses to replace termcap). As such, redistribute the code as follows: + Move the parts that remove -l options for terminal libraries we don't support, as well as for transforming "-ltermcap" into the appropriate libraries, from the builtin.mk back into the buildlink3.mk. + Leave the parts the remove -lcurses and -lncurses in the builtin.mk. We can remove the ${TERMCAP_TYPE} == "curses" check since that part of the file is protected by CHECK_BUILTIN.termcap, so it should only be triggered if "termcap" is in BUILDLINK_PACKAGES, which only happens if ${TERMCAP_TYPE} isn't "curses".
Diffstat (limited to 'mk/termcap.buildlink3.mk')
-rw-r--r--mk/termcap.buildlink3.mk34
1 files changed, 31 insertions, 3 deletions
diff --git a/mk/termcap.buildlink3.mk b/mk/termcap.buildlink3.mk
index 68ef7da2c82..fee1309a53c 100644
--- a/mk/termcap.buildlink3.mk
+++ b/mk/termcap.buildlink3.mk
@@ -1,4 +1,4 @@
-# $NetBSD: termcap.buildlink3.mk,v 1.4 2008/03/05 07:10:26 jlam Exp $
+# $NetBSD: termcap.buildlink3.mk,v 1.5 2008/03/05 16:23:52 jlam Exp $
#
# This Makefile fragment is meant to be included by packages that require
# a termcap implementation that supports the basic termcap functions:
@@ -8,8 +8,7 @@
# === Variables set by this file ===
#
# TERMCAP_TYPE
-# The name of the selected termcap implementation. This is actually
-# indirectly set by termcap.builtin.mk but is exported by this file.
+# The name of the selected termcap implementation.
TERMCAP_BUILDLINK3_MK:= ${TERMCAP_BUILDLINK3_MK}+
@@ -17,10 +16,39 @@ TERMCAP_BUILDLINK3_MK:= ${TERMCAP_BUILDLINK3_MK}+
.if !empty(TERMCAP_BUILDLINK3_MK:M+)
+# _TERMCAP_TYPES is an exhaustive list of all of the termcap
+# implementations that may be found.
+#
+_TERMCAP_TYPES?= curses termcap termlib tinfo
+
CHECK_BUILTIN.termcap:= yes
. include "termcap.builtin.mk"
CHECK_BUILTIN.termcap:= no
+.if !empty(USE_BUILTIN.termcap:M[yY][eE][sS])
+. if defined(BUILTIN_LIBNAME.termcap)
+TERMCAP_TYPE= ${BUILTIN_LIBNAME.termcap}
+. else
+TERMCAP_TYPE= none
+. endif
+.else
+TERMCAP_TYPE= curses # pkgsrc termcap is curses
+.endif
+BUILD_DEFS+= TERMCAP_TYPE
+
+# Most GNU configure scripts will try finding every termcap implementation,
+# so prevent them from finding any except for the one we decide upon.
+#
+# There is special handling for packages that can be provided by pkgsrc,
+# e.g. curses -- see termcap.builtin.mk for details.
+#
+. for _tcap_ in ${_TERMCAP_TYPES:Ntermcap:Ncurses}
+. if empty(TERMCAP_TYPE:M${_tcap_})
+BUILDLINK_TRANSFORM+= rm:-l${_tcap_}
+. endif
+. endfor
+BUILDLINK_TRANSFORM+= l:termcap:${BUILDLINK_LIBNAME.termcap}
+
.endif # TERMCAP_BUILDLINK3_MK
.if ${TERMCAP_TYPE} == "none"