pkgsrc/devel/ncurses/Makefile

60 lines
1.6 KiB
Makefile
Raw Normal View History

# $NetBSD: Makefile,v 1.40 2002/09/01 18:36:35 tron Exp $
1997-10-27 05:28:54 +01:00
DISTNAME= ncurses-${NC_VERS}
NC_VERS= 5.2
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GNU:=ncurses/} \
ftp://dickey.his.com/ncurses/ \
ftp://dickey.his.com/ncurses/${NC_VERS}/
MAINTAINER= jlam@netbsd.org
HOMEPAGE= http://dickey.his.com/ncurses/ncurses.html
COMMENT= CRT screen handling and optimization package
USE_LIBTOOL= YES
USE_BUILDLINK2= YES
GNU_CONFIGURE= YES
CONFIGURE_ARGS+= --with-libtool
CONFIGURE_ARGS+= --enable-bsdpad
CONFIGURE_ARGS+= --with-cxx-binding
CONFIGURE_ARGS+= --without-ada
CONFIGURE_ARGS+= --without-curses-h
CONFIGURE_ARGS+= --without-gpm
CONFIGURE_ARGS+= --with-manpage-format=normal
CONFIGURE_ARGS+= --with-manpage-tbl
.include "../../mk/bsd.prefs.mk"
.if (${OPSYS} == SunOS)
PLIST_SUBST+= NOT_SUNOS="@comment " TERMINFODIR=share/lib/terminfo
TERMINFO_SRC= ${WRKSRC}/misc/terminfo.src
.else
PLIST_SUBST+= NOT_SUNOS= TERMINFODIR=share/terminfo
.endif
# Remove these manpages from the distribution so they won't get installed
CURSES_NO_MAN= clear.1 tput.1 tset.1
Update ncurses to 5.0. From the release notes: We decided to release ncurses as a new whole number release (5.0) because it incorporates several interface changes, including some that would invalidate existing shared libraries. These are the highlights from the change-log since ncurses 4.2 release. Interface changes: * The principal source of changes to the interface comes from the release of X/Open Curses in 1997. Earlier versions of ncurses (4.0 and before) were based on a draft version of the specification. The release version adds parameters to some functions to support the evolving internationalization of curses. These summarize the impact: + modified several prototypes to correspond with 1997 version of X/Open Curses (affects ABI since developers have used attr_get). + corrected prototypes for slk_* functions, using chtype rather than attr_t. + the slk_attr_{set,off,on} functions need an additional void* parameter according to XSI. + correct macros for wattr_set, wattr_get, separate wattrset macro from these to preserve behavior that allows attributes to be combined with color pair numbers. + reviewed/updated curses.h, term.h against X/Open Curses Issue 4 Version 2. This includes making some parameters NCURSES_CONST rather than const, e.g., in termcap.h. + reviewed/corrected macros in curses.h as per XSI document. + add set_a_attributes and set_pglen_inch to terminfo structure, as per XSI and Solaris 2.5. * The newest version of the X/Open Curses is implemented on Solaris and other vendor's systems. It adds new features to the terminfo descriptions: + implement tparm %l format. + implement tparm printf-style width and precision for %s, %d, %x, %o as per XSI. * We made additional changes to reduce impact by future interface changes: + rename key_names[] array to _nc_key_names since it is not part of the curses interface. + move macro winch to a function, to hide details of struct ldat * modify configure script to embed ABI in shared libraries for HP-UX 10.x (detailed request by Tim Mooney). * modify configuration of shared libraries on Digital Unix so that versioning is embedded in the library, rather than implied by links (patch by Tim Mooney). New features: * enable sigwinch handler by default. * turn on hashmap scrolling code by default * improved support for termcap applications + modify tput to accept termcap names as an alternative to terminfo names. + provide support for termcap PC variable by copying it from terminfo data and using it as the padding character in tputs. + provide support for termcap ospeed variable by copying it from the internal cur_term member, and using ospeed as the baudrate reference for the delay_output and tputs functions. + change name-comparisons in lib_termcap to compare no more than 2 characters. + add configure option --enable-tcap-names, which essentially allows users to define new capabilities as in termcap. * add mouse support to ncurses menus. * add mouse and dll support for OS/2 EMX * modify terminfo parsing to accept octal and hexadecimal constants * add configure option --enable-no-padding, to allow environment variable $NCURSES_NO_PADDING to eliminate non-mandatory padding, thereby making terminal emulators (e.g., for vt100) a little more efficient. * modify lib_color.c to eliminate dependency on orig_colors and orig_pair, since SVr4 curses does not require these either, but uses them when they are available. * add -f option to infocmp and tic, which formats the terminfo if/then/else/endif so that they are readable (with newlines and tabs). * modify tic to compile into %'char' form in preference to %{number}, since that is a little more efficient. Major bug fixes: * modify lib_tstp.c to block SIGTTOU when handling SIGTSTP, fixes a problem where ncurses applications which were run via a shell script would hang when given a ^Z. Also, check if the terminal's process group is consistent, i.e., a shell has not taken ownership of it, before deciding to save the current terminal settings in the SIGTSTP handler. * suppress sc/rc capabilities from terminal description if they appear in smcup/rmcup. This affects only scrolling optimization, to fix a problem reported by several people with xterm's alternate screen, though the problem is more general. * modify relative_move and tputs to avoid an interaction with the BSD-style padding. The relative_move function could produce a string to replace on the screen which began with a numeric character, which was then interpreted by tputs as padding. * modify setupterm so that cancelled strings are treated the same as absent strings, cancelled and absent booleans false (does not affect tic, infocmp). * modify lib_vidattr.c to allow for terminal types (e.g., xterm-color) which may reset all attributes in the 'op' capability, so that colors are set before turning on bold and other attributes, but still after turning attributes off. * use 'access()' to check if ncurses library should be permitted to open or modify files with fopen/open/link/unlink/remove calls, in case the calling application is running in setuid mode. * correction to doupdate, for case where terminal does not support insert/delete character. The logic did not check that there was a difference in alignment of changes to old/new screens before repainting the whole non-blank portion of the line. Modified to fall through into logic that reduces by the portion which does not differ.
2000-01-15 19:39:28 +01:00
post-configure:
cd ${WRKSRC}/man; \
${RM} -f ${CURSES_NO_MAN}; \
for file in *.1m; do \
${MV} -f $${file} `basename $${file} .1m`.1; \
done; \
for file in *.3x; do \
${MV} -f $${file} `basename $${file} .3x`.3; \
Update ncurses to 5.0. From the release notes: We decided to release ncurses as a new whole number release (5.0) because it incorporates several interface changes, including some that would invalidate existing shared libraries. These are the highlights from the change-log since ncurses 4.2 release. Interface changes: * The principal source of changes to the interface comes from the release of X/Open Curses in 1997. Earlier versions of ncurses (4.0 and before) were based on a draft version of the specification. The release version adds parameters to some functions to support the evolving internationalization of curses. These summarize the impact: + modified several prototypes to correspond with 1997 version of X/Open Curses (affects ABI since developers have used attr_get). + corrected prototypes for slk_* functions, using chtype rather than attr_t. + the slk_attr_{set,off,on} functions need an additional void* parameter according to XSI. + correct macros for wattr_set, wattr_get, separate wattrset macro from these to preserve behavior that allows attributes to be combined with color pair numbers. + reviewed/updated curses.h, term.h against X/Open Curses Issue 4 Version 2. This includes making some parameters NCURSES_CONST rather than const, e.g., in termcap.h. + reviewed/corrected macros in curses.h as per XSI document. + add set_a_attributes and set_pglen_inch to terminfo structure, as per XSI and Solaris 2.5. * The newest version of the X/Open Curses is implemented on Solaris and other vendor's systems. It adds new features to the terminfo descriptions: + implement tparm %l format. + implement tparm printf-style width and precision for %s, %d, %x, %o as per XSI. * We made additional changes to reduce impact by future interface changes: + rename key_names[] array to _nc_key_names since it is not part of the curses interface. + move macro winch to a function, to hide details of struct ldat * modify configure script to embed ABI in shared libraries for HP-UX 10.x (detailed request by Tim Mooney). * modify configuration of shared libraries on Digital Unix so that versioning is embedded in the library, rather than implied by links (patch by Tim Mooney). New features: * enable sigwinch handler by default. * turn on hashmap scrolling code by default * improved support for termcap applications + modify tput to accept termcap names as an alternative to terminfo names. + provide support for termcap PC variable by copying it from terminfo data and using it as the padding character in tputs. + provide support for termcap ospeed variable by copying it from the internal cur_term member, and using ospeed as the baudrate reference for the delay_output and tputs functions. + change name-comparisons in lib_termcap to compare no more than 2 characters. + add configure option --enable-tcap-names, which essentially allows users to define new capabilities as in termcap. * add mouse support to ncurses menus. * add mouse and dll support for OS/2 EMX * modify terminfo parsing to accept octal and hexadecimal constants * add configure option --enable-no-padding, to allow environment variable $NCURSES_NO_PADDING to eliminate non-mandatory padding, thereby making terminal emulators (e.g., for vt100) a little more efficient. * modify lib_color.c to eliminate dependency on orig_colors and orig_pair, since SVr4 curses does not require these either, but uses them when they are available. * add -f option to infocmp and tic, which formats the terminfo if/then/else/endif so that they are readable (with newlines and tabs). * modify tic to compile into %'char' form in preference to %{number}, since that is a little more efficient. Major bug fixes: * modify lib_tstp.c to block SIGTTOU when handling SIGTSTP, fixes a problem where ncurses applications which were run via a shell script would hang when given a ^Z. Also, check if the terminal's process group is consistent, i.e., a shell has not taken ownership of it, before deciding to save the current terminal settings in the SIGTSTP handler. * suppress sc/rc capabilities from terminal description if they appear in smcup/rmcup. This affects only scrolling optimization, to fix a problem reported by several people with xterm's alternate screen, though the problem is more general. * modify relative_move and tputs to avoid an interaction with the BSD-style padding. The relative_move function could produce a string to replace on the screen which began with a numeric character, which was then interpreted by tputs as padding. * modify setupterm so that cancelled strings are treated the same as absent strings, cancelled and absent booleans false (does not affect tic, infocmp). * modify lib_vidattr.c to allow for terminal types (e.g., xterm-color) which may reset all attributes in the 'op' capability, so that colors are set before turning on bold and other attributes, but still after turning attributes off. * use 'access()' to check if ncurses library should be permitted to open or modify files with fopen/open/link/unlink/remove calls, in case the calling application is running in setuid mode. * correction to doupdate, for case where terminal does not support insert/delete character. The logic did not check that there was a difference in alignment of changes to old/new screens before repainting the whole non-blank portion of the line. Modified to fall through into logic that reduces by the portion which does not differ.
2000-01-15 19:39:28 +01:00
done
.if (${OPSYS} == SunOS)
${MV} ${TERMINFO_SRC} ${TERMINFO_SRC}.old
${SED} -e "/^screen|/,/^$$/d" -e "/^screen-w|/,/^$$/d" \
<${TERMINFO_SRC}.old >${TERMINFO_SRC}
.endif
1997-10-27 05:28:54 +01:00
post-install:
${INSTALL_DATA} ${WRKSRC}/c++/demo.cc \
${PREFIX}/share/examples/ncurses++demo.cc
.include "../../mk/bsd.pkg.mk"