1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-22 00:35:15 +00:00
freebsd-ports/graphics/povray37/Makefile
John Marino dd918e15cf graphics/povray37: Fix build on clang, support stage
The main problem with building this port with clang was the use of
shared_ptr without the boost namespace which clashes with libc++.  This
occurs in numerous places but luckly sed can fix most of them save for
a few files that inconsistently used boost names.

It was also missing an explicit link to libboost_system [1]

PR:		ports/176172
Submitted by:	Oliver Hartmann
Approved by:	Maintainer timeout
Stage support:	blanket approval
MFH:		2014Q2
2014-04-21 13:08:53 +00:00

161 lines
4.5 KiB
Makefile

# $FreeBSD$
PORTNAME= povray
DISTVERSION= 3.7.0.RC6
PORTREVISION= 5
CATEGORIES= graphics
MASTER_SITES= http://www.povray.org/beta/source/
PKGNAMESUFFIX= 37
DIST_SUBDIR= ${PORTNAME}${PKGNAMESUFFIX}
MAINTAINER= bkoenig@alpha-tierchen.de
COMMENT= Persistence of Vision Ray Tracer
LIB_DEPENDS= libboost_thread.so:${PORTSDIR}/devel/boost-libs
OPTIONS_DEFINE= X11 PNG JPEG TIFF OPENEXR STATIC IO EXAMPLES DOCS
OPTIONS_DEFAULT=PNG JPEG EXAMPLES DOCS
OPTIONS_SUB= yes
IO_DESC= Without I/O restrictions (security risk)
EXAMPLES_DESC= Install example scenes
DOCS_DESC= Install HTML documentation
USES= gmake
GNU_CONFIGURE= yes
VERSION_BASE= ${PORTVERSION:C/([0-9]+\.[0-9]+).*/\1/}
DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}-${VERSION_BASE}
EXAMPLESDIR= ${PREFIX}/share/examples/${PORTNAME}-${VERSION_BASE}
DATADIR= ${PREFIX}/share/${PORTNAME}-${VERSION_BASE}
ETCDIR= ${PREFIX}/etc/${PORTNAME}/${VERSION_BASE}
INCLUDES= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib -lboost_system
CONFIGURE_ARGS= COMPILED_BY=${MAINTAINER} --prefix=${PREFIX} \
--program-transform-name='s/${PORTNAME}/${PORTNAME}${PKGNAMESUFFIX}/' \
--disable-optimiz
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MX11}
USE_XORG= xpm sm ice x11
USE_SDL= sdl
CONFIGURE_ARGS+= --x-include=${LOCALBASE}/include --x-libraries=${LOCALBASE}/libs
.else
CONFIGURE_ARGS+= --without-x
.endif
.if ${PORT_OPTIONS:MSTATIC}
CONFIGURE_ARGS+=--enable-static
.endif
.if ${PORT_OPTIONS:MIO}
CONFIGURE_ARGS+=--disable-io-restrictions
.endif
.if ${PORT_OPTIONS:MPNG}
.if ${PORT_OPTIONS:MSTATIC}
BUILD_DEPENDS+= png>=1.4:${PORTSDIR}/graphics/png
.else
LIB_DEPENDS+= libpng15.so:${PORTSDIR}/graphics/png
LIBS+= -lpng
.endif
.else
CONFIGURE_ARGS+=--without-libpng
.endif
.if ${PORT_OPTIONS:MJPEG}
.if ${PORT_OPTIONS:MSTATIC}
BUILD_DEPENDS+= jpeg>=6b:${PORTSDIR}/graphics/jpeg
.else
LIB_DEPENDS+= libjpeg.so:${PORTSDIR}/graphics/jpeg
LIBS+= -ljpeg
.endif
.else
CONFIGURE_ARGS+=--without-libjpeg
.endif
.if ${PORT_OPTIONS:MTIFF}
.if ${PORT_OPTIONS:MSTATIC}
BUILD_DEPENDS+= tiff>=4:${PORTSDIR}/graphics/tiff
.else
LIB_DEPENDS+= libtiff.so:${PORTSDIR}/graphics/tiff
LIBS+= -ltiff
.endif
.else
CONFIGURE_ARGS+=--without-libtiff
.endif
.if ${PORT_OPTIONS:MOPENEXR}
.if ${PORT_OPTIONS:MSTATIC}
BUILD_DEPENDS+= OpenEXR>=1.6:${PORTSDIR}/graphics/OpenEXR
.else
LIB_DEPENDS+= libIlmImf.so:${PORTSDIR}/graphics/OpenEXR
LIBS+= -lIlmImf
INCLUDES+= -I${LOCALBASE}/include/OpenEXR
.endif
.else
CONFIGURE_ARGS+=--without-openexr
.endif
.if !${PORT_OPTIONS:MPNG} || !${PORT_OPTIONS:MJPEG} || !${PORT_OPTIONS:MTIFF}
CONFIGURE_ARGS+=NON_REDISTRIBUTABLE_BUILD=yes
.endif
.if ${ARCH} == "sparc64"
BROKEN= Does not compile on sparc64: thread-local storage not supported
.endif
CONFIGURE_ARGS+=CXXFLAGS="${CXXFLAGS} ${INCLUDES}"
MAN1= ${PORTNAME}${PKGNAMESUFFIX}.1
DOC_FILES= AUTHORS ChangeLog NEWS
PORTDOCS= *
PORTEXAMPLES= *
post-patch:
# Fix with boost 1.52 and now boost 1.55
@${REINPLACE_CMD} -e 's/TIME_UTC/TIME_UTC_/g' ${WRKSRC}/source/backend/scene/view.cpp \
${WRKSRC}/source/base/timer.cpp \
${WRKSRC}/vfe/vfepovms.cpp \
${WRKSRC}/vfe/unix/platformbase.cpp \
${WRKSRC}/vfe/vfesession.cpp
${FIND} ${WRKSRC}/source/*end \( -name \*.h -o -name \*.cpp \) | \
${XARGS} ${GREP} -l shared_ptr | ${SED} '/shellout/d' | \
${XARGS} ${REINPLACE_CMD} -e 's|shared_ptr|boost::shared_ptr|g'
pre-build:
.if ${PORT_OPTIONS:MSTATIC} && ${PORT_OPTIONS:MTIFF}
# graphics/tiff adds dependencies on libjpeg and libjbig
@${REINPLACE_CMD} -e 's,^\(LIBS = .*\)-ltiff\(.*\),\1-ltiff -ljpeg -ljbig\2,' ${WRKSRC}/unix/Makefile
.endif
do-install:
@${INSTALL_PROGRAM} ${WRKSRC}/unix/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${PKGNAMESUFFIX}
@${INSTALL_MAN} ${WRKSRC}/${PORTNAME}.1 ${STAGEDIR}${MAN1PREFIX}/man/man1/${MAN1}
@${MKDIR} ${STAGEDIR}${ETCDIR}
@${INSTALL_DATA} ${WRKSRC}/${PORTNAME}.conf ${STAGEDIR}${ETCDIR}
@${INSTALL_DATA} ${WRKSRC}/${PORTNAME}.ini ${STAGEDIR}${ETCDIR}
.for i in include ini scripts
${MKDIR} ${STAGEDIR}${DATADIR}/$i
cd ${WRKSRC}/$i && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/$i
.endfor
.if ${PORT_OPTIONS:MX11}
@${MKDIR} ${STAGEDIR}${DATADIR}/icons
cd ${WRKSRC}/icons && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/icons
.endif
.if ${PORT_OPTIONS:MEXAMPLES}
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
cd ${WRKSRC}/scenes && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}
.endif
.if ${PORT_OPTIONS:MDOCS}
@${MKDIR} ${STAGEDIR}${DOCSDIR}
cd ${WRKSRC} && ${INSTALL_DATA} ${DOC_FILES} ${STAGEDIR}${DOCSDIR}
cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}
.endif
.include <bsd.port.mk>