editors/the: overhaul, resolved many existing issues

When this port was resurrected, none of the non-default options had a
prayer of working.  Requirements were spelled incorrectly and
mis-specified.

First, overhaul the makefile to use modern options helpers.
Then create a Rexx group of options. Rexx must be used, but the original
intent is that it builds with Rexx/Regina by default, but optionally with
Rexx/imc.  Now that this is cleaned it, it was discovered that Rexx/imc
can't build the, so leave the option but mark it broken.

Similarly, it builds with ncurses by default.  This wasn't configured
properly, but now it's been fixed.  A new option group called display
allows the to be built with XCurses.  This was also mis-specified and
could never build anyway.  Using a sed command to remove 2 (minor?)
unsupported lines, the xcurses option now builds and links to the
successfully.

Finally the xaw3d, also mispecified, doesn't dynamically link to the.
The specification was fixed and changed to the static library.  The xawed
is a valid configure option but it's not clear if the static library is
actually used or not.  It's off by default, as before.

This port did not receive adequate scrutiny when it was brought back
into the tree.  Most of the issues listed here would have been caught
with even a cursory check.

Approved by:	just-fix-it and ncurses blanket
This commit is contained in:
John Marino 2016-11-19 23:17:35 +00:00
parent 7694c2c693
commit e0063ba1b3
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=426544

View File

@ -3,7 +3,7 @@
PORTNAME= the
PORTVERSION= 3.3.r4
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= editors
MASTER_SITES= http://downloads.sourceforge.net/hessling-editor/
DISTNAME= THE-${PORTVERSION:S/.r/RC/}
@ -15,49 +15,54 @@ LICENSE= GPLv2
BROKEN_powerpc= fails to configure
USES= ncurses
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --with-ncurses \
--with-rexxincdir=${LOCALBASE}/include \
CONFIGURE_ARGS= --with-rexxincdir=${LOCALBASE}/include \
--with-rexxlibdir=${LOCALBASE}/lib
ALL_TARGET= all html
CPPFLAGS+= -I${LOCALBASE}/include
OPTIONS_DEFINE= XAW3D XCURSES REXX_IMC
XAW3D_DESC= Enable Xaw3D
XCURSES_DESC= Build XCurses (X11) version
REXX_REGINA_DESC= Enable Rexx interpreter
OPTIONS_DEFINE= XAW3D
OPTIONS_SINGLE= Display Rexx
OPTIONS_SINGLE_Display= NCURSES XCURSES
OPTIONS_SINGLE_Rexx= REXX_IMC REGINA
OPTIONS_DEFAULT= NCURSES REGINA
OPTIONS_SUB= yes
.include <bsd.port.pre.mk>
XAW3D_DESC= Enable Xaw3D
NCURSES_DESC= Build standard NCurses version
XCURSES_DESC= Build XCurses (X11) version
REXX_IMC_DESC= Use Rexx/imc interpreter
REGINA_DESC= Use Regina Rexx interpreter
.if ${PORT_OPTIONS:MXAW3D}
CONFIGURE_ARGS+=--with-xaw3d
LIB_DEPENDS+= libxaw3d.so:x11-toolkits/Xaw3d
.endif
XAW3D_CONFIGURE_WITH= xaw3d
XAW3D_BUILD_DEPENDS= ${LOCALBASE}/lib/libXaw3d.a:x11-toolkits/Xaw3d
.if ${PORT_OPTIONS:MXCURSES}
CONFIGURE_ARGS+=--with-xcurses \
--with-cursesincdir=${LOCALBASE}/include \
--with-curseslibdir=${LOCALBASE}/lib
BUILD_DEPENDS+= pdcurses:devel/pdcurses
LIB_DEPENDS+= libxcurses.so:devel/pdcurses
PLIST_SUB= XCURSES="" NCURSES="@comment "
.else
PLIST_SUB= XCURSES="@comment " NCURSES=""
.endif
NCURSES_USES= ncurses
NCURSES_CONFIGURE_ON= --with-ncurses \
--with-cursesincdir=${NCURSESINC} \
--with-curseslibdir=${NCURSESLIB}
.if ${PORT_OPTIONS:MREXX_IMC}
BUILD_DEPENDS+= rexx:lang/rexx-imc
RUN_DEPENDS+= rexx:lang/rexx-imc
CONFIGURE_ARGS+= --with-rexx=rexximc
.else
BUILD_DEPENDS+= regina:lang/rexx-regina
RUN_DEPENDS+= regina:lang/rexx-regina
CONFIGURE_ARGS+= --with-rexx=regina
.endif
XCURSES_LIB_DEPENDS= libXCurses.so:devel/pdcurses
XCURSES_CONFIGURE_ON= --with-xcurses \
--with-cursesincdir=${LOCALBASE}/include \
--with-curseslibdir=${LOCALBASE}/lib
XCURSES_CFLAGS= -I${LOCALBASE}/include \
-I${LOCALBASE}/include/xcurses
REXX_IMC_CONFIGURE_ON= --with-rexx=rexximc
REXX_IMC_BUILD_DEPENDS= rexx:lang/rexx-imc
REXX_IMC_RUN_DEPENDS= rexx:lang/rexx-imc
REXX_IMC_BROKEN= fails to build with REXX_IMC option
REGINA_CONFIGURE_ON= --with-rexx=regina
REGINA_BUILD_DEPENDS= regina:lang/rexx-regina
REGINA_RUN_DEPENDS= regina:lang/rexx-regina
post-extract:
${REINPLACE_CMD} -e 's|(datadir)/THE|(datadir)/the|g' \
-e 's|/share/THE|/share/the|g' ${WRKSRC}/Makefile.in
-e 's|/share/THE|/share/the|g' ${WRKSRC}/Makefile.in
${REINPLACE_CMD} -e 's|ltermcap|lncurses|g' ${WRKSRC}/configure
${REINPLACE_CMD} -e '/FUNCTION_KEY/d' ${WRKSRC}/the.c
pre-install:
${MKDIR} ${STAGEDIR}${DOCSDIR}
@ -65,13 +70,12 @@ pre-install:
${INSTALL_DATA} ${WRKSRC}/the64.gif ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/the64.png ${STAGEDIR}${DOCSDIR}
post-install:
.if ${PORT_OPTIONS:MXCURSES}
do-install-XCURSES-on:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/xthe
${LN} -sf xthe ${STAGEDIR}${PREFIX}/bin/the
.else
do-install-NCURSES-on:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/nthe
${LN} -sf nthe ${STAGEDIR}${PREFIX}/bin/the
.endif
.include <bsd.port.post.mk>
.include <bsd.port.mk>