svn commit: r499251 - in head/biology/canu: . files
Jason W. Bacon
jwb at FreeBSD.org
Thu Apr 18 12:15:58 UTC 2019
Author: jwb
Date: Thu Apr 18 12:15:56 2019
New Revision: 499251
URL: https://svnweb.freebsd.org/changeset/ports/499251
Log:
biology/canu: Fix build on powerpc64 and aarch64
Should also work on powerpc and arm*, but unable to test
PR: 237105
Reported by: pkubaj
Added:
head/biology/canu/files/patch-Makefile (contents, props changed)
Modified:
head/biology/canu/Makefile
head/biology/canu/files/patch-pipelines_canu_Defaults.pm
head/biology/canu/files/patch-pipelines_canu_Execution.pm
Modified: head/biology/canu/Makefile
==============================================================================
--- head/biology/canu/Makefile Thu Apr 18 11:56:29 2019 (r499250)
+++ head/biology/canu/Makefile Thu Apr 18 12:15:56 2019 (r499251)
@@ -12,10 +12,6 @@ COMMENT= Single molecule sequence assembler
LICENSE= GPLv2
LICENSE_FILE= ${WRKDIR}/${PORTNAME}-${PORTVERSION}/README.license.GPL
-BROKEN_aarch64= fails to link: undefined reference to omp_set_num_threads
-BROKEN_armv6= fails to install: mv: rename site_perl to /wrkdirs/usr/ports/biology/canu/work/canu-1.7/src/usr/local/FreeBSD-armv6/lib/perl5/site_perl: No such file or directory
-BROKEN_armv7= fails to install: mv: rename site_perl to /wrkdirs/usr/ports/biology/canu/work/canu-1.7/src/usr/local/FreeBSD-armv7/lib/perl5/site_perl: No such file or directory
-
LIB_DEPENDS= libboost_regex.so:devel/boost-libs
RUN_DEPENDS= gnuplot:math/gnuplot
@@ -28,19 +24,28 @@ JAVA_VERSION= 1.8+
GH_ACCOUNT= marbl
WRKSRC_SUBDIR= src
-# Makefile compiles directly into ${DESTDIR}${PREFIX}
-MAKE_ENV+= DESTDIR=${WRKSRC}
+# Upstream Makefile compiles directly into ${DESTDIR}${PREFIX} rather than
+# using a separate install target.
+MAKE_ENV= DESTDIR=${WRKSRC} CANU_BUILD_ENV=ports
-post-patch:
- ${REINPLACE_CMD} \
+.include <bsd.port.pre.mk>
+
+# GCC 4.2.1 (still base compiler on some 2nd tier platforms) cannot build canu
+.if ${COMPILER_TYPE} == gcc && ${COMPILER_VERSION} <= 42
+USE_GCC= yes
+.endif
+
+pre-configure:
+ @${REINPLACE_CMD} \
-e 's|-O4||g' \
-e 's|-funroll-loops||g' \
-e 's|-fexpensive-optimizations||g' \
- -e 's|amd64|${ARCH}|g' \
${WRKSRC}/Makefile
- ${REINPLACE_CMD} -e 's|\\$$bin/mhap-|${JAVAJARDIR}/mhap-|g' \
+ @${REINPLACE_CMD} \
+ -e 's|\\$$bin/mhap-|${JAVAJARDIR}/mhap-|g' \
${WRKSRC}/pipelines/canu/OverlapMhap.pm
- ${REINPLACE_CMD} -e 's|RealBin/lib|RealBin/../${SITE_PERL_REL}/canu|g' \
+ @${REINPLACE_CMD} \
+ -e 's|RealBin/lib|RealBin/../${SITE_PERL_REL}/canu|g' \
${WRKSRC}/pipelines/canu.pl
# Upstream does not want to use lib/perl5/site_perl
@@ -55,9 +60,9 @@ do-install:
${COPYTREE_BIN} bin ${STAGEDIR}${PREFIX})
# STRIP_CMD fails without this on 11.1 under poudriere
@${CHMOD} u+w ${STAGEDIR}${PREFIX}/bin/*
- ${STRIP_CMD} \
+ @${STRIP_CMD} \
`file ${STAGEDIR}${PREFIX}/bin/* | ${GREP} ELF | cut -d : -f 1`
(cd ${WRKSRC}${PREFIX}/FreeBSD-${ARCH} && \
${COPYTREE_SHARE} "lib share" ${STAGEDIR}${PREFIX})
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
Added: head/biology/canu/files/patch-Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/biology/canu/files/patch-Makefile Thu Apr 18 12:15:56 2019 (r499251)
@@ -0,0 +1,116 @@
+--- Makefile.orig 2018-10-22 16:47:31 UTC
++++ Makefile
+@@ -481,68 +481,65 @@ endif
+
+
+ ifeq (${OSTYPE}, FreeBSD)
+-ifeq (${MACHINETYPE}, amd64)
+- CC ?= gcc48
+- CXX ?= g++48
+
+- # GCC
+- CXXFLAGS += -I/usr/local/include -D_GLIBCXX_PARALLEL -pthread -fopenmp -fPIC
+- LDFLAGS += -L/usr/local/lib -D_GLIBCXX_PARALLEL -pthread -fopenmp -rpath /usr/local/lib/gcc48 -lm -lexecinfo
++ ifeq (${CANU_BUILD_ENV}, ports)
+
+- # CLANG
+- #CXXFLAGS += -I/usr/local/include -D_GLIBCXX_PARALLEL -pthread -fPIC
+- #LDFLAGS += -L/usr/local/lib -D_GLIBCXX_PARALLEL -pthread -lm -lexecinfo -lgomp
++ #################################################
++ # If compiling within ports system (recommended)
++ #################################################
+
+- #CXXFLAGS += -Wall -Wextra -Wformat -Wno-unused -Wno-parentheses
+- CXXFLAGS += -Wall -Wextra -Wformat -Wno-unused-function -Wno-unused-parameter -Wno-unused-variable -Wno-char-subscripts -Wno-write-strings -Wno-sign-compare -Wno-format-truncation
++ # Use architecture as defined by ports rather than uname
++ # ${ARCH} matches uname -p, not uname -m
++ MACHINETYPE=${ARCH}
+
+- # Google Performance Tools malloc and heapchecker (HEAPCHECK=normal)
+- #CXXFLAGS +=
+- #LDFLAGS += -ltcmalloc
++ # Take compiler and most flags from the env and make command line
++ CXXFLAGS += -D_GLIBCXX_PARALLEL -fPIC -pthread -fopenmp
++ LDFLAGS += -D_GLIBCXX_PARALLEL -pthread -fopenmp
+
+- # Google Performance Tools cpu profiler (CPUPROFILE=/path)
+- #CXXFLAGS +=
+- #LDFLAGS += -lprofiler
++ else
+
+- # callgrind
+- #CXXFLAGS += -g3 -Wa,--gstabs -save-temps
++ ######################################################
++ # If compiling outside ports system (not recommended)
++ ######################################################
+
+- ifeq ($(BUILDOPTIMIZED), 1)
+- else
+- CXXFLAGS += -g3
+- endif
++ CC ?= gcc48
++ CXX ?= g++48
+
+- ifeq ($(BUILDDEBUG), 1)
+- else
+- CXXFLAGS += -O3 -funroll-loops -fexpensive-optimizations -finline-functions -fomit-frame-pointer
+- endif
+-endif
+-endif
++ # GCC
++ CXXFLAGS += -I/usr/local/include -D_GLIBCXX_PARALLEL -pthread -fopenmp -fPIC
++ LDFLAGS += -L/usr/local/lib -D_GLIBCXX_PARALLEL -pthread -fopenmp -rpath /usr/local/lib/gcc48 -lm -lexecinfo
+
++ # CLANG
++ #CXXFLAGS += -I/usr/local/include -D_GLIBCXX_PARALLEL -pthread -fPIC
++ #LDFLAGS += -L/usr/local/lib -D_GLIBCXX_PARALLEL -pthread -lm -lexecinfo -lgomp
+
+-ifeq (${OSTYPE}, FreeBSD)
+-ifeq (${MACHINETYPE}, arm)
+- CC ?= gcc48
+- CXX ?= g++48
++ #CXXFLAGS += -Wall -Wextra -Wformat -Wno-unused -Wno-parentheses
++ CXXFLAGS += -Wall -Wextra -Wformat -Wno-unused-function -Wno-unused-parameter -Wno-unused-variable -Wno-char-subscripts -Wno-write-strings -Wno-sign-compare -Wno-format-truncation
+
+- CXXFLAGS += -I/usr/local/include -D_GLIBCXX_PARALLEL -pthread -fopenmp -fPIC
+- LDFLAGS += -L/usr/local/lib -D_GLIBCXX_PARALLEL -pthread -fopenmp -rpath /usr/local/lib/gcc48 -lm
++ # Google Performance Tools malloc and heapchecker (HEAPCHECK=normal)
++ #CXXFLAGS +=
++ #LDFLAGS += -ltcmalloc
+
+- CXXFLAGS += -Wall -Wextra -Wno-write-strings -Wno-unused -Wno-char-subscripts -Wno-sign-compare -Wformat -Wno-parentheses
+- CXXFLAGS += -funroll-loops -fomit-frame-pointer
+- LDFLAGS +=
++ # Google Performance Tools cpu profiler (CPUPROFILE=/path)
++ #CXXFLAGS +=
++ #LDFLAGS += -lprofiler
+
+- ifeq ($(BUILDOPTIMIZED), 1)
+- else
+- CXXFLAGS += -g3
+- endif
++ # callgrind
++ #CXXFLAGS += -g3 -Wa,--gstabs -save-temps
+
+- ifeq ($(BUILDDEBUG), 1)
+- else
+- CXXFLAGS += -O4 -funroll-loops -fexpensive-optimizations -finline-functions -fomit-frame-pointer
+- endif
+-endif
+-endif
++ ifeq ($(BUILDOPTIMIZED), 1)
++ else
++ CXXFLAGS += -g3
++ endif
++
++ ifeq ($(BUILDDEBUG), 1)
++ else
++ CXXFLAGS += -O3 -funroll-loops -fexpensive-optimizations -finline-functions -fomit-frame-pointer
++ endif
++
++ endif # CANU_BUILD_ENV
++
++endif # FreeBSD
+
+
+ ifneq (,$(findstring CYGWIN, ${OSTYPE}))
Modified: head/biology/canu/files/patch-pipelines_canu_Defaults.pm
==============================================================================
--- head/biology/canu/files/patch-pipelines_canu_Defaults.pm Thu Apr 18 11:56:29 2019 (r499250)
+++ head/biology/canu/files/patch-pipelines_canu_Defaults.pm Thu Apr 18 12:15:56 2019 (r499251)
@@ -1,6 +1,6 @@
---- pipelines/canu/Defaults.pm.orig 2018-06-19 17:20:30 UTC
+--- pipelines/canu/Defaults.pm.orig 2018-10-22 16:47:31 UTC
+++ pipelines/canu/Defaults.pm
-@@ -812,6 +812,16 @@ sub setDefaults () {
+@@ -917,6 +917,16 @@ sub setDefaults () {
setDefault("gridEngineArraySubmitID", undef, "Grid engine configuration, not documented");
setDefault("gridEngineJobID", undef, "Grid engine configuration, not documented");
Modified: head/biology/canu/files/patch-pipelines_canu_Execution.pm
==============================================================================
--- head/biology/canu/files/patch-pipelines_canu_Execution.pm Thu Apr 18 11:56:29 2019 (r499250)
+++ head/biology/canu/files/patch-pipelines_canu_Execution.pm Thu Apr 18 12:15:56 2019 (r499251)
@@ -1,6 +1,6 @@
---- pipelines/canu/Execution.pm.orig 2018-06-18 02:42:11 UTC
+--- pipelines/canu/Execution.pm.orig 2018-10-22 16:47:31 UTC
+++ pipelines/canu/Execution.pm
-@@ -303,10 +303,6 @@ sub skipStage ($$@) {
+@@ -333,10 +333,6 @@ sub resetIteration ($) {
sub getInstallDirectory () {
my $installDir = $FindBin::RealBin;
@@ -11,7 +11,7 @@
return($installDir);
}
-@@ -694,8 +690,8 @@ sub submitScript ($$) {
+@@ -784,8 +780,8 @@ sub submitScript ($$) {
@@ -22,7 +22,7 @@
my $off = 0;
# In some grids (SGE) this is the maximum size of an array job.
-@@ -725,8 +721,42 @@ sub buildGridArray ($$$$) {
+@@ -823,8 +819,42 @@ sub buildGridArray ($$$$) {
$off = "-F \"$off\"";
}
@@ -67,7 +67,7 @@
return($opt, $off);
}
-@@ -870,7 +900,7 @@ sub buildGridJob ($$$$$$$$$) {
+@@ -973,7 +1003,7 @@ sub buildGridJob ($$$$$$$$$) {
my $jobNameT = makeUniqueJobName($jobType, $asm);
my ($jobName, $jobOff) = buildGridArray($jobNameT, $bgnJob, $endJob, getGlobal("gridEngineArrayName"));
More information about the svn-ports-head
mailing list