pkgsrc/devel/ncurses/Makefile.common

91 lines
2.7 KiB
Text
Raw Normal View History

# $NetBSD: Makefile.common,v 1.36 2018/09/15 10:21:53 maya Exp $
Update to 5.7: New features and improvements: * library o new flavor of the ncurses library provides rudimentary support for POSIX threads. Several functions are reentrant, but most require either a window-level or screen-level mutex. (This is API-compatible, but not ABI-compatible with the normal library). o add NCURSES_OPAQUE symbol to curses.h, will use to make structs opaque in selected configurations. o add NCURSES_EXT_FUNCS and NCURSES_EXT_COLORS symbols to curses.h to make it simpler to tell if the extended functions and/or colors are declared. o add wresize to C++ binding o eliminate fixed-buffer vsprintf calls in C++ binding. o add several functions to C++ binding which wrap C functions that pass a WINDOW* parameter. o adapt mouse-handling code from menu library in form-library o improve tracing for form library, showing created forms, fields, etc. o make $NCURSES_NO_PADDING feature work for termcap interface . o add check to trace-file open, if the given name is a directory, add ".log" to the name and try again. o several new manpages: curs_legacy.3x, curs_memleaks.3x, curs_opaque.3x and curs_threads.3x * programs: o modified three test-programs to demonstrate the threading support in this version: ditto, rain, worm. o several new test-programs: demo_panels, dots_mvcur, inch_wide, inchs, key_name, key_names, savescreen, savescreen.sh test_arrays, test_get_wstr, test_getstr, test_instr, test_inwstr and test_opaque. o add adacurses-config to the Ada95 install. o modify tic -f option to format spaces as \s to prevent them from being lost when that is read back in unformatted strings. o The tack program is now distributed separately from ncurses. * terminal database o added entries: + Eterm-256color, Eterm-88color and rxvt-88color + aterm + konsole-256color + mrxvt + screen.mlterm + screen.rxvt + teraterm4.59 is now the primary primary teraterm entry, renamed original to teraterm2.3 + 9term terminal + Newbury Data entries o updated/improved entries: + gnome to version 2.22.3 + h19, z100 + konsole to version 1.6.6 + mlterm, mlterm+pcfkeys + xterm, and building-blocks for function-keys to xterm patch #230. Major bug fixes: * add logic to tic for cancelling strings in user-defined capabilities (this is needed for current konsole terminfo entry). * modify mk-1st.awk so the generated makefile rules for linking or installing shared libraries do not first remove the library, in case it is in use, e.g., libncurses.so by /bin/sh. * correct check for notimeout in wgetch. * fix a sign-extension bug in infocmp's repair_acsc function. * change winnstr to stop at the end of the line. * make Ada95 demo_panels example work. * fix for adding a non-spacing character at the beginning of a line. * fill in extended-color pair to make colors work for wide-characters using extended-colors. * improve refresh of window on top of multi-column characters, taking into account split characters on left/right window boundaries. * modify win_wchnstr to ensure that only a base cell is returned for each multi-column character. * improve waddch and winsch handling of EILSEQ from mbrtowc by using unctrl to display illegal bytes rather than trying to append further bytes to make up a valid sequence. * restore curs_set state after endwin/refresh * modify keyname to use "^X" form only if meta has been called, or if keyname is called without initializing curses, e.g., via initscr or newterm. * modify unctrl to check codes in 128-255 range versus isprint. If they are not printable, and locale was set, use a "M-" or "~" sequence. * improve resizeterm by moving ripped-off lines, and repainting the soft-keys. * modify form library to accept control characters such as newline in set_field_buffer, which is compatible with Solaris. * use NCURSES_MOUSE_MASK in definition of BUTTON_RELEASE, etc., to make those work properly with the --enable-ext-mouse configuration * correct some functions in Ada95 binding which were using return value from C where none was returned. * reviewed/fixed issues reported by Coverity and Klocwork tools. Portability: * configure script: o new options: --disable-big-strings control whether static string tables are generated as single large strings (to improve startup performance), or as array of individual strings. --disable-relink control whether shared libraries are relinked (during install) when rpath is enabled. --disable-tic-depends make explicit whether tic library depends on ncurses/ncursesw library. --enable-mixed-case override the configure script's check if the filesystem supports mixed-case filenames. This allows one to control how the terminal database maps to the filesystem. For filesystems that do not support mixed-case, the library uses generate 2-character (hexadecimal) codes for the lower-level of the filesystem terminfo database --enable-reentrant builds a different flavor of the ncurses library (ncursest) which improves reentrant use of the library by reducing global and static variables (see the "--with-pthread" option for the threaded support). --enable-weak-symbols use weak-symbols for linking to the POSIX thread library, and use the same soname for the ncurses shared library as the normal library (caveat: the ABI is for the threaded library, which makes global data accessed via functions). --with-pthread build with the POSIX thread library (tested with AIX, GNU/Linux, FreeBSD, OpenBSD, HPUX, IRIX64, Solaris, Tru64). --with-ticlib build/install the tic-support functions in a separate library o improved options: --enable-ext-colors requires the wide-character configuration. --with-chtype ignore option value "unsigned" is always added to the type in curses.h; do the same for --with-mmask-t. --with-dmalloc build-fix for redefinition of strndup. --with-hashed-db + accepts a parameter which is the install-prefix of a given Berkeley Database. + the $LIBS environment variable overrides the search for the db library. --without-hashed-db assumed when "--disable-database" is used. * other configure/build issues: o build-fixes for LynxOS o modify shared-library rules to allow FreeBSD 3.x to use rpath. o build-fix for FreeBSD "contemporary" TTY interface. o build-fixes for AIX with libtool. o build-fixes for Darwin and libtool. o modify BeOS-specific ifdef's to build on Haiku. o corrected gcc options for building shared libraries on Solaris and IRIX64. o change shared-library configuration for OpenBSD, make rpath work. o build-fixes for using libutf8, e.g., on OpenBSD 3.7 o add "-e" option in ncurses/Makefile.in when generating source-files to force earlier exit if the build environment fails unexpectedly. o add support for shared libraries for QNX. o change delimiter in MKlib_gen.sh from '%' to '@', to avoid substitution by IBM xlc to '#' as part of its extensions to digraphs. * library: o rewrite wrapper for wcrtomb, making it work on Solaris. This is used in the form library to determine the length of the buffer needed by field_buffer. o add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding type for data manipulated by signal handlers. o set locale in misc/ncurses-config.in since it uses a range o disable GPM mouse support when $TERM does not happen to contain "linux", since Gpm_Open no longer limits its assertion to terminals that it might handle, e.g., within "screen" in xterm. o reset mouse file-descriptor when unloading GPM library. * test programs: o update test programs to build/work with various UNIX curses for comparisons.
2008-11-05 17:12:38 +01:00
#
# used by devel/ncurses/Makefile
Update to 5.7: New features and improvements: * library o new flavor of the ncurses library provides rudimentary support for POSIX threads. Several functions are reentrant, but most require either a window-level or screen-level mutex. (This is API-compatible, but not ABI-compatible with the normal library). o add NCURSES_OPAQUE symbol to curses.h, will use to make structs opaque in selected configurations. o add NCURSES_EXT_FUNCS and NCURSES_EXT_COLORS symbols to curses.h to make it simpler to tell if the extended functions and/or colors are declared. o add wresize to C++ binding o eliminate fixed-buffer vsprintf calls in C++ binding. o add several functions to C++ binding which wrap C functions that pass a WINDOW* parameter. o adapt mouse-handling code from menu library in form-library o improve tracing for form library, showing created forms, fields, etc. o make $NCURSES_NO_PADDING feature work for termcap interface . o add check to trace-file open, if the given name is a directory, add ".log" to the name and try again. o several new manpages: curs_legacy.3x, curs_memleaks.3x, curs_opaque.3x and curs_threads.3x * programs: o modified three test-programs to demonstrate the threading support in this version: ditto, rain, worm. o several new test-programs: demo_panels, dots_mvcur, inch_wide, inchs, key_name, key_names, savescreen, savescreen.sh test_arrays, test_get_wstr, test_getstr, test_instr, test_inwstr and test_opaque. o add adacurses-config to the Ada95 install. o modify tic -f option to format spaces as \s to prevent them from being lost when that is read back in unformatted strings. o The tack program is now distributed separately from ncurses. * terminal database o added entries: + Eterm-256color, Eterm-88color and rxvt-88color + aterm + konsole-256color + mrxvt + screen.mlterm + screen.rxvt + teraterm4.59 is now the primary primary teraterm entry, renamed original to teraterm2.3 + 9term terminal + Newbury Data entries o updated/improved entries: + gnome to version 2.22.3 + h19, z100 + konsole to version 1.6.6 + mlterm, mlterm+pcfkeys + xterm, and building-blocks for function-keys to xterm patch #230. Major bug fixes: * add logic to tic for cancelling strings in user-defined capabilities (this is needed for current konsole terminfo entry). * modify mk-1st.awk so the generated makefile rules for linking or installing shared libraries do not first remove the library, in case it is in use, e.g., libncurses.so by /bin/sh. * correct check for notimeout in wgetch. * fix a sign-extension bug in infocmp's repair_acsc function. * change winnstr to stop at the end of the line. * make Ada95 demo_panels example work. * fix for adding a non-spacing character at the beginning of a line. * fill in extended-color pair to make colors work for wide-characters using extended-colors. * improve refresh of window on top of multi-column characters, taking into account split characters on left/right window boundaries. * modify win_wchnstr to ensure that only a base cell is returned for each multi-column character. * improve waddch and winsch handling of EILSEQ from mbrtowc by using unctrl to display illegal bytes rather than trying to append further bytes to make up a valid sequence. * restore curs_set state after endwin/refresh * modify keyname to use "^X" form only if meta has been called, or if keyname is called without initializing curses, e.g., via initscr or newterm. * modify unctrl to check codes in 128-255 range versus isprint. If they are not printable, and locale was set, use a "M-" or "~" sequence. * improve resizeterm by moving ripped-off lines, and repainting the soft-keys. * modify form library to accept control characters such as newline in set_field_buffer, which is compatible with Solaris. * use NCURSES_MOUSE_MASK in definition of BUTTON_RELEASE, etc., to make those work properly with the --enable-ext-mouse configuration * correct some functions in Ada95 binding which were using return value from C where none was returned. * reviewed/fixed issues reported by Coverity and Klocwork tools. Portability: * configure script: o new options: --disable-big-strings control whether static string tables are generated as single large strings (to improve startup performance), or as array of individual strings. --disable-relink control whether shared libraries are relinked (during install) when rpath is enabled. --disable-tic-depends make explicit whether tic library depends on ncurses/ncursesw library. --enable-mixed-case override the configure script's check if the filesystem supports mixed-case filenames. This allows one to control how the terminal database maps to the filesystem. For filesystems that do not support mixed-case, the library uses generate 2-character (hexadecimal) codes for the lower-level of the filesystem terminfo database --enable-reentrant builds a different flavor of the ncurses library (ncursest) which improves reentrant use of the library by reducing global and static variables (see the "--with-pthread" option for the threaded support). --enable-weak-symbols use weak-symbols for linking to the POSIX thread library, and use the same soname for the ncurses shared library as the normal library (caveat: the ABI is for the threaded library, which makes global data accessed via functions). --with-pthread build with the POSIX thread library (tested with AIX, GNU/Linux, FreeBSD, OpenBSD, HPUX, IRIX64, Solaris, Tru64). --with-ticlib build/install the tic-support functions in a separate library o improved options: --enable-ext-colors requires the wide-character configuration. --with-chtype ignore option value "unsigned" is always added to the type in curses.h; do the same for --with-mmask-t. --with-dmalloc build-fix for redefinition of strndup. --with-hashed-db + accepts a parameter which is the install-prefix of a given Berkeley Database. + the $LIBS environment variable overrides the search for the db library. --without-hashed-db assumed when "--disable-database" is used. * other configure/build issues: o build-fixes for LynxOS o modify shared-library rules to allow FreeBSD 3.x to use rpath. o build-fix for FreeBSD "contemporary" TTY interface. o build-fixes for AIX with libtool. o build-fixes for Darwin and libtool. o modify BeOS-specific ifdef's to build on Haiku. o corrected gcc options for building shared libraries on Solaris and IRIX64. o change shared-library configuration for OpenBSD, make rpath work. o build-fixes for using libutf8, e.g., on OpenBSD 3.7 o add "-e" option in ncurses/Makefile.in when generating source-files to force earlier exit if the build environment fails unexpectedly. o add support for shared libraries for QNX. o change delimiter in MKlib_gen.sh from '%' to '@', to avoid substitution by IBM xlc to '#' as part of its extensions to digraphs. * library: o rewrite wrapper for wcrtomb, making it work on Solaris. This is used in the form library to determine the length of the buffer needed by field_buffer. o add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding type for data manipulated by signal handlers. o set locale in misc/ncurses-config.in since it uses a range o disable GPM mouse support when $TERM does not happen to contain "linux", since Gpm_Open no longer limits its assertion to terminals that it might handle, e.g., within "screen" in xterm. o reset mouse file-descriptor when unloading GPM library. * test programs: o update test programs to build/work with various UNIX curses for comparisons.
2008-11-05 17:12:38 +01:00
# used by devel/ncursesw/Makefile
DISTNAME= ncurses-${NC_VERS}
NC_VERS= 6.1
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GNU:=ncurses/}
MASTER_SITES+= ftp://dickey.his.com/ncurses/
MASTER_SITES+= ftp://dickey.his.com/ncurses/${NC_VERS}/
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://invisible-island.net/ncurses/ncurses.html
LICENSE= mit
USE_LANGUAGES= c c++
USE_LIBTOOL= yes
USE_TOOLS+= gmake tbl
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --with-libtool
CONFIGURE_ARGS+= --enable-bsdpad
CONFIGURE_ARGS+= --enable-overwrite
CONFIGURE_ARGS+= --with-cxx-binding
CONFIGURE_ARGS+= --enable-pc-files
CONFIGURE_ARGS+= --without-ada
CONFIGURE_ARGS+= --without-gpm
CONFIGURE_ARGS+= --with-manpage-format=normal
CONFIGURE_ARGS+= --with-manpage-tbl
CONFIGURE_ARGS+= --with-default-terminfo-dir=${PREFIX}/${TERMINFODIR}
CONFIGURE_ARGS+= --with-terminfo-dirs=${PREFIX}/${TERMINFODIR}
CONFIGURE_ARGS+= --includedir=${PREFIX}/include/ncurses
SUBST_CLASSES+= rpath
SUBST_FILES.rpath+= misc/ncurses-config
SUBST_STAGE.rpath= post-configure
SUBST_SED.rpath+= -e "s|-L\\(.libdir\\)|${COMPILER_RPATH_FLAG}\\1 -L\\1|"
SUBST_MESSAGE.rpath= Fixing rpath in ncurses-config.
.include "../../mk/bsd.prefs.mk"
2016-02-25 13:12:47 +01:00
CONFIGURE_ARGS.Darwin+= --disable-mixed-case
.if !empty(USE_CROSS_COMPILE:M[yY][eE][sS])
TOOL_DEPENDS+= ncurses-${NC_VERS}:../../devel/ncurses
CONFIGURE_ENV+= BUILD_CC=${NATIVE_CC:Q}
CONFIGURE_ENV+= ac_cv_path_TIC_PATH=${LOCALBASE}/bin/tic
.endif
.if !defined(TOOLS_TBL)
# This means that groff needs to be built to get tbl(1).
# We can only build groff if there is a builtin implementation of curses,
# otherwise we get a circular dependency problem.
# Additionally, Interix is special, see ../../mk/curses.buildlink3.mk
. if !(exists(/usr/include/curses.h) || exists(/usr/include/ncurses.h)) || \
${OPSYS} == "Interix"
# None was available, so disable use of tbl(1)
USE_TOOLS:= ${USE_TOOLS:Ntbl}
CONFIGURE_ARGS+= --without-manpage-tbl
. endif
.endif
.include "../../mk/compiler.mk"
# Fix build under FreeBSD 10.2
.if !empty(PKGSRC_COMPILER:Mclang)
CONFIGURE_ENV+= ac_cv_c_compiler_gnu=no
CONFIGURE_ENV+= ac_cv_cxx_compiler_gnu=no
.endif
.if ${OPSYS} == "SunOS"
CONFIGURE_ARGS+= --disable-const
TERMINFO_SRC= ${WRKSRC}/misc/terminfo.src
TERMINFODIR= share/lib/terminfo
.else
TERMINFODIR= share/terminfo
.endif
.if !empty(CC_VERSION:Mgcc-5.*)
# Inhibit generation of line markers in the output from the preprocessor
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60723
CPPFLAGS+= -P
.endif
# This prevents tic from writing into ~/.terminfo
INSTALLATION_DIRS+= ${TERMINFODIR}
PLIST_SUBST+= TERMINFODIR=${TERMINFODIR}
CHECK_WRKREF_SKIP+= man/man?/*