Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Dec 2019 12:34:34 +0000 (UTC)
From:      Matthias Andree <mandree@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r521278 - head/graphics/rawtherapee
Message-ID:  <201912291234.xBTCYYJK087997@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mandree
Date: Sun Dec 29 12:34:34 2019
New Revision: 521278
URL: https://svnweb.freebsd.org/changeset/ports/521278

Log:
  graphics/rawtherapee: document Makefile better, test-process images
  
  ...under "make test", if any are placed into testimages/
  
  No functional changes to generated package => PORTREVISION unchanged.

Modified:
  head/graphics/rawtherapee/Makefile

Modified: head/graphics/rawtherapee/Makefile
==============================================================================
--- head/graphics/rawtherapee/Makefile	Sun Dec 29 12:22:30 2019	(r521277)
+++ head/graphics/rawtherapee/Makefile	Sun Dec 29 12:34:34 2019	(r521278)
@@ -32,19 +32,25 @@ USES=		cmake desktop-file-utils compiler:gcc-c++11-lib
 
 DOS2UNIX_REGEX=	.*\.(cc|h)
 USE_GNOME=	gtkmm30 librsvg2
-USE_GCC=	9+
+
+# Binutils required for LTO (base ar/nm/ld/ranlib don't work)
 USE_BINUTILS=	yes
 
-# gcc needs -flto=${MAKE_JOBS_NUMBER} for parallel link
-#   and does not understand -flto=thin
+# As of 2019-09-29, this port is known to be miscompiled by clang90
+# (SIGSEGV or SIBGUS).
+#
+# FreeBSD 11.2/12.0's base clang 6.0.1 emits worse code with
+# considerably higher processing times, and on i386 additional calls to
+# __atomic_*(), so we shall stick to GCC 9.x for now
+USE_GCC=	9+
+
+_LTO_FLAGS=	-flto=${MAKE_JOBS_NUMBER}
+# gcc needs -flto=${MAKE_JOBS_NUMBER} for parallel link (fixed in GCC 10?)
+#     and does not understand -flto=thin
 #   
 # llvm/clang needs -flto=thin and will automatically parallelize the link
 #
-# As of 2019-09-29, this port is known to be micompiled by clang90 (SIGSEGV or SIBGUS)
-# FreeBSD 12.0's base clang 6.0.1 emits worse code with considerably higher
-# processing times.
-# so we shall stick to GCC 9.x for now
-_LTO_FLAGS=	-flto=${MAKE_JOBS_NUMBER}
+# XXX re _AR/_RANLIB: might be worth checking if plain binutils is good
 _AR=		${CC:S/gcc/gcc-ar/}
 _RANLIB=	${CC:S/gcc/gcc-ranlib/}
 CFLAGS+=	-I${LOCALBASE}/include -fPIC ${_LTO_FLAGS} ${_OPT_FLAGS}
@@ -116,11 +122,13 @@ STRIP=
 .endif
 
 _OPT_FLAGS=	-O3 -funroll-loops
-# GCC 5.4 includes -fexpensive-optimizations in -O2 already
+# GCC >= 5.4 includes -fexpensive-optimizations in -O2 already
 .if (${ARCH} == i386) || (${ARCH} == amd64)
+# and SSE2 has been around since the years 2000...2003 latest
 _OPT_FLAGS+=	-msse2
 .endif
 
+# workaround for values on the stack that cause SIGBUS on SSE2:
 .if ${ARCH} == i386
 _OPT_FLAGS+=	-mstackrealign
 .endif
@@ -133,14 +141,22 @@ post-patch:
 	@${REINPLACE_CMD} -e 's#DESTINATION "$${CMAKE_INSTALL_PREFIX}/share/man/man1"#DESTINATION "${MANPREFIX}/man/man1/"#' \
 		${WRKSRC}/CMakeLists.txt
 
+TESTIMAGES=	${FILESDIR}/../testimages
+
 # paranoia: run rawtherapee --help to be sure it finds all its
 # shared libraries (this hinges on proper RPATH setting and propagation)
 post-install:
 	@${ECHO_MSG} "===> Running smoke tests"
-	@TMP=$$(mktemp -d -t ${PORTNAME}) && trap "rc=$$? ; ${RM} -rf \"$$TMP\" ; exit \$$rc" 0 && \
+	@(set -x ; TMP=$$(${MKTEMP} -d -t ${PORTNAME}) && trap "rc=$$? ; ${RM} -rf \"$$TMP\" ; exit \$$rc" 0 && \
 	${SETENV} LANG= LC_ALL=C LANGUAGE= DISPLAY= HOME="$$TMP" ${STAGEDIR}${PREFIX}/bin/rawtherapee --help 2>&1 \
 	    | ${EGREP} -q "RawTherapee, version ${PKGVERSION:C/_.*//:C/,.*//}|cannot open display:" && \
 	${SETENV} LANG= LC_ALL=C LANGUAGE= DISPLAY= HOME="$$TMP" ${STAGEDIR}${PREFIX}/bin/rawtherapee-cli --version 2>&1 \
-	    | ${EGREP} -q "RawTherapee, version ${PKGVERSION:C/_.*//:C/,.*//}"
+	    | ${EGREP} -q "RawTherapee, version ${PKGVERSION:C/_.*//:C/,.*//}" && \
+	if test -n "$(TESTIMAGES)" ; then \
+	  time ${SETENV} LANG= LC_ALL=C LANGUAGE= DISPLAY= HOME="$$TMP" ${STAGEDIR}${PREFIX}/bin/rawtherapee-cli \
+		-o "$$TMP" -q -f -c $(TESTIMAGES) && \
+	  time ${SETENV} LANG= LC_ALL=C LANGUAGE= DISPLAY= HOME="$$TMP" ${STAGEDIR}${PREFIX}/bin/rawtherapee-cli \
+		-o "$$TMP" -q -s -Y -c $(TESTIMAGES) ; \
+	fi )
 
 .include <bsd.port.post.mk>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201912291234.xBTCYYJK087997>