pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/mk + Only remove -lcurses and -lncurses in BUILDLINK_T...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/d7d31dc15531
branches:  trunk
changeset: 539418:d7d31dc15531
user:      jlam <jlam%pkgsrc.org@localhost>
date:      Wed Mar 05 07:10:26 2008 +0000

description:
+ Only remove -lcurses and -lncurses in BUILDLINK_TRANSFORM if the
  package does not use either curses or ncurses.  We determine this
  by inspecting BUILDLINK_PACKAGES and looking for "curses" and
  "ncurses".

+ Because the above logic uses BUILDLINK_PACKAGES, the code must be
  moved from termcap.buildlink3.mk into termcap.builtin.mk where it
  is safe to inspect BUILDLINK_PACKAGES.

diffstat:

 mk/termcap.buildlink3.mk |  34 +++-------------------------------
 mk/termcap.builtin.mk    |  39 +++++++++++++++++++++++++++++++++++++--
 2 files changed, 40 insertions(+), 33 deletions(-)

diffs (120 lines):

diff -r 34d2a855f59c -r d7d31dc15531 mk/termcap.buildlink3.mk
--- a/mk/termcap.buildlink3.mk  Wed Mar 05 04:00:01 2008 +0000
+++ b/mk/termcap.buildlink3.mk  Wed Mar 05 07:10:26 2008 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: termcap.buildlink3.mk,v 1.3 2008/03/05 03:58:20 jlam Exp $
+# $NetBSD: termcap.buildlink3.mk,v 1.4 2008/03/05 07:10:26 jlam Exp $
 #
 # This Makefile fragment is meant to be included by packages that require
 # a termcap implementation that supports the basic termcap functions:
@@ -8,7 +8,8 @@
 # === Variables set by this file ===
 #
 # TERMCAP_TYPE
-#      The name of the selected termcap implementation.
+#      The name of the selected termcap implementation.  This is actually
+#      indirectly set by termcap.builtin.mk but is exported by this file.
 
 TERMCAP_BUILDLINK3_MK:=        ${TERMCAP_BUILDLINK3_MK}+
 
@@ -16,39 +17,10 @@
 
 .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
-.  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.
-#
-.for _tcap_ in ${_TERMCAP_TYPES:Ntermcap}
-.  if empty(TERMCAP_TYPE:M${_tcap_})
-BUILDLINK_TRANSFORM+=          rm:-l${_tcap_}
-.  endif
-.endfor
-.if empty(TERMCAP_TYPE:Mcurses)
-BUILDLINK_TRANSFORM+=          rm:-lncurses
-.endif
-BUILDLINK_TRANSFORM+=          l:termcap:${BUILDLINK_LIBNAME.termcap}
-
 .endif # TERMCAP_BUILDLINK3_MK
 
 .if ${TERMCAP_TYPE} == "none"
diff -r 34d2a855f59c -r d7d31dc15531 mk/termcap.builtin.mk
--- a/mk/termcap.builtin.mk     Wed Mar 05 04:00:01 2008 +0000
+++ b/mk/termcap.builtin.mk     Wed Mar 05 07:10:26 2008 +0000
@@ -1,8 +1,13 @@
-# $NetBSD: termcap.builtin.mk,v 1.2 2008/03/02 07:05:28 jlam Exp $
+# $NetBSD: termcap.builtin.mk,v 1.3 2008/03/05 07:10:26 jlam Exp $
 
 BUILTIN_PKG:=  termcap
 
-BUILTIN_FIND_LIBS:=    curses termcap termlib tinfo
+# _TERMCAP_TYPES is an exhaustive list of all of the termcap implementations
+#      that may be found.
+#
+_TERMCAP_TYPES?=       curses termcap termlib tinfo
+
+BUILTIN_FIND_LIBS:=    ${_TERMCAP_TYPES}
 
 .include "buildlink3/bsd.builtin.mk"
 
@@ -53,6 +58,17 @@
 BUILTIN_LIBNAME.termcap=       termlib
 .endif
 
+.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
+
 ###
 ### The section below only applies if we are not including this file
 ### solely to determine whether a built-in implementation exists.
@@ -64,4 +80,23 @@
 BUILDLINK_LIBNAME.termcap=     ${BUILTIN_LIBNAME.termcap}
 .  endif
 
+# 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 here for packages that can be provided by
+# pkgsrc, e.g. curses.  In case we need both that package as well as
+# termcap, we must not remove the -l options for that package's libraries.
+#
+.  for _tcap_ in ${_TERMCAP_TYPES:Ntermcap:Ncurses}
+.    if empty(TERMCAP_TYPE:M${_tcap_})
+BUILDLINK_TRANSFORM+=          rm:-l${_tcap_}
+.    endif
+.  endfor
+.  if empty(TERMCAP_TYPE:Mcurses) && \
+      empty(BUILDLINK_PACKAGES:Mcurses) && empty(BUILDLINK_PACKAGES:Mncurses)
+BUILDLINK_TRANSFORM+=          rm:-lcurses
+BUILDLINK_TRANSFORM+=          rm:-lncurses
+.  endif
+BUILDLINK_TRANSFORM+=          l:termcap:${BUILDLINK_LIBNAME.termcap}
+
 .endif # CHECK_BUILTIN.termcap



Home | Main Index | Thread Index | Old Index