summaryrefslogtreecommitdiff
path: root/mk/curses.buildlink2.mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk/curses.buildlink2.mk')
-rw-r--r--mk/curses.buildlink2.mk118
1 files changed, 118 insertions, 0 deletions
diff --git a/mk/curses.buildlink2.mk b/mk/curses.buildlink2.mk
new file mode 100644
index 00000000000..cdf191e5a73
--- /dev/null
+++ b/mk/curses.buildlink2.mk
@@ -0,0 +1,118 @@
+# $NetBSD: curses.buildlink2.mk,v 1.1 2003/09/27 17:07:34 grant Exp $
+#
+# Optionally define:
+#
+# USE_NCURSES force use of ncurses
+# INCOMPAT_CURSES specify MACHINE_PLATFORM versions that are missing
+# some needed functions.
+
+.if !defined(CURSES_BUILDLINK2_MK)
+CURSES_BUILDLINK2_MK= # defined
+
+.include "../../mk/bsd.prefs.mk"
+
+BUILDLINK_DEPENDS.ncurses?= ncurses>=5.3nb1
+BUILDLINK_PKGSRCDIR.ncurses?= ../../devel/ncurses
+
+.if defined(USE_NCURSES)
+_NEED_NCURSES= YES
+.else
+_NEED_NCURSES= NO
+
+#
+# Handle the base system not having (n)curses.
+#
+. if !(exists(/usr/include/curses.h) || exists(/usr/include/ncurses.h))
+_NEED_NCURSES= YES
+. endif
+#
+# These versions of NetBSD didn't have a curses library that was capable of
+# replacing ncurses.
+#
+_INCOMPAT_CURSES= NetBSD-0.*-* NetBSD-1.[0123]*-*
+_INCOMPAT_CURSES+= NetBSD-1.4.*-* NetBSD-1.4[A-X]-*
+#
+# This catch-all for SunOS is probably too broad, but better to err on
+# the safe side. We can narrow down the match when we have better
+# information.
+#
+_INCOMPAT_CURSES+= SunOS-*-*
+#
+# Similarly for IRIX and Darwin
+#
+_INCOMPAT_CURSES+= IRIX-*-*
+_INCOMPAT_CURSES+= Darwin-*-*
+INCOMPAT_CURSES?= # empty
+. for _pattern_ in ${_INCOMPAT_CURSES} ${INCOMPAT_CURSES}
+. if !empty(MACHINE_PLATFORM:M${_pattern_})
+_NEED_NCURSES= YES
+. endif
+. endfor
+.endif
+
+.if ${_NEED_NCURSES} == "YES"
+BUILDLINK_PACKAGES+= ncurses
+EVAL_PREFIX+= BUILDLINK_PREFIX.ncurses=ncurses
+BUILDLINK_PREFIX.ncurses_DEFAULT= ${LOCALBASE}
+.else
+BUILDLINK_PREFIX.ncurses= /usr
+.endif
+
+BUILDLINK_FILES.ncurses+= include/curses.h
+BUILDLINK_FILES.ncurses+= include/cursesapp.h
+BUILDLINK_FILES.ncurses+= include/cursesf.h
+BUILDLINK_FILES.ncurses+= include/cursesm.h
+BUILDLINK_FILES.ncurses+= include/cursesp.h
+BUILDLINK_FILES.ncurses+= include/cursesw.h
+BUILDLINK_FILES.ncurses+= include/cursslk.h
+BUILDLINK_FILES.ncurses+= include/eti.h
+BUILDLINK_FILES.ncurses+= include/etip.h
+BUILDLINK_FILES.ncurses+= include/form.h
+BUILDLINK_FILES.ncurses+= include/menu.h
+BUILDLINK_FILES.ncurses+= include/ncurses.h
+BUILDLINK_FILES.ncurses+= include/ncurses_dll.h
+BUILDLINK_FILES.ncurses+= include/panel.h
+BUILDLINK_FILES.ncurses+= include/term.h
+BUILDLINK_FILES.ncurses+= include/termcap.h
+BUILDLINK_FILES.ncurses+= include/unctrl.h
+BUILDLINK_FILES.ncurses+= lib/libform.*
+BUILDLINK_FILES.ncurses+= lib/libmenu.*
+BUILDLINK_FILES.ncurses+= lib/libncurses++.*
+BUILDLINK_FILES.ncurses+= lib/libncurses.*
+BUILDLINK_FILES.ncurses+= lib/libpanel.*
+
+.if ${_NEED_NCURSES} == "NO"
+_BLNK_LIBNCURSES_LIST!= ${ECHO} /usr/lib/libncurses.*
+. if ${_BLNK_LIBNCURSES_LIST} == "/usr/lib/libncurses.*"
+BUILDLINK_FILES.ncurses+= lib/libcurses.*
+BUILDLINK_TRANSFORM.ncurses+= -e "s|/curses.h|/ncurses.h|g"
+BUILDLINK_TRANSFORM+= l:ncurses:curses
+. endif
+.endif
+
+BUILDLINK_TARGETS+= ncurses-buildlink
+BUILDLINK_TARGETS+= ncurses-curses-h
+BUILDLINK_TARGETS+= ncurses-extra-includes-buildlink
+
+ncurses-buildlink: _BUILDLINK_USE
+
+ncurses-extra-includes-buildlink:
+ ${_PKG_SILENT}${_PKG_DEBUG} \
+ extra_includes=" \
+ include/term.h \
+ "; \
+ for f in $${extra_includes}; do \
+ if [ ! -f ${BUILDLINK_DIR}/$${f} ]; then \
+ ${ECHO_BUILDLINK_MSG} "Touching extra ncurses header ($${f}) in ${BUILDLINK_DIR}."; \
+ ${TOUCH} ${TOUCH_FLAGS} ${BUILDLINK_DIR}/$${f}; \
+ fi; \
+ done
+
+ncurses-curses-h:
+ ${_PKG_SILENT}${_PKG_DEBUG} \
+ if [ ! -f ${BUILDLINK_DIR}/include/curses.h ]; then \
+ ${ECHO_BUILDLINK_MSG} "Linking curses.h to ncurses.h in ${BUILDLINK_DIR}."; \
+ ${LN} -s ${BUILDLINK_PREFIX.ncurses}/include/ncurses.h ${BUILDLINK_DIR}/include/curses.h; \
+ fi
+
+.endif # CURSES_BUILDLINK2_MK