summaryrefslogtreecommitdiff
path: root/mk/curses.buildlink2.mk
blob: cdf191e5a73910ce24eb025ef4d2161ab1f2f9cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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