freebsd-ports/Mk/Uses/ncurses.mk
Baptiste Daroussin 3556bb2226 USES=ncurses: expose variable with the name of the lib to link against
ncurses from ports and futur ncurses in base differs from current
ncurses in base by the fact it is not providing a giant libncurses.so
but 2 libraries: libtinfo and libncurses, those information often needs
to be reported to the consumer port.

while here remove a now useless test for support of widechar ncurses in
base, all supported version of freebsd have it now.
2021-09-23 18:22:53 +02:00

93 lines
2.6 KiB
Makefile

# handle dependency on the ncurses port
#
# Feature: ncurses
# Usage: USES=ncurses
# Valid ARGS: base port
#
# use/port can now set this options to the makefiles
# NCURSES_RPATH= yes - pass RFLAGS options to CFLAGS
#
# Overridable defaults:
# NCURSES_PORT= devel/ncurses
#
# The makefile sets the following variables:
# NCURSESBASE - "/usr" or ${LOCALBASE}
# NCURSESLIB - path to the libs
# NCURSESINC - path to the matching includes
# NCURSESRPATH - rpath for dynamic linker
#
# BUILD_DEPENDS - are added if needed
# RUN_DEPENDS - are added if needed
#
# MAINTAINER: portmgr@FreeBSD.org
.if !defined(_INCLUDE_USES_NCURSES_MK)
_INCLUDE_USES_NCURSES_MK= yes
.if empty(ncurses_ARGS)
. if !exists(${DESTDIR}/${LOCALBASE}/lib/libncurses.so) && exists(${DESTDIR}/usr/lib/libncursesw.so)
ncurses_ARGS= base
. else
ncurses_ARGS= port
. endif
.endif
.if ${ncurses_ARGS} == base
NCURSESBASE= /usr
NCURSESINC= ${NCURSESBASE}/include
. if exists(${LOCALBASE}/lib/libncurses.so)
_USES_sanity+= 400:check-depends-ncurses
check-depends-ncurses:
@${ECHO_CMD} "Dependency error: this port wants the ncurses library from the FreeBSD"
@${ECHO_CMD} "base system. You can't build against it, while a newer"
@${ECHO_CMD} "version is installed by a port."
@${ECHO_CMD} "Please deinstall the port or undefine WITH_NCURSES_BASE."
@${FALSE}
. endif
.elif ${ncurses_ARGS} == port
NCURSESBASE= ${LOCALBASE}
NCURSESINC= ${LOCALBASE}/include/ncurses
. if !defined(NCURSES_PORT) && exists(${DESTDIR}/${LOCALBASE}/lib/libncurses.so)
PKG_DBDIR?= ${DESTDIR}/var/db/pkg
. if defined(DESTDIR)
PKGARGS= -c ${DESTDIR}
. endif
PKGARGS?=
NCURSES_INSTALLED!= ${PKG_BIN} ${PKGARGS} which -qo ${LOCALBASE}/lib/libncurses.so || :
. endif
NCURSES_INSTALLED?=
.if ${NCURSES_INSTALLED} != ""
NCURSES_PORT= ${NCURSES_INSTALLED}
NCURSES_SHLIBFILE!= ${PKG_INFO} -ql ${NCURSES_INSTALLED} | grep -m 1 "^`${PKG_QUERY} "%p" ${NCURSES_INSTALLED}`/lib/libncurses.so."
NCURSES_SHLIBVER?= ${NCURSES_SHLIBFILE:E}
.endif
NCURSES_PORT?= devel/ncurses
NCURSES_SHLIBVER?= 6
BUILD_DEPENDS+= ${LOCALBASE}/lib/libncurses.so.${NCURSES_SHLIBVER}:${NCURSES_PORT}
RUN_DEPENDS+= ${LOCALBASE}/lib/libncurses.so.${NCURSES_SHLIBVER}:${NCURSES_PORT}
NCURSESRPATH= ${NCURSESBASE}/lib
TINFO_LIB= -ltinfo
NCURSES_LIB= -lncurses
.if defined(NCURSES_RPATH)
CFLAGS+= -Wl,-rpath,${NCURSESRPATH}
.endif
LDFLAGS+= -Wl,-rpath=${NCURSESRPATH}
.else
.error USES=ncurses only accept 'port' and 'base' as arguments, got ${ncurses_ARGS}
.endif
NCURSESLIB= ${NCURSESBASE}/lib
NCURSES_IMPL?= ncursesw
TINFO_LIB?= -ltinfow
NCURSES_LIB?= -lncursesw
NCURSESLIBS= ${NCURSES_LIB} ${TINFO_LIB}
.endif