pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

hisat2-simde: Separate from non SIMDe version



Module Name:	pkgsrc-wip
Committed By:	Jason Bacon <bacon%NetBSD.org@localhost>
Pushed By:	outpaddling
Date:		Thu Mar 17 10:08:14 2022 -0500
Changeset:	33d9bed0a089fe7303dd30ed9d633ccbcf8dd0fa

Added Files:
	hisat2-simde/DESCR
	hisat2-simde/Makefile
	hisat2-simde/PLIST
	hisat2-simde/distinfo
	hisat2-simde/patches/patch-Makefile
	hisat2-simde/patches/patch-aligner__sw.h
	hisat2-simde/patches/patch-hisat2
	hisat2-simde/patches/patch-processor__support.h
	hisat2-simde/patches/patch-sse__util.h

Log Message:
hisat2-simde: Separate from non SIMDe version

wip/simde is failing do-test, which may take some time to fix

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=33d9bed0a089fe7303dd30ed9d633ccbcf8dd0fa

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 hisat2-simde/DESCR                              |   3 +
 hisat2-simde/Makefile                           |  33 ++++++
 hisat2-simde/PLIST                              |  67 +++++++++++
 hisat2-simde/distinfo                           |  10 ++
 hisat2-simde/patches/patch-Makefile             | 145 ++++++++++++++++++++++++
 hisat2-simde/patches/patch-aligner__sw.h        |  22 ++++
 hisat2-simde/patches/patch-hisat2               |  15 +++
 hisat2-simde/patches/patch-processor__support.h |  25 ++++
 hisat2-simde/patches/patch-sse__util.h          |  22 ++++
 9 files changed, 342 insertions(+)

