pkgsrc/devel/ncurses/builtin.mk
jlam 9a38f17ac4 Standardize how we search for libraries in builtin.mk files. We define
_BLNK_LIB_FOUND.<lib> to "yes" or "no" depending on whether -l<lib> is
found in the base system.
2004-11-26 23:16:35 +00:00

143 lines
4.2 KiB
Makefile

# $NetBSD: builtin.mk,v 1.5 2004/11/26 23:16:35 jlam Exp $
.for _lib_ in ncurses
. if !defined(_BLNK_LIB_FOUND.${_lib_})
_BLNK_LIB_FOUND.${_lib_}!= \
if ${TEST} "`${ECHO} /usr/lib/lib${_lib_}.*`" = "/usr/lib/lib${_lib_}.*"; then \
${ECHO} "no"; \
elif ${TEST} "`${ECHO} /lib/lib${_lib_}.*`" = "/lib/lib${_lib_}.*"; then \
${ECHO} "no"; \
else \
${ECHO} "yes"; \
fi
BUILDLINK_VARS+= _BLNK_LIB_FOUND.${_lib_}
. endif
.endfor
.undef _lib_
_NCURSES_H= /usr/include/curses.h
.if !defined(IS_BUILTIN.ncurses)
IS_BUILTIN.ncurses= no
. if !empty(_BLNK_LIB_FOUND.ncurses:M[yY][eE][sS])
IS_BUILTIN.ncurses= yes
. elif exists(${_NCURSES_H})
IS_BUILTIN.ncurses!= \
if ${GREP} -q "\#define[ ]*NCURSES_VERSION" ${_NCURSES_H}; then \
${ECHO} "yes"; \
else \
${ECHO} "no"; \
fi
. if !empty(IS_BUILTIN.ncurses:M[yY][eE][sS])
#
# Create an appropriate name for the built-in package distributed
# with the system. This package name can be used to check against
# BUILDLINK_DEPENDS.<pkg> to see if we need to install the pkgsrc
# version or if the built-in one is sufficient.
#
_NCURSES_VERSION!= \
${AWK} '/\#define[ ]*NCURSES_VERSION[ ]/ { \
vers = $$3; \
gsub("\"", "", vers); \
print vers; \
} \
' ${_NCURSES_H}
BUILTIN_PKG.ncurses= ncurses-${_NCURSES_VERSION}
BUILDLINK_VARS+= BUILTIN_PKG.ncurses
. endif
. endif
BUILDLINK_VARS+= IS_BUILTIN.ncurses
.endif # IS_BUILTIN.ncurses
.if !defined(USE_BUILTIN.ncurses)
USE_BUILTIN.ncurses?= ${IS_BUILTIN.ncurses}
PREFER.ncurses?= pkgsrc
. if defined(BUILTIN_PKG.ncurses)
USE_BUILTIN.ncurses= yes
. for _depend_ in ${BUILDLINK_DEPENDS.ncurses}
. if !empty(IS_BUILTIN.ncurses:M[yY][eE][sS])
USE_BUILTIN.ncurses!= \
if ${PKG_ADMIN} pmatch '${_depend_}' ${BUILTIN_PKG.ncurses}; then \
${ECHO} "yes"; \
else \
${ECHO} "no"; \
fi
. endif
. endfor
. endif
. if ${PREFER.ncurses} == "native"
# XXX
# XXX By default, assume that the native curses on NetBSD systems
# XXX supports ncurses.
# XXX
. if ${OPSYS} == "NetBSD"
USE_BUILTIN.ncurses= yes
#
# These versions of NetBSD didn't have a curses library that was
# capable of replacing ncurses.
#
# XXX In reality, no version of NetBSD has a curses library that can
# XXX completely replace ncurses; however, some versions implement
# XXX enough of ncurses that some packages are happy.
#
_INCOMPAT_CURSES= NetBSD-0.*-* NetBSD-1.[0123]*-*
_INCOMPAT_CURSES+= NetBSD-1.4.*-* NetBSD-1.4[A-X]-*
. for _pattern_ in ${_INCOMPAT_CURSES} ${INCOMPAT_CURSES}
. if !empty(MACHINE_PLATFORM:M${_pattern_})
USE_BUILTIN.ncurses= no
. endif
. endfor
. endif
. endif
. if defined(USE_NCURSES)
. if !empty(IS_BUILTIN.ncurses:M[nN][oO]) || \
(${PREFER.ncurses} == "pkgsrc")
USE_BUILTIN.ncurses= no
. endif
. endif
.endif # USE_BUILTIN.ncurses
CHECK_BUILTIN.ncurses?= no
.if !empty(CHECK_BUILTIN.ncurses:M[nN][oO])
.if !empty(USE_BUILTIN.ncurses:M[yY][eE][sS])
. include "../../mk/bsd.prefs.mk"
. if !empty(_BLNK_LIB_FOUND.ncurses:M[nN][oO]) || ${OPSYS} == "Interix"
BUILDLINK_TRANSFORM.ncurses+= -e "s|/curses\.h|/ncurses.h|g"
BUILDLINK_TRANSFORM+= l:ncurses:curses
. endif
BUILDLINK_FILES.ncurses+= include/curses.h
BUILDLINK_TARGETS+= buildlink-ncurses-extra-includes
.endif
BUILDLINK_TARGETS+= buildlink-ncurses-curses-h
.if !target(buildlink-ncurses-extra-includes)
.PHONY: buildlink-ncurses-extra-includes
buildlink-ncurses-extra-includes:
${_PKG_SILENT}${_PKG_DEBUG} \
extra_includes="include/term.h"; \
for f in $${extra_includes}; do \
if [ ! -f ${BUILDLINK_PREFIX.ncurses}/$$f ]; then \
${ECHO_BUILDLINK_MSG} "Touching extra ncurses header ($$f) in ${BUILDLINK_DIR}."; \
${TOUCH} ${TOUCH_FLAGS} ${BUILDLINK_DIR}/$$f; \
fi; \
done
.endif
.if !target(buildlink-ncurses-curses-h)
.PHONY: buildlink-ncurses-curses-h
buildlink-ncurses-curses-h:
${_PKG_SILENT}${_PKG_DEBUG} \
if [ ! -f ${BUILDLINK_DIR}/include/curses.h -a \
-f ${BUILDLINK_PREFIX.ncurses}/include/ncurses.h ]; then \
${ECHO_BUILDLINK_MSG} "Linking curses.h -> ncurses.h."; \
${LN} -s ${BUILDLINK_PREFIX.ncurses}/include/ncurses.h \
${BUILDLINK_DIR}/include/curses.h; \
fi
.endif
.endif # CHECK_BUILTIN.ncurses