pkgsrc/mk/curses.buildlink3.mk
minskim 79e332ed88 Do not force ncurses on Interix; it does not have a proper shared library.
Instead, let curses.buildlink3.mk find out a usable one.

This fixes the error reported in PR 39531.  However, the PR will remain
open for now because it raises another issue whether tnftp should depend
on curses or not.
2008-09-16 04:38:49 +00:00

96 lines
3 KiB
Makefile

# $NetBSD: curses.buildlink3.mk,v 1.13 2008/09/16 04:38:49 minskim Exp $
#
# This Makefile fragment is meant to be included by packages that require
# any curses implementation instead of one particular one. The available
# curses implementations are "curses" if built-in, "ncurses", and
# "pdcurses".
#
# If a package genuinely requires ncurses or pdcurses, then it should
# directly include the appropriate buildlink3.mk instead of this file in
# the package Makefile.
#
# === User-settable variables ===
#
# CURSES_DEFAULT
# This value represents the type of curses we wish to use on the
# system. Setting this to "curses" means that the system curses
# implementation is fine.
#
# Possible: curses, ncurses, pdcurses
# Default: (depends)
#
# === Variables set by this file ===
#
# CURSES_TYPE
# The name of the selected curses implementation.
CURSES_BUILDLINK3_MK:= ${CURSES_BUILDLINK3_MK}+
.include "bsd.fast.prefs.mk"
.if !empty(CURSES_BUILDLINK3_MK:M+)
# _CURSES_PKGS is an exhaustive list of all of the curses implementations
# that may be used with curses.buildlink3.mk.
#
_CURSES_PKGS?= curses ncurses pdcurses
CHECK_BUILTIN.curses:= yes
. include "curses.builtin.mk"
CHECK_BUILTIN.curses:= no
# Set the value of CURSES_DEFAULT depending on the platform and what's
# available in the base system.
#
.if defined(USE_BUILTIN.curses) && !empty(USE_BUILTIN.curses:M[yY][eE][sS])
CURSES_DEFAULT?= curses
.else
CURSES_DEFAULT?= ncurses
.endif
_CURSES_ACCEPTED= # empty
.if defined(USE_BUILTIN.curses) && !empty(USE_BUILTIN.curses:M[yY][eE][sS])
_CURSES_ACCEPTED+= curses # system curses exists
.endif
_CURSES_ACCEPTED+= ncurses # pkgsrc ncurses
_CURSES_ACCEPTED+= pdcurses # pkgsrc pdcurses
_CURSES_TYPE= ${CURSES_DEFAULT}
. if !empty(_CURSES_ACCEPTED:M${_CURSES_TYPE})
CURSES_TYPE= ${_CURSES_TYPE}
. else
CURSES_TYPE= none
. endif
BUILD_DEFS+= CURSES_DEFAULT
BUILD_DEFS_EFFECTS+= CURSES_TYPE
# _PKG_USE_CURSES is a flag for use by the curses packages' buildlink3.mk
# files to indicate that the headers and libraries should be usable as
# <curses.h> and -lcurses.
#
_PKG_USE_CURSES= yes
.endif # CURSES_BUILDLINK3_MK
.if ${CURSES_TYPE} == "none"
PKG_FAIL_REASON= \
"${_CURSES_TYPE} is not an acceptable curses type for ${PKGNAME}."
.elif ${CURSES_TYPE} == "curses"
BUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Ncurses}
BUILDLINK_PACKAGES+= curses
BUILDLINK_ORDER:= ${BUILDLINK_ORDER} ${BUILDLINK_DEPTH}curses
BUILDLINK_LDADD.curses?= ${BUILDLINK_LIBNAME.curses:S/^/-l/:S/^-l$//}
BUILDLINK_BUILTIN_MK.curses= ../../mk/curses.builtin.mk
.elif ${CURSES_TYPE} == "ncurses"
USE_NCURSES= yes
. include "../../devel/ncurses/buildlink3.mk"
BUILDLINK_PREFIX.curses?= ${BUILDLINK_PREFIX.ncurses}
BUILDLINK_LIBNAME.curses?= ${BUILDLINK_LIBNAME.ncurses}
BUILDLINK_LDADD.curses?= ${BUILDLINK_LDADD.ncurses}
.elif ${CURSES_TYPE} == "pdcurses"
. include "../../devel/pdcurses/buildlink3.mk"
BUILDLINK_PREFIX.curses?= ${BUILDLINK_PREFIX.pdcurses}
BUILDLINK_LIBNAME.curses?= ${BUILDLINK_LIBNAME.pdcurses}
BUILDLINK_LDADD.curses?= ${BUILDLINK_LDADD.pdcurses}
.endif