diffs:
diff --git a/hisat2-simde/DESCR b/hisat2-simde/DESCR
new file mode 100644
index 0000000000..b2a627c14e
--- /dev/null
+++ b/hisat2-simde/DESCR
@@ -0,0 +1,3 @@
+HISAT2 is a fast and sensitive alignment program for mapping next-generation
+sequencing reads (both DNA and RNA) to a population of human genomes (as well
+as to a single reference genome).
diff --git a/hisat2-simde/Makefile b/hisat2-simde/Makefile
new file mode 100644
index 0000000000..b23125be6e
--- /dev/null
+++ b/hisat2-simde/Makefile
@@ -0,0 +1,33 @@
+# $NetBSD$
+
+DISTNAME=	hisat2-2.2.1
+CATEGORIES=	biology
+MASTER_SITES=	${MASTER_SITE_GITHUB:=DaehwanKimLab/}
+GITHUB_TAG=	v${PKGVERSION_NOREV}
+
+MAINTAINER=	bacon%NetBSD.org@localhost
+HOMEPAGE=	https://ccb.jhu.edu/software/hisat2/index.shtml
+COMMENT=	Alignment program for mapping next-generation sequencing reads
+LICENSE=	gnu-gpl-v3
+
+# 64-bit code, some assembly language
+ONLY_FOR_PLATFORM=	*-*-x86_64
+
+USE_LANGUAGES=	c c++
+USE_TOOLS+=	bash gmake perl
+
+REPLACE_BASH=		scripts/*.sh
+REPLACE_PERL=		hisat2 scripts/*.sh scripts/*.pl scripts/*.py
+REPLACE_PYTHON=		*.py scripts/*.py hisat2-build hisat2-inspect
+
+PTHREAD_AUTO_VARS=	yes
+WRKSRC=			${WRKDIR}/hisat2-2.2.1
+
+# Unbreak #include <version> on case-insensitive file systems
+post-patch:
+	${MV} ${WRKSRC}/VERSION ${WRKSRC}/HISAT2_VERSION
+
+.include "../../wip/simde/buildlink3.mk"
+.include "../../lang/python/application.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/hisat2-simde/PLIST b/hisat2-simde/PLIST
new file mode 100644
index 0000000000..96055d08a6
--- /dev/null
+++ b/hisat2-simde/PLIST
@@ -0,0 +1,67 @@
+@comment $NetBSD$
+bin/hisat2
+bin/hisat2-align-l
+bin/hisat2-align-s
+bin/hisat2-build
+bin/hisat2-build-l
+bin/hisat2-build-s
+bin/hisat2-inspect
+bin/hisat2-inspect-l
+bin/hisat2-inspect-s
+bin/hisat2-repeat
+libexec/hisat2/convert_quals.pl
+libexec/hisat2/extract_exons.py
+libexec/hisat2/extract_splice_sites.py
+libexec/hisat2/gen_2b_occ_lookup.pl
+libexec/hisat2/gen_occ_lookup.pl
+libexec/hisat2/gen_solqual_lookup.pl
+libexec/hisat2/hisat2_extract_exons.py
+libexec/hisat2/hisat2_extract_snps_haplotypes_UCSC.py
+libexec/hisat2/hisat2_extract_snps_haplotypes_VCF.py
+libexec/hisat2/hisat2_extract_splice_sites.py
+libexec/hisat2/hisat2_read_statistics.py
+libexec/hisat2/hisat2_simulate_reads.py
+libexec/hisat2/infer_fraglen.pl
+libexec/hisat2/make_a_thaliana_tair.sh
+libexec/hisat2/make_b_taurus_UMD3.sh
+libexec/hisat2/make_bdgp6.sh
+libexec/hisat2/make_bdgp6_tran.sh
+libexec/hisat2/make_canFam2.sh
+libexec/hisat2/make_ce10.sh
+libexec/hisat2/make_dm6.sh
+libexec/hisat2/make_e_coli.sh
+libexec/hisat2/make_grch37.sh
+libexec/hisat2/make_grch37_snp.sh
+libexec/hisat2/make_grch37_snp_tran.sh
+libexec/hisat2/make_grch37_snp_tran_ercc.sh
+libexec/hisat2/make_grch37_tran.sh
+libexec/hisat2/make_grch38.sh
+libexec/hisat2/make_grch38_rep.sh
+libexec/hisat2/make_grch38_snp.sh
+libexec/hisat2/make_grch38_snp_rep.sh
+libexec/hisat2/make_grch38_snp_tran.sh
+libexec/hisat2/make_grch38_snp_tran_ercc.sh
+libexec/hisat2/make_grch38_tran.sh
+libexec/hisat2/make_grcm38.sh
+libexec/hisat2/make_grcm38_snp.sh
+libexec/hisat2/make_grcm38_snp_tran.sh
+libexec/hisat2/make_grcm38_tran.sh
+libexec/hisat2/make_hg19.sh
+libexec/hisat2/make_hg38.sh
+libexec/hisat2/make_hg38_allsnp.sh
+libexec/hisat2/make_hg38_snp.sh
+libexec/hisat2/make_hg38_snp_tran.sh
+libexec/hisat2/make_mm10.sh
+libexec/hisat2/make_mm9.sh
+libexec/hisat2/make_r64.sh
+libexec/hisat2/make_r64_tran.sh
+libexec/hisat2/make_rn4.sh
+libexec/hisat2/make_rn6.sh
+libexec/hisat2/make_rnor6.sh
+libexec/hisat2/make_rnor6_tran.sh
+libexec/hisat2/make_sc3.sh
+libexec/hisat2/make_wbcel235.sh
+libexec/hisat2/make_wbcel235_tran.sh
+libexec/hisat2/make_zm3_snp_tran_ercc.sh
+libexec/hisat2/sa.py
+libexec/hisat2/validate_repeat.py
diff --git a/hisat2-simde/distinfo b/hisat2-simde/distinfo
new file mode 100644
index 0000000000..0f331bc61f
--- /dev/null
+++ b/hisat2-simde/distinfo
@@ -0,0 +1,10 @@
+$NetBSD$
+
+BLAKE2s (hisat2-2.2.1.tar.gz) = 1cc424a10f1fcf25c70294bef3b21e67b07cebcb7b73e36c0176a2dfdec51bdb
+SHA512 (hisat2-2.2.1.tar.gz) = a5a688ad0ccfaf326b3ec6dc97206995306aa6f5b6e58223c2113adbca2745f1e8205b436fdf8e01f42da7a38718f9f3bf214b951fb5360d53247d99a0bdbf46
+Size (hisat2-2.2.1.tar.gz) = 6761242 bytes
+SHA1 (patch-Makefile) = 067b766ecebacd840db4a287bba25d2d2264b339
+SHA1 (patch-aligner__sw.h) = 628c14bfd6b26185eada73013175e35de2b38227
+SHA1 (patch-hisat2) = 6010f5fcc1e7dfcb383a4defc4e3d9f06322370d
+SHA1 (patch-processor__support.h) = 56d9cd4ba18e37879acba521a0f431fe2b4290af
+SHA1 (patch-sse__util.h) = f0bbe72dfe3a2567e614683e3aecc10f3d6583ef
diff --git a/hisat2-simde/patches/patch-Makefile b/hisat2-simde/patches/patch-Makefile
new file mode 100644
index 0000000000..5615e72d99
--- /dev/null
+++ b/hisat2-simde/patches/patch-Makefile
@@ -0,0 +1,145 @@
+$NetBSD$
+
+# Respect env
+
+--- Makefile.orig	2020-07-24 20:07:54.000000000 +0000
++++ Makefile
+@@ -23,9 +23,11 @@
+ INC =
+ GCC_PREFIX = $(shell dirname `which gcc`)
+ GCC_SUFFIX =
+-CC = $(GCC_PREFIX)/gcc$(GCC_SUFFIX)
+-CPP = $(GCC_PREFIX)/g++$(GCC_SUFFIX)
+-CXX = $(CPP)
++CC	?= $(GCC_PREFIX)/gcc$(GCC_SUFFIX)
++CPP	?= $(GCC_PREFIX)/g++$(GCC_SUFFIX)
++CXX	?= $(CPP)
++INSTALL	?= install
++
+ HEADERS = $(wildcard *.h)
+ BOWTIE_MM = 1
+ BOWTIE_SHARED_MEM = 0
+@@ -55,7 +57,7 @@ ifneq (,$(findstring Darwin,$(shell unam
+ 	MACOS = 1
+ endif
+ 
+-EXTRA_FLAGS += -DPOPCNT_CAPABILITY -std=c++11
++EXTRA_FLAGS += -std=c++11
+ INC += -I. -I third_party 
+ 
+ MM_DEF = 
+@@ -150,33 +152,11 @@ HISAT2_BUILD_CPPS_MAIN = $(BUILD_CPPS) h
+ HISAT2_REPEAT_CPPS_MAIN = $(REPEAT_CPPS) $(BUILD_CPPS) hisat2_repeat_main.cpp
+ 
+ SEARCH_FRAGMENTS = $(wildcard search_*_phase*.c)
+-VERSION = $(shell cat VERSION)
+-
+-# Convert BITS=?? to a -m flag
+-BITS=32
+-ifeq (x86_64,$(shell uname -m))
+-BITS=64
+-endif
+-# msys will always be 32 bit so look at the cpu arch instead.
+-ifneq (,$(findstring AMD64,$(PROCESSOR_ARCHITEW6432)))
+-	ifeq (1,$(MINGW))
+-		BITS=64
+-	endif
+-endif
+-BITS_FLAG =
+-
+-ifeq (32,$(BITS))
+-	BITS_FLAG = -m32
+-endif
+-
+-ifeq (64,$(BITS))
+-	BITS_FLAG = -m64
+-endif
+-SSE_FLAG=-msse2
++HISAT2_VERSION = $(shell cat HISAT2_VERSION)
+ 
+ DEBUG_FLAGS    = -O0 -g3 $(BITS_FLAG) $(SSE_FLAG)
+ DEBUG_DEFS     = -DCOMPILER_OPTIONS="\"$(DEBUG_FLAGS) $(EXTRA_FLAGS)\""
+-RELEASE_FLAGS  = -O3 $(BITS_FLAG) $(SSE_FLAG) -funroll-loops -g3
++RELEASE_FLAGS  = $(CXXFLAGS)
+ RELEASE_DEFS   = -DCOMPILER_OPTIONS="\"$(RELEASE_FLAGS) $(EXTRA_FLAGS)\""
+ NOASSERT_FLAGS = -DNDEBUG
+ FILE_FLAGS     = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
+@@ -251,7 +231,7 @@ GENERAL_LIST = $(wildcard scripts/*.sh) 
+ 	MANUAL \
+ 	MANUAL.markdown \
+ 	TUTORIAL \
+-	VERSION
++	HISAT2_VERSION
+ 
+ ifeq (1,$(WINDOWS))
+ 	HISAT2_BIN_LIST := $(HISAT2_BIN_LIST) hisat2.bat hisat2-build.bat hisat2-inspect.bat 
+@@ -287,7 +267,7 @@ repeat: hisat2-repeat
+ repeat-debug: hisat2-repeat-debug
+ 
+ DEFS=-fno-strict-aliasing \
+-     -DHISAT2_VERSION="\"`cat VERSION`\"" \
++     -DHISAT2_VERSION="\"`cat HISAT2_VERSION`\"" \
+      -DBUILD_HOST="\"`hostname`\"" \
+      -DBUILD_TIME="\"`date`\"" \
+      -DCOMPILER_VERSION="\"`$(CXX) -v 2>&1 | tail -1`\"" \
+@@ -517,12 +497,12 @@ hisat2-inspect.bat:
+ hisat2-src: $(SRC_PKG_LIST)
+ 	chmod a+x scripts/*.sh scripts/*.pl
+ 	mkdir .src.tmp
+-	mkdir .src.tmp/hisat2-$(VERSION)
++	mkdir .src.tmp/hisat2-$(HISAT2_VERSION)
+ 	zip tmp.zip $(SRC_PKG_LIST)
+-	mv tmp.zip .src.tmp/hisat2-$(VERSION)
+-	cd .src.tmp/hisat2-$(VERSION) ; unzip tmp.zip ; rm -f tmp.zip
+-	cd .src.tmp ; zip -r hisat2-$(VERSION)-source.zip hisat2-$(VERSION)
+-	cp .src.tmp/hisat2-$(VERSION)-source.zip .
++	mv tmp.zip .src.tmp/hisat2-$(HISAT2_VERSION)
++	cd .src.tmp/hisat2-$(HISAT2_VERSION) ; unzip tmp.zip ; rm -f tmp.zip
++	cd .src.tmp ; zip -r hisat2-$(HISAT2_VERSION)-source.zip hisat2-$(HISAT2_VERSION)
++	cp .src.tmp/hisat2-$(HISAT2_VERSION)-source.zip .
+ 	rm -rf .src.tmp
+ 
+ .PHONY: hisat2-bin
+@@ -530,16 +510,16 @@ hisat2-bin: $(BIN_PKG_LIST) $(HISAT2_BIN
+ 	chmod a+x scripts/*.sh scripts/*.pl
+ 	rm -rf .bin.tmp
+ 	mkdir .bin.tmp
+-	mkdir .bin.tmp/hisat2-$(VERSION)
++	mkdir .bin.tmp/hisat2-$(HISAT2_VERSION)
+ 	if [ -f hisat2.exe ] ; then \
+ 		zip tmp.zip $(BIN_PKG_LIST) $(addsuffix .exe,$(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX)) ; \
+ 	else \
+ 		zip tmp.zip $(BIN_PKG_LIST) $(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX) ; \
+ 	fi
+-	mv tmp.zip .bin.tmp/hisat2-$(VERSION)
+-	cd .bin.tmp/hisat2-$(VERSION) ; unzip tmp.zip ; rm -f tmp.zip
+-	cd .bin.tmp ; zip -r hisat2-$(VERSION)-$(BITS).zip hisat2-$(VERSION)
+-	cp .bin.tmp/hisat2-$(VERSION)-$(BITS).zip .
++	mv tmp.zip .bin.tmp/hisat2-$(HISAT2_VERSION)
++	cd .bin.tmp/hisat2-$(HISAT2_VERSION) ; unzip tmp.zip ; rm -f tmp.zip
++	cd .bin.tmp ; zip -r hisat2-$(HISAT2_VERSION)-$(BITS).zip hisat2-$(HISAT2_VERSION)
++	cp .bin.tmp/hisat2-$(HISAT2_VERSION)-$(BITS).zip .
+ 	rm -rf .bin.tmp
+ 
+ .PHONY: doc
+@@ -554,6 +534,20 @@ doc/manual.inc.html: MANUAL.markdown
+ MANUAL: MANUAL.markdown
+ 	perl doc/strip_markdown.pl < $^ > $@
+ 
++# Install per filesystem hierarchy standard:
++# https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
++
++.PHONY: install
++install:
++	mkdir -p ${DESTDIR}${PREFIX}/bin
++	${INSTALL} -c -s ${HISAT2_BIN_LIST} ${DESTDIR}${PREFIX}/bin
++	${INSTALL} -c hisat2 hisat2-build hisat2-inspect \
++		${DESTDIR}${PREFIX}/bin
++
++	mkdir -p ${DESTDIR}${PREFIX}/libexec/hisat2
++	${INSTALL} -c scripts/*.sh scripts/*.pl scripts/*.py *.py \
++		${DESTDIR}${PREFIX}/libexec/hisat2
++
+ .PHONY: clean
+ clean:
+ 	rm -f $(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX) \
diff --git a/hisat2-simde/patches/patch-aligner__sw.h b/hisat2-simde/patches/patch-aligner__sw.h
new file mode 100644
index 0000000000..7aba6299e5
--- /dev/null
+++ b/hisat2-simde/patches/patch-aligner__sw.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+# Support non-x86
+
+--- aligner_sw.h.orig	2020-07-24 20:07:54.000000000 +0000
++++ aligner_sw.h
+@@ -66,11 +66,14 @@
+ 
+ #define INLINE_CUPS
+ 
++#define	SIMDE_ENABLE_NATIVE_ALIASES
++
++#include <simde/x86/sse2.h>
+ #include <stdint.h>
+ #include <iostream>
+ #include <limits>
+ #include "threading.h"
+-#include <emmintrin.h>
++// #include <emmintrin.h>	// Replace this with simde when possible
+ #include "aligner_sw_common.h"
+ #include "aligner_sw_nuc.h"
+ #include "ds.h"
diff --git a/hisat2-simde/patches/patch-hisat2 b/hisat2-simde/patches/patch-hisat2
new file mode 100644
index 0000000000..ea0ed8175d
--- /dev/null
+++ b/hisat2-simde/patches/patch-hisat2
@@ -0,0 +1,15 @@
+$NetBSD$
+
+# Support BSD, etc.
+
+--- hisat2.orig	2018-11-07 21:43:32 UTC
++++ hisat2
+@@ -45,7 +45,7 @@ while (-f $prog && -l $prog){
+ 
+ ($vol,$script_path,$prog) 
+                 = File::Spec->splitpath($prog);
+-my $os_is_nix   = ($^O eq "linux") || ($^O eq "darwin");
++my $os_is_nix   = ($^O ne "MSWin32") && ($^O ne "MSWin64");
+ my $align_bin_s = $os_is_nix ? 'hisat2-align-s' : 'hisat2-align-s.exe'; 
+ my $build_bin   = $os_is_nix ? 'hisat2-build' : 'hisat2-build.exe';               
+ my $align_bin_l = $os_is_nix ? 'hisat2-align-l' : 'hisat2-align-l.exe'; 
diff --git a/hisat2-simde/patches/patch-processor__support.h b/hisat2-simde/patches/patch-processor__support.h
new file mode 100644
index 0000000000..b882729882
--- /dev/null
+++ b/hisat2-simde/patches/patch-processor__support.h
@@ -0,0 +1,25 @@
+$NetBSD$
+
+# Support non-x86
+
+--- processor_support.h.orig	2020-07-24 20:07:54 UTC
++++ processor_support.h
+@@ -12,7 +12,7 @@
+ 
+ #if defined(__INTEL_COMPILER)
+ #   define USING_INTEL_COMPILER
+-#elif defined(__GNUC__)
++#elif defined(__GNUC__) && (defined(__amd64__) || defined(__i386__))
+ #   define USING_GCC_COMPILER
+ #   include <cpuid.h>
+ #elif defined(_MSC_VER)
+@@ -52,8 +52,7 @@ class ProcessorSupport { (public)
+ #elif defined(USING_GCC_COMPILER)
+         __get_cpuid(0x1, &regs.EAX, &regs.EBX, &regs.ECX, &regs.EDX);
+ #else
+-        std::cerr << "ERROR: please define __cpuid() for this build.\n"; 
+-        assert(0);
++	return false;
+ #endif
+         if( !( (regs.ECX & BIT(20)) && (regs.ECX & BIT(23)) ) ) return false;
+     }
diff --git a/hisat2-simde/patches/patch-sse__util.h b/hisat2-simde/patches/patch-sse__util.h
new file mode 100644
index 0000000000..22bbf22180
--- /dev/null
+++ b/hisat2-simde/patches/patch-sse__util.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+# Support non-x86
+
+--- sse_util.h.orig	2020-07-24 20:07:54.000000000 +0000
++++ sse_util.h
+@@ -20,11 +20,14 @@
+ #ifndef SSE_UTIL_H_
+ #define SSE_UTIL_H_
+ 
++#define SIMDE_ENABLE_NATIVE_ALIASES
++#include <simde/x86/sse2.h>
++
+ #include "assert_helpers.h"
+ #include "ds.h"
+ #include "limit.h"
+ #include <iostream>
+-#include <emmintrin.h>
++// #include <emmintrin.h>		// Replace with simde when possible
+ 
+ class EList_m128i {
+ public:


Home | Main Index | Thread Index | Old Index